LoginSignup
39
41

More than 5 years have passed since last update.

vimrcを編集したら自動で反映する

Last updated at Posted at 2014-06-09

表題どおりの件です。

基本的な設定

ひとまず自分がvimrcの頭に記載している設定を掲載
詳細は下に

vimrc
" init all settings
set all&
" init autocmd
autocmd!
" set script encoding
scriptencoding utf-8
" tiny と small では これ以上 vimrc を読み込まない
if !1 | finish | endif
" This is vim, not vi.
set nocompatible
" syntax hilight
syntax enable
" auto reload .vimrc
augroup source-vimrc
  autocmd!
  autocmd BufWritePost *vimrc source $MYVIMRC | set foldmethod=marker
  autocmd BufWritePost *gvimrc if has('gui_running') source $MYGVIMRC
augroup END

koara-local/dotvim

vimrcの再読み込み

少なくとも再読み込みに必要なのは以下の設定
vimrcと名前のつくファイルを更新したら、source $MYVIMRC を実行

vimrc
" auto reload .vimrc
augroup source-vimrc
  autocmd!
  autocmd BufWritePost *vimrc source $MYVIMRC | set foldmethod=marker
  autocmd BufWritePost *gvimrc if has('gui_running') source $MYGVIMRC
augroup END

参考:
Hack #74: 簡単にvimrcを編集する
Vimでvimrcを編集しやすくする記述とvimrcのリロードでモードラインの設定が無視される問題

普段gvimは使わないのでよく知りませんが、
gvimの場合は、sourceするだけでは反映されない設定があるようなので
tyruさんの、restart.vim あたりをつかうと捗るらしいです(要検証

tyru/restart.vim

参考:
[vim]現在の状態を復元して gVim を再起動する

追記

:bufdo source $MYVIMRC

ですべてのバッファに更新を適用・・・できるように一瞬みえたのだけれども
カラーがおかしくなったりしてうまく動かない模様

いい方法があれば教えて下さい・・・

再読み込み前に設定をリセット

ただこれだけだと、例えば set expandtab などをコメントアウトした場合に、
Tabが入力される状態に戻ってくれなかったりする。( set noexpandtabとしないといけない )

ちょっとそれは面倒なので、再読み込みのたびに最初に設定をデフォルトに戻す。

vimrc
" init all settings
set all&

これで set expandtab をコメントアウトか削除するだけで、すぐにTabが入力される状態になった。
ついでにgroup設定のされていない autocmd もリセットしているけれども、必要性は不明

vimrc
" init autocmd
autocmd!

ついでにすぐにvimrcを開けるようにする

自分は ,v でvimrcを開くようにしています。

vimrc
" Edit vimrc
nmap ,v :edit $MYVIMRC<CR>
39
41
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
41