2019年7月13日土曜日

矩形選択の強み

マクロよりも矩形選択を用いた方が良いケースを見ていく。

扱う問題

Collect List
* item1
* item2 * item3 * item4 * item5
上のファイルを以下のように変更せよ。
item1,item2,item3,item4,item5

解説

私が最初に思いついた答えと、ランキング一位の回答が一致していた。
ちょっとだけVim力に自信がついた。
<C-V>Gls,<Esc>x5gJZZ
  1. <C-V>Gls,<Esc>
    矩形選択で、全行の最初の二列を選択し、カンマに置き換える。
    <Esc>でノーマルモードに復帰した際、カーソルはファイル先頭に戻る。
  2. x
    第一行先頭のカンマを削除する。
  3. 5gJ
    5行をスペースを含めずに1行にまとめる。
  4. ZZ
    ファイルを保存して終了する。
12ストロークである。
矩形選択でカンマの処理をした際、カーソルがファイル先頭に戻ることでシームレスに次の処理に移ることができている。

別解

マクロを使って、短くできないか試してみた。
qqdwJr,lq5@qZZ
  1. qq
    マクロの記録を開始する。
  2. dwJ
    "* "の2文字を削除し、次の行を現在の行の末尾につなげる。
  3. r,l
    スペースをカンマに置き換える。
    置き換えの後、カーソルは次の"item"に先行する"* "にある。
  4. q
    マクロの記録を終了する。
  5. 5@q
    5回マクロを繰り返す。
  6. ZZ
    ファイルを保存して終了する。
14ストロークである。
矩形選択を用いた場合よりも、キーストロークが2文字多くなってしまっているが、シームレスにマクロを実行できることが分かった。

まとめ

今回の問題は、矩形選択で全体を一気に編集するか、行単位でマクロを実行するかの選択を検討した。
今回のケースでは、行単位でのマクロの実行よりも、矩形選択の方が少ないキーストロークで編集できた。




0 件のコメント:

コメントを投稿

コメント表示は承認制に設定しています