司祭はイワシ

備忘録として読んだ本や写真、思い付きを共有します。

管理者権限のないリモート環境から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クリップボードが共有できていないので改善が必要である。