私はしばしばvimの新しい行にいくつかのものを貼り付ける必要があります。私がいつもやっていることは:
o<Esc>p
新しい行を挿入して挿入モードにし、挿入モードを終了して貼り付けます。
3つのキーストローク。あまり効率的ではありません。より良いアイデアはありますか?
私はしばしばvimの新しい行にいくつかのものを貼り付ける必要があります。私がいつもやっていることは:
o<Esc>p
新しい行を挿入して挿入モードにし、挿入モードを終了して貼り付けます。
3つのキーストローク。あまり効率的ではありません。より良いアイデアはありますか?
回答:
:help p
それが言う直後:
:[line]pu[t] [x] Put the text [from register x] after [line] (default
current line). This always works |linewise|, thus
this command can be used to put a yanked block as
new lines.
:[line]pu[t]! [x] Put the text [from register x] before [line]
(default current line).
残念ながら、別の回答で提案されているキーボードマップと組み合わせない限り、現在のソリューションよりも短くはありません。たとえば、任意のキーにマッピングできます(もp
):
:nmap p :pu<CR>
:pu[t]
現在の行の後に新しい行に:pu[t]!
テキストを置き、現在の行の前に新しい行にテキストを置きます。それに応じて回答を編集します。(Hooray for :help p
。)
:nmap p :pu<CR>
それを.vimrcファイルに入れて、すぐに使用できます:)
オプション:
1)yy
行全体(行末文字を含む)をヤンクするために使用します。 p
次に、現在の行の後の新しい行に行を貼り付け、P
(Shift- P)は現在の行の上に貼り付けます。
2)マッピングを作成します。1つまたは2つのキーのみです。
:nmap ,p o<ESC>p
:nmap <F4> o<ESC>p
3)マッピングの関数バージョン(実際には不要ですが、完全にするためにのみ):
:nmap <F4> :call append(line('.'), @")<CR>
" This one may be a little better (strip the ending new-line before pasting)
:nmap <F4> :call append(line('.'), substitute(@", '\n$', '', ''))<CR>
:help let-register
:help :call
:help append()
:help line()
:help nmap
挿入するバッファ<C-R>
の名前に続けて貼り付けることで、挿入モードでバッファを貼り付けることができます。デフォルトのバッファは"
なので、次のようにします
o<C-R>"
私は<C-R>"
非常に頻繁に使用<C-F>
し、それを私のvimrcにバインドしていることがわかりました:
inoremap <C-F> <C-R>"
これはまだ3つのキーストロークを使用しますが、Escよりも簡単です。
o<Alt-p>
oを押した後に挿入モードになっているので、Alt修飾子を使用すると、コマンドを使用していない場合と同じように使用できます。
このプラグインの使用:https : //github.com/tpope/vim-unimpaired
]p
下の行に貼り付けます
[p
上記の行に貼り付けます
利点:
tpope/vim-unimpaired
これが機能するために必要なことを言及する価値があるかもしれません😉。
個人的に私は このようにEnter(CR)を nmap しました:
nmap <CR> o<Esc>k
... この Vim Wikiaの記事に基づいています。
このようにして、ノーマルモードから直接改行を作成し、これを以下の改行に貼り付けたいと組み合わせることができます。
<CR>jp
Enterでどの機能を使用するかに応じて、上記のnmapでkをスキップすることもできます。<CR>p
また、jjをEscにマップしました。これもこの場合に役立ちます。Escがvimでどれほど重要であるかについては、ホームローから遠く離れすぎています。
他のソリューションよりも短いわけではありませんが、いくつかのソリューションよりも不格好さは少なく、他の用途もあります。
行全体をコピーしてから行全体を貼り付ける場合は、を使用Y
して、最初に改行を含む行をヤンクしp
て貼り付けます。ビジュアルモードのプレーンとは対照的に、V
ビジュアルラインモードであるを使用することもできv
ます。
私はこれに対するエレガントな解決策を見つけました。あなたのOSのクリップボード(とにかく素晴らしい)にヤンクレジスターを置くなら、
set clipboard+=unnamed
あなたができるよりo<Ctl-v>
。
ストローク数が少なくなるだけでなく、これによりインデントが保持されるため、両方o<Esc>p
で改善され:pu
ます。他のオプションはどちらも、新しい行の文字0から開始します。
警告は、これはOSに依存する場合としない場合があります。私が知っているのは、それがOS Xの最近のバージョンで動作することですが、クリップボードはOSクリップボードにヤンクを入れる多くの方法の1つにすぎません。
挿入モードでも終了したい場合は、挿入モードでを使用して貼り付けることができますCTRL-R "
。https://stackoverflow.com/a/2861909/461834
それでも3つのキーストロークはありますが、エスケープはありません。とにかく挿入で終了する場合は、キーストロークを保存します。