1. hyuki

    No comment

    hyuki
Changes in body
Source | HTML | Preview

前置き

これは私が答えを知っているパズルではなく、Vimmer諸氏への純粋な質問です。

「Vimで文字列を別のところに「持って行って置換する」効率的な方法は?」

意味がよく伝わるように例で説明します。

たとえば、以下のような文章を書いているとき。

BEFORE:
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.

カーソルは現在 BEFORE:dolor in reprehenderit の初めの d にあるとし、モードはノーマルモードだとします。

BEFORE: で太字にした中ほどの dolor in reprehenderit を、三行上の ut labore et doloreの箇所に「持って行って置換する」ということをやりたいのです。つまり編集後は以下のAFTER:のようになっていてほしいということです。

AFTER:
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt dolor in reprehenderit magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.

どのようなキーシーケンスで編集するのが効率的かという問題です。終了時のカーソル位置は問題ではありません。

素朴な解答例

素朴な解答例としては

  • 3yw(持って行く文字列をコピーする)
  • 3k2w(目的地に移動する)
  • P(ペーストする)
  • 4de(不要な部分を削除)

という11キーが考えられますが、もっと短くならないのかなと思っています。

ご教示いただければありがたいです。