長らく更新をさぼっていました。忙しい…
久しぶりに.vimrcに手を加えたので、その話です。
vimでは頻繁に先頭に移動するggコマンドを使います。しかし、ちょっとまともな(?)ソースコードなどは先頭に大量のコメントがついていて、ggだけではコードの一片も見えず、さらに<C-F>を連打…ということをしがちです。
連打… これはvimmerとして敏感になるワードです。もっと効率よく、本来の目的である「最初の非コメント行」にたどり着けるはず。
そこで、早速ちょっとした関数を書いてみました。
function! GotoFirstEffectiveLine()
normal gg
while line(".")<line("$") && (
\ getline(".") =~ '^\s*$'
\ || synIDattr(synID(line("."), col("."), 0), "name") =~ ".*Comment$"
\ )
normal j0
endwhile
exe "normal z\<CR>"
endfunction
nnoremap <silent> gG :<C-U>call GotoFirstEffectiveLine()<CR>このGotoFirstEffectiveLine()をコールすると、最初の「非空白かつ非コメント行」に移動することができます。vimではgGが空いているので、これに割り当てると覚えやすいでしょう。

