Vim + tmuxに入門した話
tmuxについてはこの記事がわかり易かった(後ほども同じリンクがでてきますが):vim流tmuxチュートリアル
まずVimがちゃんとVimしてるか?
ずっとvimって苦手だな、なんであんなの使うんだろうってずっと思ってたんですよ。
そしたらなんと、僕が使ってたのって、vimじゃなくてtiny vimとか呼ばれる軽量版のvimでした。
どうやら、ubuntuの標準搭載がtiny vimらしいです。
まず、このコマンドを打ってもらって、
vi --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58)
適用済パッチ: 1-1453
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)
+acl +farsi +mouse_sgr -tag_any_white
+arabic +file_in_path -mouse_sysmouse -tcl
+autocmd +find_in_path +mouse_urxvt +termguicolors
-autoservername +float +mouse_xterm +terminal
-balloon_eval +folding +multi_byte +terminfo
+balloon_eval_term -footer +multi_lang +termresponse
-browse +fork() -mzscheme +textobjects
++builtin_terms +gettext +netbeans_intg +timers
+byte_offset -hangul_input +num64 +title
+channel +iconv +packages -toolbar
+cindent +insert_expand +path_extra +user_commands
-clientserver +job -perl +vertsplit
-clipboard +jumplist +persistent_undo +virtualedit
+cmdline_compl +keymap +postscript +visual
+cmdline_hist +lambda +printer +visualextra
+cmdline_info +langmap +profile +viminfo
+comments +libcall -python +vreplace
+conceal +linebreak +python3 +wildignore
+cryptv +lispindent +quickfix +wildmenu
+cscope +listcmds +reltime +windows
+cursorbind +localmap +rightleft +writebackup
+cursorshape -lua -ruby -X11
+dialog_con +menu +scrollbind -xfontset
+diff +mksession +signs -xim
+digraphs +modify_fname +smartindent -xpm
-dnd +mouse +startuptime -xsmp
-ebcdic -mouseshape +statusline -xterm_clipboard
+emacs_tags +mouse_dec -sun_workshop -xterm_save
+eval +mouse_gpm +syntax
+ex_extra -mouse_jsbterm +tag_binary
+extra_search +mouse_netterm +tag_old_static
システム vimrc: "$VIM/vimrc"
ユーザー vimrc: "$HOME/.vimrc"
第2ユーザー vimrc: "~/.vim/vimrc"
ユーザー exrc: "$HOME/.exrc"
デフォルトファイル: "$VIMRUNTIME/defaults.vim"
省略時の $VIM: "/usr/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -fdebug-prefix-map=/build/vim-NQEcoP/vim-8.0.1453=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu -lpython3.6m -lpthread -ldl -lutil -lm
こんな感じででてくると思いますが、見てほしいのは5行目のHuge版というところがtinyとか別のものになってたら、
sudo apt-get install -y vim
でインストールすればそのままのコマンドでHuge版が使えます。
キーとかはこれ見て覚えました
vimチートシート
tmuxを入れる
やっとtmuxの話ですが、最新版がいいのであればgitからソースを落としてきてバイナリつくるのが簡単そうです。
ここではそこまでこだわらずに素直にインストールします。
sudo apt-get install -y tmux
そしたら設定関連ですが、この方の設定(vim流tmuxチュートリアル)が分かりやすかったのでそのまま使ってます。
homeディレクトリ配下でwegetすれば生成されるので、
先程の記事の
cd ~ && wget https://raw.githubusercontent.com/sa-inu/dotfiles/qiita/linked/.tmux.conf
これをしてあげればOKです。
端末を開いたら自動的に開いてほしい
僕の場合、bashを使ってるので、~/.bashrcのエイリアスの上の部分、(aliasと書いてある部分が全て下に来るように)に
if command -v tmux>/dev/null; then
[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && exec tmux
fi
を追加すると、tmuxが入っていて通常に動く場合にはtmuxの状態で起動してくれます。
コピー&ペーストをOSのものと連携させたい
まずはxselというものをインストールします。
sudo apt-get install xsel
そしたら、tmuxの設定ファイル(~/.tmux.conf)の最下部に下記のように追加します。
unbind -t vi-copy Enter
unbind -t vi-copy y
set-window-option -g mode-keys vi
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy C-v rectangle-toggle
bind-key -t vi-copy y copy-pipe "xsel -bi"
bind-key -t vi-copy Enter copy-pipe "xsel -bi"
みなさんも良いvim + tmuxライフを。