回答:
挿入モードでヒット CTRL-R {register}
例:
CTRL-R *
クリップボードの内容に挿入します CTRL-R "
(名前のないレジスタ)は、最後の削除またはヤンクを挿入します。 vimのヘルプでこれを見つけるには :h i_ctrl-r
CTRL-R *
GVIMまたはxと対話するようにコンパイルされたバージョンでのみ機能します。入力してvim --version
を探します+xterm_clipboard
。それがない場合は、別のバージョンのvimが必要です。(vim.wikia.com/wiki/Accessing_the_system_clipboard)
+clipboard
、持っている+xterm_clipboard
場合はとにかくそれが必要です。一部のOSではxterm_clipboard
適用されません。
*
と同じように、中央マウスクリックで登録できます+
。standards.freedesktop.org/clipboards-spec/clipboards-latest.txt
Vimが受信した貼り付けられたテキストのフォーマットを壊したくない場合は、次の使用を検討することもできます:set paste
。これにより、Vimがコードを再タブ化するのを防ぎます。貼り付け:set nopaste
が完了すると、通常の動作に戻ります。
set pastetoggle=<F2>
.vimrcに次のようなものを追加することで、単一のキーでモードを切り替えることもできます。自動インデントの切り替えの詳細については、こちらをご覧ください。
:set nopaste
貼り付けモードが無効になります
:set paste!
おそらく貼り付けがコマンド履歴で非常に近いため、「:」を押してから上向きにして「!」を追加するだけです。
:set paste!
おかげで何が良いのか、違うのか:)
!
で、コマンドの最後にvim
オンとオフを切り替えるコマンド。このように入力する必要はなく:set nopaste
、履歴を上にスクロールして、同じコマンド(:set paste!
)を再度実行できます。
いいえ、直接ではありません。 ただし、実行できるのは、単一の通常モード操作で挿入モードをすばやく終了しCtrl-O、そこから貼り付けて、挿入モードに戻すことで終了します。
キーコンボ: Ctrl-O p
編集:興味深い。他の何人かの人々が挙げた方法があるようです。
esc + p
ですか?
esc + p + i
、間違いなくタイプするのは簡単ですCTRL-R + "
CTRL-R "
ます。たとえば、vimrc設定はこれを変更できますが、を使用して新しい行に何かを貼り付けるCTRL-O p
と、インデントがなくなります。
挿入モードでCtrl-R {register}
は、レジスタを次のように使用できます。
+
クリップボードの場合、*
Xクリップボード(Xで最後に選択されたテキスト) "
名前のないレジスタ(Vimでの最後の削除またはヤンク)の場合、:h registers
)。Ctrl-R {register}
入力したようにテキストを挿入します。
Ctrl-R Ctrl-O {register}
元のインデントでテキストを挿入します。
Ctrl-R Ctrl-P {register}
テキストを挿入して自動インデントします。
Ctrl-O
挿入モードに戻る前に通常モードのコマンドを実行するため
Ctrl-O "+p
に使用できるため、たとえば、使用することもできます。
詳細については、次のドキュメントを参照してください。 :h i_ctrl-r
これを使用してクリップボードから貼り付けることができますCtrlv:
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
そして、これはビジュアル選択をクリップボードにヤンクするためのものですCtrlc:
vnoremap <C-c> "+y
通常モードでクラシックvimのヤンク/貼り付け(y/ p)にデフォルトでクリップボードも使用する場合は、次の設定オプションを使用します。
set clipboard=unnamedplus
この設定を使用すると、たとえば通常モードで最初にヤンクし、次にCtrlv挿入モードで貼り付けることができます。また、さまざまなvimインスタンスやさまざまなアプリケーションからテキストを貼り付けることもできます。
別のオプションは次のとおりです。
set clipboard=unnamed
次に、X環境でマウスをドラッグして何かを選択し、後でvimに貼り付けることができます。しかし、(何らかの理由で)yVimで何か()をヤンクすることはできず、shiftinsertその後、どこかでヤンクすることはできません。
これに関するVimのドキュメント:http : //vim.wikia.com/wiki/Accessing_the_system_clipboard
カスタムレジスタからの貼り付けについては、他の回答に従うことができます。この答えは主にVimをシステムのクリップボードと統合することです。
用することを注意set clipboard=unnamedplus
してset clipboard=unnamed
仕事に、あなたがgvimをかvimxを(使用する必要がありますvim-X11
):これらがコンパイルされています+xterm_clipboard
。オプションで、あなたにこれを置くことができる.bashrc
エイリアスにvim
持ちますvimx
:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
が+xterm_clipboard
提供する情報にvimがあるかどうかを確認できますvim --version
。
:set paste
とビザンチンのデフォルトの動作が<leader><leader> * y
リモートでさえ望ましい理由を誰かが知っていますか?あまりにも熱心に聞こえないように、私はこれがどのvim哲学を反映しているのか、またはそれが単なる歴史的な不幸なのかどうかを本当に知りたいと思っています。
inoremap <S-Insert> <F12><C-r>+<F12>
を使用することもできました(私はF12をペーストトグルとして使用しています)。ありがとう。
システムクリップボード(:set clipboard=unnamed
)を使用するようにVimを設定すると、VimでコピーしたテキストはShift+ を使用して貼り付けることができますInsert。Shift+ Insertは単にOS全体の貼り付けキーの組み合わせです(Ctrl+ Insertは対応する「コピー」です)。
p
クリップボード内のテキストを貼り付けますか?
Shift + Insert
してテキストを貼り付ける前に、挿入モードにする必要があります。
マウスの中央ボタンを使用して、挿入モードで貼り付けることもできます(Linuxのみ)。
はい。Windows Ctrl+ VおよびLinuxでは、両方のマウスボタンをほぼ同時に押します。
Windowsでは、_vimrcの次の行がおそらくそれを行うと思います。
source $VIMRUNTIME/mswin.vim
Linuxでは、自分がどのようにしたか覚えていません。おそらく、デフォルトの.vimrcファイルからいくつかの行を削除したようです。