目次
はじめに
これまで、いろいろVimの設定をいじってきましたが、
使っていない設定なども含めて、vimrcが大きくなっていたので、
vimrcをシェイプアップしました。
その時に参考にしたものをメモしておきます。
下記が自分の現在のvimの設定です。
defaults.vim
下記の記事のように、vim8からdefault.vimというファイルが
vim本体に追加されています。
自分のvimrcの先頭でこのファイルを下記のように読み込むことにより、
これまで設定してきたvimrcの多くの項目が重複していたため、
削除することができました。
source $VIMRUNTIME/defaults.vim
プラグイン管理
これまでNeobundleを使って、プラグイン管理をしていましたが、
下記にあるようにvim8から導入された
デフォルトのプラグイン管理機能を使うようにしました。
最初は、gitのsubmobuleに慣れていなかったため、
初期設定が面倒でしたが、
一度設定してしまえば、
$ git clone --recursive
ですべて設定が完了しますし、
$ git submodule foreach git pull
ですべてのプラグインが最新版に更新されるものいい感じです。
補完プラグイン
入力の補完プラグインとして、
これまではNeocompletecasheを使っていましたが、
こちらの補完プラグインに移行しました。
一つのプラグインで、補完機能が追加されますし、
Pythonのjediによる補完も効くので便利です。
対話的な置換
grep.vimのように、対話的に使うツールが好きになったので、
置換も対話的にやりたいなと思ったところ、
いいプラグインがなかったので、自分で簡単なvimrc設定を書きました。
下記の設定をvimrcに書き、
置換したい文字の上で ir とコマンドすると、
対話的に置換をすることができます。
"======Interactive Replace======" function! s:interactive_replace() let fromstr = input("Replace from: ", expand("<cword>")) | echo "\r" let tostr = input("Replace to: ") | echo "\r" let cmd = "%s;".fromstr.';'.tostr.";g" call feedkeys(':' . cmd, 'n') "insert command endfunction command! InteractiveReplace :call s:interactive_replace() " irでカーソル下のキーワードをreplace nnoremap <expr> ir ':InteractiveReplace<CR>'
コマンドを実行するのではなく、一度コマンドラインに挿入させてから、
Enterで実行させているのは、履歴にコマンドを残して、
置換のコマンドの試行錯誤をやりやすくするためです。
コードスニペット
以前はコードスニペットプラグインを使っていましたが、
結局、スニペットファイルの設定が面倒だったりなど使わなくなっていたので、
下記の手法を使って、コードの新規作成の時のみ、
テンプレートファイルを読みこむようにしました。
vimrcで下記の設定をすることで、
テンプレートが自動挿入されました。
augroup templateGroup autocmd! autocmd BufNewFile *.py 0r $HOME/.vim/snippets/python.py autocmd BufNewFile *.jl 0r $HOME/.vim/snippets/julia.jl augroup END
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。