長らく放置してしまいましたが、ぼちぼち更新再開していきます。
日常的によくお世話になっているvimrcの小ネタを紹介します。
タイトルどおり地味ですが、気に入ったものでもあればお試しあれ。
地味に便利なVim設定
¥¥で変更があれば保存
<Leader>は他のキーとの組み合わせでよくキーマップに使われますが、私はこれを2連打したときファイルを保存するようにしています。(Kaoriya版Vimでは標準で<Leader>は¥キー。他の環境は未確認)
「:w」ではなく「:up」にしておけば、内容に変更があった場合のみファイルの更新日付が更新されます。
"<Leader><Leader>で変更があれば保存
noremap <Leader><Leader> :up<CR>
スペースキーでカーソルを画面中心に保ってスクロール
主にファイルを閲覧する際、普通にスクロールしているとカーソル(と視点)が画面上下の端に寄ってしまい、前後を把握しながら読むことができません。
そこで、ブラウザと同じようにスペースキーを使ってスクロールできるようにしています。
貴重なスペースキーのマップをこれだけのために使ってしまうのはもったいない気もしますが、非常によく使うので重宝しています。
nnoremap <Space> jzz
nnoremap <S-Space> kzz
カーソル行の強調表示を併せて設定しておけばさらに読みやすくなります。
"カーソル行の強調表示
set cursorline
ノーマルモードでもエンターキーで改行を挿入
標準ではノーマルモードでエンターキーを押してもカーソルが一行下に移動するだけですが、これだとあまり意味がないので改行を挿入できるようにしました。
ファイルを閲覧しながら改行を入れたりインデントを入れたりする作業は結構発生します。
noremap <CR> o<ESC>
「,」からの2ストロークでファイルを開く
「,」キーは使用頻度が低いので、よく使うファイルを開くためのショートカットに使っています。(本来の機能は「:h ,」で確認してください)
"「,v」でgvimrcを開く
nnoremap ,v :e $HOME/_gvimrc<CR>
"「,t」でtodo.txtを開く
nnoremap ,m :e $HOME/memo/todo.txt<CR>
カレントディレクトリを自動的に移動
以下の設定をしておけば、ファイルを開く度にそのファイルの位置にカレントディレクトリが移動します。
augroup BufferAu
autocmd!
" カレントディレクトリを自動的に移動
autocmd BufNewFile,BufRead,BufEnter * if isdirectory(expand("%:p:h")) && bufname("%") !~ "NERD_tree" | cd %:p:h | endif
augroup END
FuzzyFinderと併せて使うと、いつでも同ディレクトリのファイルを開けて便利です。
"<F12>でFuzzyFinderFileを表示
noremap <F12> :FuzzyFinderFile<CR>
追記@2008-11-07
v連打で現在位置から行末まで選択
v$で行末まで選択しようとすると改行文字まで選択されてしまい、毎回hで1文字戻るのが面倒。なのでv連打で行末まで選択できるようにしています。
"ビジュアルモード時vで行末まで選択
vnoremap v $h
Comments»
[…] 地味に便利なVim設定 - ナレッジエース […]
はじめまして。
vimを使い始めたばかりの初心者です。
いつも参考にさせてもらってます。
今回の記事も読ませてもらい、Enterで改行を挿入するというのを試してみました。
とても便利なのですが、これを設定するとGrepでの結果をQuickfixで表示した時に、そこからEnterでジャンプできなくなるかもしれません。
私の設定ではそうなってしまいましたので、一応報告しておきます。
ご指摘ありがとうございます。確かに!Quickfixでエラーになってしまいますね。これは対策せねば・・・。MRUは問題なさそうなんですが。報告ありがとうございました。
[…] 地味に便利なVim設定 – ナレッジエース […]