例:1つのtmuxペインにコピーし(vim経由)、次に別のペインに切り替え(別のvimインスタンスを実行)、vim pasteコマンドを使用して貼り付けます。これはtmux(prefix +]を使用)で行うことができますが、vimを実行している異なるペイン間を切り替えるだけなので、vimバインディングを使用してコピーアンドペーストできると本当に便利です。
何か案は?
申し訳ありませんが、vimの組み込み機能を使用するよう説得しようとしています。
copy/paste
を簡単にするために、別のタブページでファイルを開くことができます:
:tabe /path/to/another/file
つかいます gt または gT タブページを切り替えます。
または、ウィンドウを分割して別のファイルを編集します。
:sp /path/to/another/file
つかいます Ctrl-ww Windowsを切り替える。
ウィンドウを垂直に分割するには、:vsp file
を使用してください
これは私の.tmux.conf
ファイルです:
# vim
setw -g mode-keys vi
bind [ copy-mode
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-selection
bind -t vi-copy V rectangle-toggle
bind ] paste-buffer
# buffer
bind Space choose-buffer
端末出力をコピーする必要がある場合にのみ使用します。
私はこの便利なバインディングを数年間使用しています:)
" copy to buffer
vmap <C-c> :w! ~/.vimbuffer<CR>
nmap <C-c> :.w! ~/.vimbuffer<CR>
" paste from buffer
map <C-p> :r ~/.vimbuffer<CR>
1つのvimインスタンスを使用する方が良いことに同意しますが、tmuxだけでこれを行うことができます。コピーモードが組み込まれています。私のtmux.confは次のように設定されています:
setw -g mode-keys vi
unbind [
unbind p
bind C-y copy-mode
bind p paste-buffer
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-selection
bind -t vi-copy Escape cancel
したがって、prefix-<C-y>
コピーモードをアクティブにする場合は、/search term
を目的の場所に移動する例として、v
を視覚的に選択し、y
をtmuxにヤンクします。次に、他のvimセッションに移動し、挿入モードに入ります。つかいます prefix-p
tmux貼り付けバッファーにあるものを貼り付けます。 tmuxの貼り付けバッファーをシステムのクリップボードにコピーする方法もあります。
私は現在、職場でWindowsを実行しているラップトップで立ち往生していますが、Linuxを実行しているサーバーですべての開発を行っているため、最終的にPuTTYを介したtmuxセッションで作業します。
Tmuxセッションの異なるウィンドウで実行されているvimインスタンス間でテキストをコピーしたかった。 *
レジスタを使用してシステムクリップボードにコピーしようとしましたが、PuTTYを介して接続しているためXセッションがないため、isno vimの代わりにgVimを起動しても、システムのクリップボード。 (これを修正するためにx-forwardingなどを使用できたかもしれませんが、Windowsにx-serverをインストールしたくありませんでした。)
システムキーボードの代わりにvimからtmuxのコピー/貼り付けバッファーを使用する方法があるはずだと考え、十分な誰かが そのためのプラグイン と書いていることを確認しました。
Fakeclipをインストールすると、tmuxの貼り付けバッファーにマップされる新しいレジスタ&
が追加されます。すべてのvimインスタンスが同じtmuxセッション内にあるため、これにより、インスタンス間のテキストのヤンク/プットが非常に簡単になります。
プラグインのドキュメントでは、fakeclipはgnu画面でも動作するはずであると書かれていますが、私はそれを個人的にテストしていません。
tl; dr
fakeclip プラグインをインストールすると、使用できます "&y toyankto tmux's buffer "&p toputtmuxのバッファーから。
Vimバインディングを使用してコンテンツをクリップボードにコピーしてから、ペインに切り替えて貼り付けることができます。次のキーバインディングは便利かもしれません。
noremap ty "+y
noremap tY "+Y // copy a whole line to the clipboard
noremap tp "+p // put the text from clipboard after the cursor
noremap tP "+P // put the text from clipboard before the cursor
"+
レジスタは、Vimでシステムのclipboradにアクセスするために使用されます。
役に立つヒント:
1。 v
またはV
またはctrl-v
を押してビジュアルモードに入り、ヤンクするコンテンツを選択し、ty
を押してクリップボードにコピーします。 。
2。 ty
は他のモーションと組み合わせることができます。たとえば、tyaw
を使用して、カーソルの下のWordをクリップボードにコピーできます。 tyib
は、括弧内のコンテンツをコピーします。 tyi"
二重引用符などでテキストをコピー...
詳細については、 システムのクリップボードからvimペーストを作成(およびコピー)する方法 も参照してください。
Fedora24のソリューション
vimの代わりにvimxを使用する必要があります
あなたの.bashrcまたは.zshrcを入れてください
alias vi='vimx'
alias vim='vimx'
そして、vims/tmuxパネル間で簡単にコピーできます
$ vim --version | grep clipboard
-clipboard +insert_expand +path_extra -toolbar
+eval +mouse_dec +statusline -xterm_clipboard
$ vimx --version | grep clipboard
+clipboard +insert_expand +path_extra +toolbar
+eval +mouse_dec +statusline +xterm_clipboard
vimxは、おそらくインストールしたvim-enhanced-2:7.4.1868-1.fc24.x86_64の一部です
これはneovimで機能します。
実行:checkhealth
、次のようなものがあります。
## Clipboard (optional)
- OK: Clipboard tool found: tmux
そうでない場合は、tmuxを最新バージョン2.9にアップグレードする必要があるかもしれません。
次に、「〜/ config/nvim/init.vim」に次のコードを追加します
set clipboard+=unnamedplus