diff options
Diffstat (limited to 'public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html')
| -rw-r--r-- | public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html | 112 |
1 files changed, 56 insertions, 56 deletions
diff --git a/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html b/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html index 44ee689..b9455f7 100644 --- a/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html +++ b/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html @@ -62,15 +62,15 @@ </hr> </p> - <section id="section--_tl_dr"> - <h2><a href="#section--_tl_dr">TL; DR</a></h2> + <section id="section--tl-dr"> + <h2><a href="#section--tl-dr">TL; DR</a></h2> <p> 違いはない。ただのエイリアス。 </p> </section> - <section id="section--_調査記録"> - <h2><a href="#section--_調査記録">調査記録</a></h2> + <section id="section--code-reading"> + <h2><a href="#section--code-reading">調査記録</a></h2> <p> Vim の autocmd events には似通った名前のものがいくつかある。大抵は <code>:help</code> に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 </p> @@ -109,8 +109,8 @@ </p> </blockquote> - <section id="section--_vim_のソースコード"> - <h3><a href="#section--_vim_のソースコード">vim のソースコード</a></h3> + <section id="section--code-reading--vim"> + <h3><a href="#section--code-reading--vim">vim のソースコード</a></h3> <p> 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 </p> @@ -139,8 +139,8 @@ {<span class="hljs-string">"BufWritePre"</span>, EVENT_BUFWRITEPRE},</code></pre> </section> - <section id="section--_neovim_のソースコード"> - <h3><a href="#section--_neovim_のソースコード">neovim のソースコード</a></h3> + <section id="section--code-reading--neovim"> + <h3><a href="#section--code-reading--neovim">neovim のソースコード</a></h3> <p> neovim の場合でも同様のマッピングが定義されているが、こちらの場合は Lua で書かれている。以下にある通り、はっきり <code>aliases</code> と書かれている。 </p> @@ -160,59 +160,59 @@ FileEncoding = <span class="hljs-string">'EncodingChanged'</span>, ところで、上では取り上げなかった <code>FileEncoding</code> だが、これは <code>:help FileEncoding</code> にしっかりと書いてある。 </p> - <pre class="highlight monospaced"><code> *FileEncoding* - FileEncoding Obsolete. It still works and is equivalent + <pre class="highlight monospaced"><code> *FileEncoding* +FileEncoding Obsolete. It still works and is equivalent to |EncodingChanged|.</code></pre> </section> + </section> + + <section id="section--outro"> + <h2><a href="#section--outro">まとめ</a></h2> + <p> + 記事タイトルについて言えば、どちらも変わらないので好きな方を使えばよい。あえて言えば、次のようになるだろう。 + </p> - <section id="section--_まとめ"> - <h3><a href="#section--_まとめ">まとめ</a></h3> - <p> - 記事タイトルについて言えば、どちらも変わらないので好きな方を使えばよい。あえて言えば、次のようになるだろう。 - </p> + <ul> + <li> + <code>BufAdd</code>/<code>BufCreate</code> + <ul> + <li> + → <code>BufCreate</code> は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (<code>BufAdd</code>) を使う + </li> + </ul> + </li> - <ul> - <li> - <code>BufAdd</code>/<code>BufCreate</code> - <ul> - <li> - → <code>BufCreate</code> は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (<code>BufAdd</code>) を使う - </li> - </ul> - </li> - - <li> - <code>BufRead</code>/<code>BufReadPost</code> - <ul> - <li> - → <code>BufReadPre</code> との対称性のため、あるいは <code>BufWritePost</code> との対称性のため <code>BufReadPost</code> を使う - </li> - </ul> - </li> - - <li> - <code>BufWrite</code>/<code>BufWritePre</code> - <ul> - <li> - → <code>BufWritePost</code> との対称性のため、あるいは <code>BufReadPre</code> との対称性のため <code>BufWritePre</code> を使う - </li> - </ul> - </li> - - <li> - <code>FileEncoding</code>/<code>EncodingChanged</code> - <ul> - <li> - → <code>FileEncoding</code> は <code>`Obsolete'' と明言されているので、`EncodingChanged</code> を使う - </li> - </ul> - </li> - </ul> + <li> + <code>BufRead</code>/<code>BufReadPost</code> + <ul> + <li> + → <code>BufReadPre</code> との対称性のため、あるいは <code>BufWritePost</code> との対称性のため <code>BufReadPost</code> を使う + </li> + </ul> + </li> - <p> - ところでこの調査で知ったのだが、<code>BufRead</code> と <code>BufWrite</code> は上にある通り発火するタイミングが「後」と「前」で対称性がない。可能なら <code>Pre</code>/<code>Post</code> 付きのものを使った方が分かりやすいだろう。 - </p> - </section> + <li> + <code>BufWrite</code>/<code>BufWritePre</code> + <ul> + <li> + → <code>BufWritePost</code> との対称性のため、あるいは <code>BufReadPre</code> との対称性のため <code>BufWritePre</code> を使う + </li> + </ul> + </li> + + <li> + <code>FileEncoding</code>/<code>EncodingChanged</code> + <ul> + <li> + → <code>FileEncoding</code> は <code>`Obsolete'' と明言されているので、`EncodingChanged</code> を使う + </li> + </ul> + </li> + </ul> + + <p> + ところでこの調査で知ったのだが、<code>BufRead</code> と <code>BufWrite</code> は上にある通り発火するタイミングが「後」と「前」で対称性がない。可能なら <code>Pre</code>/<code>Post</code> 付きのものを使った方が分かりやすいだろう。 + </p> </section> </div> </article> |
