aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/posts/2021-10-02/vim-swap-order-of-selected-lines
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-03-15 01:36:13 +0900
committernsfisis <nsfisis@gmail.com>2023-03-15 01:36:58 +0900
commit98682c7a8792e7e79e487fea5024d25cee5aa310 (patch)
treefbf975077f5c1a6ff4f9eee68e4a4908eb7f54a0 /public/posts/2021-10-02/vim-swap-order-of-selected-lines
parent1fa2ed103dc521698cff261c97ecf275708be58c (diff)
downloadblog.nsfisis.dev-98682c7a8792e7e79e487fea5024d25cee5aa310.tar.gz
blog.nsfisis.dev-98682c7a8792e7e79e487fea5024d25cee5aa310.tar.zst
blog.nsfisis.dev-98682c7a8792e7e79e487fea5024d25cee5aa310.zip
fix(nuldoc): <pre> contained unnecessary whitespaces inside it
Diffstat (limited to 'public/posts/2021-10-02/vim-swap-order-of-selected-lines')
-rw-r--r--public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html24
1 files changed, 8 insertions, 16 deletions
diff --git a/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html b/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html
index 8a3b304..f4e2b71 100644
--- a/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html
+++ b/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html
@@ -115,11 +115,9 @@
なお、<code>:g/^/m0</code>は全ての行を入れ替えるが、<code>:N,Mg/^/mN-1</code>とすることで N行目から M行目を処理範囲とするよう拡張できる。手でこれを入力するわけにはいかないので、次のようなコマンドを用意する。
</p>
- <pre class="highlight" language="vim" linenumbering="unnumbered">
- <code>command! -bar -range=%
+ <pre class="highlight" language="vim" linenumbering="unnumbered"><code>command! -bar -range=%
\ Reverse
-\ &lt;line1&gt;,&lt;line2&gt;g/^/m&lt;line1&gt;-1</code>
- </pre>
+\ &lt;line1&gt;,&lt;line2&gt;g/^/m&lt;line1&gt;-1</code></pre>
<p>
これは望みの動作をするが、実際に実行してみると全行がハイライトされてしまう。次節で詳細を述べる。
@@ -152,15 +150,13 @@
前述した<code>:Reverse</code>コマンドの定義を少し変えて、次のようにする:
</p>
- <pre class="highlight" language="vim" linenumbering="unnumbered">
- <code>function! s:reverse_lines(from, to) abort
+ <pre class="highlight" language="vim" linenumbering="unnumbered"><code>function! s:reverse_lines(from, to) abort
execute printf(&quot;%d,%dg/^/m%d&quot;, a:from, a:to, a:from - 1)
endfunction
command! -bar -range=%
\ Reverse
- \ call &lt;SID&gt;reverse_lines(&lt;line1&gt;, &lt;line2&gt;)</code>
- </pre>
+ \ call &lt;SID&gt;reverse_lines(&lt;line1&gt;, &lt;line2&gt;)</code></pre>
<p>
実行しているコマンドが変わったわけではないが、関数呼び出しを経由するようにした。これだけで前述の問題が解決する。
@@ -211,11 +207,9 @@
</p>
</blockquote>
- <pre class="highlight" language="vim" linenumbering="unnumbered">
- <code>command! -bar -range=%
+ <pre class="highlight" language="vim" linenumbering="unnumbered"><code>command! -bar -range=%
\ Reverse
- \ keeppatterns &lt;line1&gt;,&lt;line2&gt;g/^/m&lt;line1&gt;-1</code>
- </pre>
+ \ keeppatterns &lt;line1&gt;,&lt;line2&gt;g/^/m&lt;line1&gt;-1</code></pre>
<p>
まさにこのための Exコマンド、<code>:keeppatterns</code>が存在する。<code>:keeppatterns {command}</code>のように使い、読んで字の如く、後ろに続く Exコマンドを「現在の検索パターンを保ったまま」実行する。はるかに分かりやすく意図を表現できる。
@@ -230,13 +224,11 @@
<section id="section--_コピペ用再掲">
<h2><a href="#section--_コピペ用再掲">コピペ用再掲</a></h2>
- <pre class="highlight" language="vim" linenumbering="unnumbered">
- <code>&quot; License: Public Domain
+ <pre class="highlight" language="vim" linenumbering="unnumbered"><code>&quot; License: Public Domain
command! -bar -range=%
\ Reverse
- \ keeppatterns &lt;line1&gt;,&lt;line2&gt;g/^/m&lt;line1&gt;-1</code>
- </pre>
+ \ keeppatterns &lt;line1&gt;,&lt;line2&gt;g/^/m&lt;line1&gt;-1</code></pre>
</section>
</div>
</article>