
vimでは、それぞれtmuxウィンドウに2つのファイルが開いています。あるファイルから別のファイルに10行をコピーしたいです。
マウスの->を使用せずにCopy
これを行うにはどうすればよいですかPaste
?
答え1
tmux ショートカットを使用する必要があります。 tmux コマンドのショートカットがデフォルトのCtrl+bであると仮定すると、次のようになります。
Ctrl+ b、[コピー(?)モードに入ります。
強調表示するテキストの開始/終了に移動します。
Ctrl+Space
テキストの強調表示を開始します(Arch Linuxの場合)。 OSXや他のLinuxのソースからtmuxをコンパイルすると、通常はそれ自体がSpace機能します。選択したテキストの色が変わるため、コマンドが機能しているかどうかがわかります。
コピーするテキストの反対側に移動します。
Alt+w選択したテキストを
tmux
クリップボードにコピーします。
MacではEsc+を使用してくださいw。Enter上記のいずれかの方法がうまくいかない場合は、以下を試してください。カーソルを反対側の tmux ウィンドウに移動するか、まったく別の tmux ウィンドウに移動します。コピーしたテキストを貼り付ける場所にカーソルを置きます。
Ctrl+ b、]tmuxクリップボードからコピーしたテキストを貼り付けます。
tmux
コマンドをカスタムキーボードショートカットにマッピングするのは非常に上手です。
設定キーボードショートカットの完全なリストについてはCtrl+を参照してくださいb。?
答え2
残念ながら、まだAlex Leachの回答にコメントを追加できないので、Mac OS Xユーザーのためにここに付録を追加します。
- Enter選択したテキストのコピー
答え3
macOSでvimとtmuxを使用している場合(macOS 10.12.2、tmux 2.3でテスト済み):
(tmuxのプレフィックスキーの組み合わせを仮定すると、デフォルトのprefixプレフィックスはctrl+です。)b
- コピー:
- prefix+を押して[コピーモードに入ります。
- 矢印キーを使用してテキスト選択の開始/終了に移動します。
- ctrl+を押します(+をプレフィックスに設定したspace場合は、代わりに++を押します)。ctrlspacectrlspacespace
- 矢印キーを使用して選択項目の反対側に移動します。
- ctrl+を押しますw。
- 生地:
- 挿入モードでprefix+を押します。]
答え4
すでにvim
開いている場合は、vimのコピー - 貼り付けを使用してテキストをコピーするのが最善です。
Tmuxコピー - 貼り付けは機能しますが、いくつかの欠点があります。
まず、複数行のテキストをコピーするときは、複数行を選択する必要があります。 Tmuxコピー - 貼り付けは通常、vim
vimマージンの行番号やマーカー(相対数/絶対数など)を理解しません。その結果、これらの項目もコピーされます。
次に、テキストに言語固有の書式があり、tmuxを使用してvimに直接コピーして貼り付けようとすると、書式がめちゃくちゃになることがわかりました。これはを使用して防ぐことができますset paste!
。しかし、これにはより多くの作業が必要です。
コピーして"+y
貼り"+p
付ける
Vim
"+y
このシステムは、またはを使用してvimバッファとシステムクリップボードの間にコピーして貼り付ける方法を提供します"*y
。次に、またはを使って"+p
貼り付けます"*p
。これにより、余白の相対数やvimに関連しない他のランダムな表示がコピーされるのを防ぎます。