vimサーバーインスタンスから私のクライアントオペレーティングシステム(SSH経由で接続)のクリップボードにテキストをインポートできるようにvimを設定しました。
デフォルト設定は
- 顧客
- GNOME端末
- サービス端末
- X11セッション転送を使用したSSHの例
ssh -Y <user>@<server>
- マルチプレクサ
- vim gtk
- マルチプレクサ
- X11セッション転送を使用したSSHの例
サーバーで実行されているvimのバージョン -vim-gtk
システムクリップボードにコピーする必要がある追加項目
$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:40:46)
Included patches: 1-52
Modified by [email protected]
Compiled by buildd@
Huge version with GTK2 GUI. Features included (+) or not (-):
- オペレーティングシステムUbuntu 14.04
vim(サーバーで実行)内でテキストを視覚的に選択できます。次に、をクリックすると、"クライアント+OSyクリップボードで対応するビジュアル選択を使用できます。
これは、サーバーに接続して新しい tmux セッションを開始するときに機能しますが、SSH が停止した後にサーバーに再接続し、tmux セッションに再接続すると、動作は停止します。なぜこれが起こるのかご存知ですか?
答え1
私の解決策は次のとおりです(ポインタへのxpraのおかげで)。問題は次のとおりです。
- ローカルとリモートのbashrcが同じであると仮定します。
- tmux-sshを使用してリモートサイトに接続します。 -pや-uなどの一般的なssh(1)パラメータが必要です。デフォルトでは、リモートサイトでtmux-x-attach()を呼び出します。
- tmux-x-attach() は、実行していない場合は xpra サーバーを起動し、実行中の xpra サーバーに接続して tmux-attach() に送信します。
- tmux-attach() は次のいずれかを行います。
- 存在しない場合は、新しい tmux セッションを開始します。
- 実行中(単一)tmuxインスタンスに接続する
- 複数のtmuxセッションのうちどのセッションに接続するかを尋ねるメッセージを表示する
- 分離すると、SSHセッションが終了する前にxpraから分離されたtmux-x-attachに戻ります。
- tmuxが内部的に分離されている場合は、ターミナルをクリーンアップしようとします(tput init)。ウィム
.bashrcから
tmux-x-attach() {
ps -f -u $USER | grep -v grep | grep -q 'xpra start' || xpra start :9
xpra attach :9 --opengl=no > /tmp/xpra-attach.log 2>&1 &
DISPLAY=:9 tmux-attach "$@"
xpra detach :9
}
tmux-attach() {
case $(tmux list-sessions 2>/dev/null | wc -l) in
0) tmux ;;
1) tmux attach ;;
*)
tmux list-sessions
read -n 1 -p "Select command: " N < /dev/tty > /dev/tty;
tmux attach -t $N
;;
esac
}
tmux-ssh() { ssh "$@" -A -X -t 'PS1=tmux-ssh- ; . ~/.bashrc ; tmux-x-attach'; tput init; }