MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Vimの設定をシェイプアップした話

目次

はじめに

これまで、いろいろVimの設定をいじってきましたが、

使っていない設定なども含めて、vimrcが大きくなっていたので、

vimrcをシェイプアップしました。

その時に参考にしたものをメモしておきます。

下記が自分の現在のvimの設定です。

github.com

defaults.vim

下記の記事のように、vim8からdefault.vimというファイルが

vim本体に追加されています。

qiita.com

自分のvimrcの先頭でこのファイルを下記のように読み込むことにより、

これまで設定してきたvimrcの多くの項目が重複していたため、

削除することができました。

source $VIMRUNTIME/defaults.vim

 

プラグイン管理

これまでNeobundleを使って、プラグイン管理をしていましたが、

下記にあるようにvim8から導入された

デフォルトのプラグイン管理機能を使うようにしました。

tyru.hatenablog.com

qiita.com

最初は、gitのsubmobuleに慣れていなかったため、

初期設定が面倒でしたが、

一度設定してしまえば、

$ git clone --recursive

ですべて設定が完了しますし、

$ git submodule foreach git pull

ですべてのプラグインが最新版に更新されるものいい感じです。

補完プラグイン

入力の補完プラグインとして、

これまではNeocompletecasheを使っていましたが、

こちらの補完プラグインに移行しました。

github.com

一つのプラグインで、補完機能が追加されますし、

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で実行させているのは、履歴にコマンドを残して、

置換のコマンドの試行錯誤をやりやすくするためです。

 

コードスニペット

以前はコードスニペットプラグインを使っていましたが、

結局、スニペットファイルの設定が面倒だったりなど使わなくなっていたので、

下記の手法を使って、コードの新規作成の時のみ、

テンプレートファイルを読みこむようにしました。

qiita.com

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.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com