管理者権限のないリモート環境からvimとtmuxのクリップボードを連携させる
やったこと(概要)
ssh元のパソコンのクリップボードとスパコンのクリップボードが共有できるように、遺伝研のスパコン上でvimとtmuxをローカルにインストールした。
tmuxのインストール
遺伝研のスパコンのtmuxがv1だったのでローカルでv2のtmuxをビルドした。
tmux 2.4 をローカルインストールする - Qiita
mkdir $HOME/local mkdir $HOME/local/src cd $HOME/local/src wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz wget https://github.com/tmux/tmux/releases/download/2.4/tmux-2.4.tar.gz tar zxvf ncurses-6.0.tar.gz tar zxvf libevent-2.1.8-stable.tar.gz tar zxvf tmux-2.4.tar.gz cd libevent-2.1.8-stable ./configure --prefix=$HOME/local/ make make install cd ncurses-6.0 ./configure --prefix=$HOME/local/ make make install cd tmux-2.4 export DIR="$HOME/local" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DIR/lib ./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib" make make install
bashrcに以下を追記する
export DIR="$HOME/local" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DIR/lib export PATH=$HOME/local/bin:$PATH
vimのインストール
vimのclipboard設定がOFFだったので、ONにするためにローカルでコンパイルする
powerlineの有効化にpythonが必要だったのでenable-pythoninterp pythonを追記した
cd $HOME/local/src wget ftp://ftp.vim.org/pub/vim/unix/vim-8.2.tar.bz2 tar jxvf vim-8.2.tar.bz2 ./configure --prefix=$HOME/local \ --enable-multibyte \ --with-features=huge \ --disable-selinux \ --enable-pythoninterp make make install
xselのインストール
tmuxのclipbaord連携にxselが必要だったのでインストールした
wget http://www.vergenet.net/~conrad/software/xsel/download/xsel-1.2.0.tar.gz tar -zxvf xsel-1.2.0.tar.gz cd xsel-1.2.0 ./configure --prefix=$HOME/local make make install
補足
.tmux.confのclipboard共有部分
set-window-option -g mode-keys vi bind-key [ copy-mode \; display "Copy mode!" ## set the operation of the copy mode to vim-style bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "xsel -ip && xsel -op | xsel -ib" bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "xsel -ip && xsel -op | xsel -ib" bind-key -T copy-mode C-u send-keys -X page-up bind-key -T copy-mode C-d send-keys -X page-down
.vimrcのclipboard共有部分
" clipboardの共有 set clipboard=unnamedplus
TODO
tmuxの中ではvimでもtmuxでもローカルのパソコンとclipboard共有ができている。 tmuxの外ではvimのクリップボードが共有できていないので改善が必要である。