だから私はここの指示に従いました: http://vimcasts.org/episodes/bubbling-text/
アイデアは、ビジュアル モードに入り、数行のテキストを選択することです。次に、CTRL-k または CTRL-j を押して、選択したテキストをファイル内で上下に移動します。私の .vimrc ファイルのマッピングは次のとおりです。
nmap <C-k> ddkP
nmap <C-j> ddp
vmap <C-k> xkP`[V`]
vmap <C-j> xp`[V`]
最初の 2 つのマッピングは通常モード ( nmap
) 用であり、期待どおりに機能します。下に移動する場合、コマンドdd
は行を削除し、p
コマンドはカーソルを下に移動して行を挿入します。dd
上に移動する場合、コマンドは行を削除し、コマンドk
はカーソルを 1 行上に移動してから、コマンドはそのP
上に行を挿入します。
ただし、ビジュアル モードでは機能しません。選択したテキストを数行下に移動する場合を考えてみましょう。テキストが選択されると、x
コマンドはそれを削除します。ただし、このp
コマンドは、カーソルがある場所にテキストを正確に挿入します。したがって、次の内容のファイルがあるとします。
one
two
three
カーソルは1つの「o」にあります。ヒットvj$
して最初の 2 行を選択します。次に、ヒットx
してそれらを削除します。p
次に、それらを下に挿入するためにヒットしました。結果は次のようになります。
tone
two
hree
をヒットする直前にp
、ファイルに 1 行があり、カーソルは「3」の「t」に置かれています。だから、その振る舞いは私にとって理にかなっています。私が理解できないのは、VimCast の専門家のチュートリアルで、私が異なる動作を期待している理由です。また、私は私が望む振る舞いを得たいと思っています。