Edited at

vim + tmuxに入門した話


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/sainuio/dotfiles/master/home/.tmux.conf

これをしてあげればOKです。


端末を開いたら自動的に開いてほしい

僕の場合、bashを使ってるので、~/.bashrcのエイリアスの上の部分、(aliasと書いてある部分が全て下に来るように)に

if command -v tmux>/dev/null; then

[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && exec tmux
fi

を追加すると、tmuxが入っていて通常に動く場合にはtmuxの状態で起動してくれます。


コピー&ペーストをOSのものと連携させたい

○ tmux側

まずはxselというものをインストールします。

sudo apt-get install xsel

そしたら、tmuxの設定ファイル(~/.tmux.conf)の最下部の##set oparation of the copyの下を下記のように書き換えます

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"

○ vim側

vim --version | grep clipして、clipboardが+ならそのままでOK

-だった人は

sudo apt-get install -y vim-gnome

でgvimを入れましょう。

そしたら、~/.vimrc(無い人は作って)に

set clipboard=unnamedplus

を追加

普通にコピーすればクリップボードに反映されます。


ファイルツリー欲しくない??

vimってこんなにプラグイン豊富なんですねって感じでびっくりしたのですが、そのプラグインを導入してファイルツリーを表示させてみます。

プラグインマネージャーを導入(unix系)

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \

https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

.vimrcを編集(ない人はホームディレクトリ配下に作ってください)


~/.vimrc

call plug#begin('~/.vim/plugged')

Plug 'scrooloose/nerdtree'
Plug 'jistr/vim-nerdtree-tabs'

call plug#end()


ここまでできたら、vimの画面のままで、:PluginInstall:source ~/.vimrcを実行

そして任意のファイルを開いて、:NERDTreeを実行すると開きます。

ファイルツリーとエディターの移動は、設定を変更していなければ、cnt+w, h or lでできます。(vimのタブ移動コマンド)

みなさんも良いvim + tmuxライフを。