多くの場合、構成ファイルで行のブロックをコピーして貼り付けてから、そのブロックに小さな変更を加えます。貼り付けた後、x
削除する文字を削除してから、次のブロックを貼り付けます。を除きx
、削除された文字をクリップボードに置くので、行ブロックを再度コピーする必要があります。
挿入モードに入らずにこれを行う方法はありますか?
多くの場合、構成ファイルで行のブロックをコピーして貼り付けてから、そのブロックに小さな変更を加えます。貼り付けた後、x
削除する文字を削除してから、次のブロックを貼り付けます。を除きx
、削除された文字をクリップボードに置くので、行ブロックを再度コピーする必要があります。
挿入モードに入らずにこれを行う方法はありますか?
回答:
オプションは次のとおりです。
_
。たとえば、次のように入力し行を削除します"_dd
。これにより、クリップボードに影響を与えることなく削除されます。"ayy
から貼り付けます"ap
"0p
:help registers
最初の3つの詳細について実行します
x
私は"_x
それから使用したいですか?
x
削除するようなモーション削除を学習する必要があります。次に、ブレースされた領域内で何かをするかもしれません。ノーマルモードでは、この手段「の削除、すべての内部このブレースに地域のブラックホール」dt)
d2W
"_di{
x
クリップボードに物を置くのではなく、レジスタに入れます。どのレジスタに入れるかを指定しないと、名前のないレジスタに入れられ、もちろん以前の内容が上書きされます。そのため、代わりに、使用するレジスタを指定します" REGISTER x
。REGISTERは任意の1文字です。次に、同じquote-registerプレフィックスpを使用して、そのレジスタから貼り付けます。(注:コンテンツは小文字で置き換えられ、大文字が追加されます)。
また、2つの特殊レジスタ"0
とがあり"1
ます。"0
は、最近ヤンクされた(y)テキストで、別のコマンド(などx)でテキストを削除しても残ります。"1
は、テキストが小さくない(1行)限り、最後に削除されたテキストです。削除された小さなテキストはに入り"-
ます。
最後に、Steve Vermeulenが指摘するように、ブラックホールregisterを指定することで、削除されたテキストを保存しないようにvimに指示できます"_
。
関連するヘルプコマンドは:help registers
です。
この:let
コマンドを使用すると、名前付きレジスタを再定義できます。vimのコマンドラインで、Control+をR 2回1を押してから、レジスタ名を入力すると、レジスタの内容がコマンドに貼り付けられます。その後、貼り付けた内容を変更し、変更内容とともにレジスタを保存できます。
例:
"fyy
行全体(yy
)がf
レジスター("f
)にヤンクされます。:let @f='
、さらにControl+ r、Control+ r、さらにfを入力すると、「Foo Bar」に貼り付けられるので、コマンドラインがを読み取り:let @f='Foo Bar
、カーソルが最後にくるようになります。:let @f='foo bar baz
。:let @f='foo bar baz'
を押しEnterます。これで、f
レジスタの内容を「foo bar baz」に再定義しました。
(これはマクロでも機能します!:help let
詳細については。)
1 Control +をr使用すると、文字を入力しているように、既に挿入モードになっているときにレジスタを挿入できます。この配列を用いて二回は、「テキストがない場合は入力した通り、文字通り挿入されている。レジスタは以下のような文字が含まれている。この異なるために重要です<BS>
。」— insert.txt vimdoc、:help i_CTRL-R_CTRL-R
ブラックホールレジスタに関連した"_
あなたが有益なスクリーンキャストを見つけることができます@derobertで言及http://vimcasts.org/episodes/meet-the-yank-register/
Vimは、より標準的な用語であるカット、コピー、およびペーストの代わりに、delete、yank、およびputという用語を使用します。同じ文字から始めて、貼り付けと貼り付けは簡単に交換できます。ヤンクという言葉に慣れると、コピーと同義語になります。しかし、Vimの「削除」という言葉の使用には問題があります。ほとんどのコンテキストでは、削除という言葉は単に削除を意味します。しかし、Vimの削除操作はテキストをレジスターにコピーし、ドキュメントから削除します。つまり、Vimの削除操作はカットのように動作します。
http://www.vim.org/scripts/script.php?script_id=2703(2009-2014)
それはマッピングを提案しgr
ます。
gr
または、gr<text object>
視覚的に選択せずに使用します。repeat.vim
Tim Popeとvisualrepeat.vim
Ingo Karkatのプラグインがインストールされている場合、ドットリピートがサポートされます。