Vimrc晒し

vimrc晒し

この記事は静大情報LT大会(IT) Advent Calendar 2018 11日の記事である

vimとは

使ってると女の子にモテるエディタ

使い始めて1年ちょっとぐらいになる

.vimrcとは

vimの設定ファイルのこと.なお,nvimではinit.vimになる

僕の.vimrcは250行を超えているのでここではすべてを紹介することはしない

環境

Windows10 GUIVIM 8.0

option

set winaltkeys=no " ALTキー押下時にメニューにフォーカスしないようにする

僕はaltキーにいろいろマッピングしているので必須

しかしaltキーを二回押すとようやくメニューバーにフォーカスが移るようになっている

set splitright " vsplitで右にウィンドウ生成
set splitbelow " splitで下にウィンドウ生成

好みだけどこっちのほうが自然だと思う


set shiftwidth=4 " space4つでインデント

スペース4つ派はモテるらしいので

colorscheme

colorschemeとはエディタの色使いのこと

視認性やモチベーションにかかわるので結構重要だと思う

有名どころだとmolokaiとかtenderとかある

colorscheme evening

evening使ってますけどもっといいのないかなあ

コメントが見やすいのでとりあえずこれを使う

keymap

マッピングは他の人が僕のキーボードで作業することなどを考えるとあまり変えないほうがいいかもしれないが,僕はある程度の互換性を保ちつつ誰も使っていないようなキーから変えていく.例えばスペースキーやエンターキーなどをマッピングする

" コマンドモードをBash風にする
cnoremap <C-P> <Up> 
cnoremap <C-N> <Down>
cnoremap <C-B> <Left>
cnoremap <C-F> <Right>
cnoremap <C-D> <Delete>
cnoremap <C-A> <Home>
cnoremap <C-E> <End>

:を押したあとのコマンド入力時のキーバインドBash風にする

" altキーを利用してインサート時にカーソル移動を容易にする
inoremap <M-k> <UP>
inoremap <M-j> <Down>
inoremap <M-l> <Right>
inoremap <M-h> <Left>
inoremap <M-a> <Home>
inoremap <M-e> <End>
inoremap <M-b> <C-o>b
inoremap <M-w> <C-o>w
inoremap <M-u> <C-o><C-u>
inoremap <M-d> <Delete>

inoremapでインサートモード時のキーバインドを変更する. <C-o>は1コマンドのみノーマルモードに戻るという意味なので,<M-w>はaltキー+wで1単語前にカーソルを移動させていることになる

nnoremap <space>1 :b1<CR>
nnoremap <space>2 :b2<CR>
nnoremap <space>3 :b3<CR>
nnoremap <space>4 :b4<CR>
nnoremap <space>5 :b5<CR>
nnoremap <space>6 :b6<CR>
nnoremap <space>7 :b7<CR>
nnoremap <space>8 :b8<CR>
nnoremap <space>9 :b9<CR>
nnoremap <space><space> :b#<CR>
nnoremap <space>l :bnext<CR>
nnoremap <space>h :bprevious<CR>
nnoremap <space>d :bd<CR>

バッファー間移動を簡単にしている

<space><space>で直前のバッファーへ移動できたり,<space>lで次のバッファーへ移動など結構便利

noremap <S-y> y$

VimではDで行末まで削除,Cで行末まで削除して挿入モードといったコマンドが用意されているが,Yは歴史的な経緯からyyと同じように行全体をヤンクする動作になっているので行末までヤンクに変更する

プラグイン

プラグインマネージャー

Vimは標準でも素晴らしいエディタだが,プラグインを導入することで生産性がさらに向上する

なお,プラグインマネージャーにはVimPlugを使用する

noremap <f2> :PlugUpdate<CR>

また,F2キーでプラグインすべてのアップデートを行うようにした

peekaboo

https://github.com/junegunn/vim-peekaboo

レジスタやマクロの中身を可視化するプラグイン

lexima

https://github.com/cohama/lexima.vim

開き括弧を入力したら閉じ括弧を自動で入力してくれたり改行したらいい感じにしてくれたりする

yankround

https://github.com/LeafCage/yankround.vim

ヤンクする時に前の無名レジスタにさかのぼってペーストすることができる

さいごに

僕の.vimrcはコチラ

なお,このページはVisual Studio Code で書きました

VSCodeもいいぞ