Help us understand the problem. What is going on with this article?

vim + tmuxに入門した話

More than 1 year has passed since last update.

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ライフを。

shoichi1023
とあるIT企業に所属するエンジニアです。 投稿する記事の内容は、個人の見解であり、所属する組織の公式見解ではありません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away