From db3d51ddc421dad68abddb95d01ffdab440197d6 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 19 Mar 2023 03:24:43 +0900 Subject: feat(content): specify heading id --- .../2021-10-02/ruby-then-keyword-and-case-in.xml | 12 +- .../rust-where-are-primitive-types-from.xml | 6 +- ...ce-between-autocmd-bufwrite-and-bufwritepre.xml | 223 ++++++++++----------- .../vim-swap-order-of-selected-lines.xml | 38 ++-- 4 files changed, 139 insertions(+), 140 deletions(-) (limited to 'content/posts/2021-10-02') diff --git a/content/posts/2021-10-02/ruby-then-keyword-and-case-in.xml b/content/posts/2021-10-02/ruby-then-keyword-and-case-in.xml index 40ac316..00afc01 100644 --- a/content/posts/2021-10-02/ruby-then-keyword-and-case-in.xml +++ b/content/posts/2021-10-02/ruby-then-keyword-and-case-in.xml @@ -23,14 +23,14 @@
-
+
TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。
-
+
<literal>then</literal> とは 使われることは稀だが、Ruby では then @@ -75,7 +75,7 @@ ]]>
-
+
なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then @@ -116,7 +116,7 @@ 無事 Hello, World! と出力されるようになった。
-
+
なぜ <literal>then</literal> や <literal>;</literal> や改行が必要か なぜ then; や改行 (以下 「then 等」) @@ -158,7 +158,7 @@ が代用できるので、ほとんどの場合 then は必要ない。
-
+
<literal>case</literal> - <literal>in</literal> における <literal>then</literal> ようやく本題にたどり着いた。来る Ruby 3.0 では casein @@ -257,7 +257,7 @@ ]]>
-
+
まとめ diff --git a/content/posts/2021-10-02/rust-where-are-primitive-types-from.xml b/content/posts/2021-10-02/rust-where-are-primitive-types-from.xml index f395f4f..7c19fc5 100644 --- a/content/posts/2021-10-02/rust-where-are-primitive-types-from.xml +++ b/content/posts/2021-10-02/rust-where-are-primitive-types-from.xml @@ -22,7 +22,7 @@
-
+
前置き Rust @@ -63,7 +63,7 @@
-
+
調査 調査に使用したソース (調査時点での最新 master) @@ -230,7 +230,7 @@ という名前の別の型が見つかるからだ。
-
+
まとめ Rust diff --git a/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.xml b/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.xml index 2a61fb4..4e3f187 100644 --- a/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.xml +++ b/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.xml @@ -22,13 +22,13 @@
-
+
TL; DR 違いはない。ただのエイリアス。
-
+
調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は @@ -56,114 +56,113 @@
ソースコードへのリンク - vim - (調査時点での master branch) - neovim - (上に同じ) - -
-
- vim のソースコード - - 以下は、autocmd events - の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 - - - https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 - - - - - - https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 - - - - - - https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105 - - - - -
-
- neovim のソースコード - - neovim の場合でも同様のマッピングが定義されているが、こちらの場合は Lua - で書かれている。以下にある通り、はっきり aliases と書かれている。 - - - https://github.com/neovim/neovim/blob/71d4f5851f068eeb432af34850dddda8cc1c71e3/src/nvim/auevents.lua#L119-L124 - - - - - - ところで、上では取り上げなかった FileEncoding だが、これは - :help FileEncoding にしっかりと書いてある。 - - *FileEncoding* - - -
-
- まとめ - - 記事タイトルについて言えば、どちらも変わらないので好きな方を使えばよい。あえて言えば、次のようになるだろう。 - - - - BufAdd/BufCreate - - BufCreate は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (BufAdd) を使う - - - - BufRead/BufReadPost - - BufReadPre との対称性のため、あるいは BufWritePost との対称性のため BufReadPost を使う - - - - BufWrite/BufWritePre - - BufWritePost との対称性のため、あるいは BufReadPre との対称性のため BufWritePre を使う - - - - FileEncoding/EncodingChanged - - FileEncoding`Obsolete'' と明言されているので、`EncodingChanged を使う - - - - - ところでこの調査で知ったのだが、BufReadBufWrite - は上にある通り発火するタイミングが「後」と「前」で対称性がない。可能なら - Pre/Post 付きのものを使った方が分かりやすいだろう。 - -
-
+ vim (調査時点での master branch) + neovim (上に同じ) + + +
+ vim のソースコード + + 以下は、autocmd events + の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 + + + https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 + + + + + + https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 + + + + + + https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105 + + + + +
+
+ neovim のソースコード + + neovim の場合でも同様のマッピングが定義されているが、こちらの場合は Lua + で書かれている。以下にある通り、はっきり aliases と書かれている。 + + + https://github.com/neovim/neovim/blob/71d4f5851f068eeb432af34850dddda8cc1c71e3/src/nvim/auevents.lua#L119-L124 + + + + + + ところで、上では取り上げなかった FileEncoding だが、これは + :help FileEncoding にしっかりと書いてある。 + + + + +
+
+
+ まとめ + + 記事タイトルについて言えば、どちらも変わらないので好きな方を使えばよい。あえて言えば、次のようになるだろう。 + + + + BufAdd/BufCreate + + BufCreate は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (BufAdd) を使う + + + + BufRead/BufReadPost + + BufReadPre との対称性のため、あるいは BufWritePost との対称性のため BufReadPost を使う + + + + BufWrite/BufWritePre + + BufWritePost との対称性のため、あるいは BufReadPre との対称性のため BufWritePre を使う + + + + FileEncoding/EncodingChanged + + FileEncoding`Obsolete'' と明言されているので、`EncodingChanged を使う + + + + + ところでこの調査で知ったのだが、BufReadBufWrite + は上にある通り発火するタイミングが「後」と「前」で対称性がない。可能なら + Pre/Post 付きのものを使った方が分かりやすいだろう。 + +
diff --git a/content/posts/2021-10-02/vim-swap-order-of-selected-lines.xml b/content/posts/2021-10-02/vim-swap-order-of-selected-lines.xml index f50a8a0..f919301 100644 --- a/content/posts/2021-10-02/vim-swap-order-of-selected-lines.xml +++ b/content/posts/2021-10-02/vim-swap-order-of-selected-lines.xml @@ -22,7 +22,19 @@
-
+
+ TL; DR + + ,g/^/m-1 + ]]> + +
+
バージョン情報 :version の一部 @@ -34,9 +46,9 @@
-
+
よく紹介されている手法 -
+
<literal>tac</literal> / <literal>tail</literal> tactail -r などの外部コマンドを ! @@ -52,7 +64,7 @@ オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい
-
+
<literal>:g/^/m0</literal> こちらは外部コマンドに頼らず、Vim の機能のみを使う。g:global @@ -99,7 +111,7 @@
-
+
<literal>:g/^/m0</literal> の問題点 :global @@ -114,7 +126,7 @@
-
+
解決策
@@ -177,7 +189,7 @@ の呼び出しをユーザー定義関数に切り出すことで上述の問題を解決できる。
-
+
解決策 (改訂版)
@@ -203,16 +215,4 @@
-
- コピペ用再掲 - - ,g/^/m-1 - ]]> - -
-- cgit v1.2.3-70-g09d2