回答:
これは私の.vimrcにあります:
xnoremap p pgvy
(注:これはデフォルトのレジスターでのみ機能しますが、このマッピングは覚えやすいです)。より精巧なバージョンを書くことは可能でしょう。また、Pを使用して古い動作を取得することもできます。
vnoremap
)の代わりにvを使用します。Vimヘルプファイルにversion7.txt
は、xmapとsmapがそのバージョンで登場したと記載されています。
xnoremap
もvnoremap
機能していません
"0
あなたのヤンクの内容が必要です。タイプするのは少し面倒"0p
ですが、あなたがやりたいことをするべきです。
または、前の古い行を選択して置き換えないでください。検索でそれらの行を見つけた場合はn.
、(最初のの後でp
)ndd
何度も何度もヒットし、それらがすべて貼り付けられたら、次に続けてn.
必要なだけsをます。
Vimに移行するときに私が必要とした最大のメンタルスイッチは、グループ編集を順次適用する方法を理解することです。つまり、ある行で一連の編集を行ってから、別の行で同じ編集をまとめるのではなく、最初の編集を一連の行で行い(.
効果が大きい)、次に2番目の編集をまとめて行いますまたは、マクロは素晴らしいので、マクロの使用が役立つ場合がありますが、「複雑な」変更を正しく処理するのに少し面倒な場合があります。
:%s/.../.../gc
タイプコマンドを使用した正規表現が必要なものに近い場所のように聞こえる
5@m
(マクロの場合m
)
xnoremap p "0p
私は〜/ .vimrcで使用しています
Vimで選択範囲の上に貼り付けると、デフォルトのレジスターが選択範囲の内容で置き換えられます。選択範囲を貼り付けるとクリップボードレジスタの内容が消去される場合は、.vimrcに次の行が含まれている可能性があります。
set clipboard=unnamed
1つのオプションは、それを削除して、明示的なクリップボードレジスタを使用することです "+
別のオプションは、他の明示的に指定されたレジスタ(az)のいずれかを使用することです。最初の貼り付けの後、"c
たとえば、行をヤンクして、"cp
そこから貼り付けます。
多くの場合、コピー/貼り付けを使用する代わりにciw
、内側の単語を変更するなどのテキストオブジェクトコマンドを使用することをお勧めします。この方法には、.
repeatコマンドを使用して簡単に繰り返すことができるという利点があります。
yiw
内側の単語をヤンクします(カーソルの下の単語をコピーし、「最初に」と言います)。ciw<C-r>0
「second」を変更し、「first」に置き換えます(Ctrl-Rです)。.
「3番目」を「1番目」に置き換えます。ciw<C-r>0
私の場合は機能しません。役に立たなくなるciw
挿入モードに変更します<C-r>
。これについて簡単な説明はありますか?それはテキストエディタに関係しているのでしょうか(RStudioではPur VIMではなくVIMキーボードバインディングを使用しています)
<C-r>
は、挿入モードを終了せずにレジスタから貼り付ける方法であるため、挿入モードでの使用を目的としています。つまり、Vimでは、私はRStudioに精通していませんが、あなたが正しいと彼らはこの特定のキーバインディングを実装していないと思います。