From 2b50e1778b164e641c03c2e77176b6f47ca1e278 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 18 Mar 2023 15:47:05 +0900 Subject: refactor: add RawHTML type to represent text node not being escaped --- .../vim-swap-order-of-selected-lines/index.html | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'public/posts/2021-10-02/vim-swap-order-of-selected-lines') 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 8dbea05..22042a8 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 @@ -125,9 +125,9 @@ なお、:g/^/m0は全ての行を入れ替えるが、:N,Mg/^/mN-1とすることで N行目から M行目を処理範囲とするよう拡張できる。手でこれを入力するわけにはいかないので、次のようなコマンドを用意する。

-
command! -bar -range=%
+              
command! -bar -range=%
 \ Reverse
-\ <line1>,<line2>g/^/m<line1>-1
+\ <line1>,<line2>g/^/m<line1>-1

これは望みの動作をするが、実際に実行してみると全行がハイライトされてしまう。次節で詳細を述べる。 @@ -160,13 +160,13 @@ 前述した:Reverseコマンドの定義を少し変えて、次のようにする:

-
function! s:reverse_lines(from, to) abort
-  execute printf("%d,%dg/^/m%d", a:from, a:to, a:from - 1)
-  endfunction
+            
function! s:reverse_lines(from, to) abort
+  execute printf("%d,%dg/^/m%d", a:from, a:to, a:from - 1)
+  endfunction
 
-  command! -bar -range=%
+  command! -bar -range=%
   \ Reverse
-  \ call <SID>reverse_lines(<line1>, <line2>)
+ \ call <SID>reverse_lines(<line1>, <line2>)

実行しているコマンドが変わったわけではないが、関数呼び出しを経由するようにした。これだけで前述の問題が解決する。 @@ -217,9 +217,9 @@

-
command! -bar -range=%
+            
command! -bar -range=%
   \ Reverse
-  \ keeppatterns <line1>,<line2>g/^/m<line1>-1
+ \ keeppatterns <line1>,<line2>g/^/m<line1>-1

まさにこのための Exコマンド、:keeppatternsが存在する。:keeppatterns {command}のように使い、読んで字の如く、後ろに続く Exコマンドを「現在の検索パターンを保ったまま」実行する。はるかに分かりやすく意図を表現できる。 @@ -234,11 +234,11 @@

コピペ用再掲

-
" License: Public Domain
+            
" License: Public Domain
 
-  command! -bar -range=%
+  command! -bar -range=%
   \ Reverse
-  \ keeppatterns <line1>,<line2>g/^/m<line1>-1
+ \ keeppatterns <line1>,<line2>g/^/m<line1>-1
-- cgit v1.2.3-70-g09d2