WEB+DBvol.52のVimの記事を読みました

g:vim:id:ka-nachtさんが書かれた記事を読みました。

vimの基礎からスクリプトを公開するところまで一貫して書かれており、
vimを使うのに必要な知識はもちろん、
vimスクリプトを作っていくために踏んでいくプロセスが理解できました。


また基礎を押さえた設定の他に、
「筆者の設定では・・・」と一歩進んだ設定例が公開されているので、
興味を持って調べていけば、これもまた勉強になると思います。


個人的にはについて書かれていたのが、有用だと感じました。
:helpを読めって話ではありますが、
読んでいる文章の中でこういう解説が入っていると
別に:helpを引くより、理解の度合いが上がるような気がします。
# いや、面倒くさがりやなんですね、わたしは。


vim初心者のわたしでも多くを理解できました(と思う)。

初めて知ったことなどのメモ:

  • p.55: モードに対してどう接するか。以前*1の「移行」についてのコメントはそういうことかあ
  • p.55: オペレータペンディングモードについては結局どこに書いてあったんだろうか
  • p.59: text-objects知った
  • p.59: 対象範囲の単位を指定、知った。モーションの対象範囲を強制的に(character|line|block)wiseに。
  • p.64: editとsourceはカウントを取らないけどしているのは、p.68に書いてあるとおり、有っても困らないってことなのだろうか
  • p.68: を引けるようにした。便利
  • p.69: mapでのbashのevalみたいなやつ
  • p.70: gcがかなり便利
  • p.87: 行継続はvim固有
  • p.88: , silent!


でもこういうのって使わないと忘れちゃうんですよね。
# そして、便利な方法を使わなくなってしまうのです。

# 余談ですが、
# わたしの場合、例えばオプションのnumberについて調べるのに、
# :help 'number'
# で調べればいいのに、単に
# :help number
# で引いてしまって、Exコマンドの方が引っかかったりします。

# 結局、
# :help options.txt
# を実行して、このバッファ内からnumberを検索し始めたりします;


以前usr_41.txtを読んだことがあるのですが、
その辺りの練習も含めて、1つだけ設定を追加してみました。

arpeggio.vimを関数を用いて、活用してみました。

vimrcにて。

function! Toggle_option_number()
        if &number == 0
                setlocal number
        else
                setlocal nonumber
        endif
endfunction
Arpeggio noremap        sn      :call Toggle_option_number()<CR>

これでキー's'と'n'を同時にタイプすることで、
各々のウィンドウに対して、:set numberと:set nonumberをトグルできます。
必要なときだけ周囲の行番号を確認する感じですね。


Vim固有の行継続についてメモ

先頭が'\'(バックスラッシュ)で始まるのは行継続といって、
これはVim固有の機能らしいです。
# 「機能」と言ったら:versionで見れるやつ(feature)と混同するな、と怒られるかしら


わたしの.vimrcには

autocmd BufNewFile *.c
        \ 1r ~/.vim/skel/skeleton.c
        \ |1 delete _
        \ |call search('//plz code')

が書いてあります。


記事内では、
行継続が使われているプラグインを正しくロードさせるために必要なこととして、
cpoptionsを色々しています。


わたしのところではプラグインではなくて.vimrc内なので、
cpoptions云々は必要ないかな?
# Vi経由だったら.vircが使われるだろうし。。。


そもそも「Vi互換の挙動」というのは、なんだろう。
vim -Cで起動することだろうか。
それとも、試したことはありませんが
Viでも.vimrcを使うように、.vircにsource .vimrcとか書いておくことだろうか。


他、使ってみたい

  • command
  • abbrev