Vimrc晒し
vimrc晒し
この記事は静大情報LT大会(IT) Advent Calendar 2018 11日の記事である
vimとは
使ってると女の子にモテるエディタ
使い始めて1年ちょっとぐらいになる
.vimrcとは
vimの設定ファイルのこと.なお,nvimではinit.vimになる
僕の.vimrcは250行を超えているのでここではすべてを紹介することはしない
環境
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もいいぞ