使ってみた Ctrl + V viエディタードキュメントにコンテンツを貼り付ける場合 Ctrl + V 貼り付けとして解釈されません。
まず、編集モードになっていることを確認します(を押します i)。次に、貼り付けできます Ctrl+Shift+Vgnome-terminal
などのターミナルエミュレータを使用している場合(または右クリックメニューから[貼り付け]を選択します)。
また、貼り付ける前にvimに:set paste
と入力して自動インデントなどを無効にすることもできます。コンテンツを貼り付けた後、:set nopaste
を入力します。
詳細については、stackoverflow.comで この質問 も確認してください。
(クリップボードの内容を貼り付けるのではなく)vim
の行をコピー/貼り付けする場合は、yankをチェックアウトする必要があります。コマンド。 チートシート が役立つかもしれません。
Vi(およびVim)の動作は、Geditなどの通常のテキストエディターとは大きく異なります。また、非常に急な学習曲線もあります。基本的なコマンドを学習したい場合は、 このインタラクティブチュートリアル から始めてください。
ただし、質問に答えるために。システムクリップボードのコンテンツには、プラスレジスタからアクセスできます。システムクリップボードから何かを貼り付けるには、通常モードから次のキーを押します。 "+p (同時にではなく、次々に)。
内容の貼り付けをコピーする場合は、同じファイル内を使用し、yank
およびpaste
を使用します。
内容の貼り付けをコピーする場合端末間、最初のファイルを開き、目的のテキストをヤンクしてから、vim内で2番目のファイルを開き(たとえば:tabnew /path/to/second/file
)、p
を押します貼り付けます。
貼り付けの内容をコピーしたい場合vimから外部プログラムへ、システムクリップボードにアクセスする必要があります。 Ubuntuを使用すると仮定します。 GUIバージョンのvimは常にクリップボードをサポートしていますが、ターミナルからVimを使用する場合は、X11クリップボードのサポートを確認する必要があります。
コンソールから、次を入力します。
$ vim --version | grep xterm
-xterm_clipboardを見つけた場合、2つのオプションがあります。
1)xterm_clipboardフラグをオンにしてvimを自分でコンパイルする
2)vimをアンインストールし、代わりにgvim(vim-gtkまたはvim-gnome)をインストールします。以前と同じように、ターミナルからvimを呼び出すことにより、非GUI vimに固執することができます。今回チェックすると、+ xterm_clipboradが見つかります。
これで、vimエディター内の+レジスタ内のテキストをヤンクすると(たとえば「+ yy」)、システムクリップボードにコピーされ、geditエディターなどの外部プログラムから取得できます。 Ctrl+V。
内容を貼り付けてコピーしたい場合外部プログラムからvimに、最初にテキストをシステムクリップボードにコピーします Ctrl+C、vimエディターで挿入モード、マウス中央ボタン(通常はホイール)をクリックするか、 Ctrl+Shift+V 貼り付けます。
これらは4つの基本コピー&ペースト vimに関連する条件です。これがお役に立てば幸いです。
私はいつも使う Shift+Insert ターミナルにテキストを貼り付けたい場合、すべてのターミナルプログラムで動作します。
(これは、押すことができないラップトップを手に入れない理由でもあります Insert 二次キーを押さずに)
マウスの中央ボタンを使用して、強調表示したテキストを他の場所に挿入します。
システムクリップボードにアクセスできない場合に便利です(たとえば、リモートSSHセッションで)。
Vimの編集/挿入モードである必要があります。
Viを入力したら、i
を押して挿入モードに入り、ターミナルを右クリックして[貼り付け]をクリックします。
yank
およびput
を使用してviのテキスト行をコピー/貼り付ける詳細な手順
(viのコマンドモードで次を使用します)
コピー(YANK)
Viで1行をコピーするには:
yy
またはY
と入力しますViで2行をコピーするには:
2yy
または2Y
と入力します(同様に、任意の数の行をコピーできます)
現在の場所からファイルの最後まですべての行をコピーするには:
yG
と入力します現在の場所から現在のWordの末尾にすべてのテキストをコピーするには:
yw
と入力しますすべてのテキストを現在の場所から行末までコピーするには:
y$
と入力します貼り付け(PUT)
クリップボードにテキストを貼り付ける-afterカーソルの位置:
p
と入力しますクリップボードにテキストを貼り付ける-beforeカーソルの位置:
P
と入力しますVimのインストールがクリップボードをサポートしていないため、問題が発生しました。
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
クリップボードをサポートするvim-gnomeをインストールしてから、もう一度確認しました。
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
これで、それぞれ「+ y」と「+ p」を使用してコピーと貼り付けができるようになりました。
LinuxまたはMac上のVim 8+では、OSのネイティブペースト(Linuxではctrl+shift+V
、Macではcmd+V
)を使用できます。挿入モードではi
を押さないでください。
OSのクリップボードの内容を貼り付け、自動インデントを追加せずにスペースとタブを保持します。古い:set paste
、i
、ctrl+shift+V
、esc
、:set nopaste
メソッドと同等です。
+clipboard
または+xterm_clipboard
vim機能をインストールする必要さえありません。この機能は「ブラケットペースト」と呼ばれます。詳細については、 https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#5678176 を参照してください
WindowsでGit Bashを介してVimを使用すると、挿入モードにならずにp
またはマウスの中央クリックのみを使用できます。 PuTTY でVimを使用すると、右クリックできます。そして、強調表示はコピーを行います。
これがUbuntuのSEであることに気づかずにここに来たので、私はこれに注意しました。
その他の役立つコマンド:
使用できます Ctrl+Shift+V ターミナルバージョンのvimに貼り付けますが、Neovim-Qt
のようなGUIバージョンのvimでは、システムクリップボードからテキストを貼り付けます Ctrl+Shift+V 単に動作しません。 vimエディターでクリップボード"+
または"*
にアクセスする必要があります。
.vimrc
に新しいキーバインディングを追加すると、単にコピー/貼り付けコマンドが実行されます。
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
rootの場合: Ctrl+Shift+V
not-rootの場合:マウスを中央クリックします。
Vimの外部からテキストを貼り付けたい場合は、挿入モードでテキストとvimの内部をコピーし、「shift + Insert」を押します