basyura's blog

あしたになったらほんきだす。

hatena.vim を読む その2

command! -nargs=? -complete=customlist,HatenaEnumUsers HatenaUser   if strlen('<args>') | let g:hatena_user='<args>' | else | echo g:hatena_user | endif

command!

コマンド定義

-nargs=?

0 もしくは 1 個の引数

-complete=customlist,HatenaEnumUsers

引数が補完されるようになります。
-complete=customlist,{func} {func}によるユーザ定義の補完

HatenaEnumUsers で返したリストで引数を補完する

function! HatenaEnumUsers(...) " ユーザ名を列挙
    if !exists('g:hatena_users')
        let g:hatena_users = []
    endif
    return g:hatena_users
endfunction

g:hatena_users がなければ空配列を、あればそのまま返す。g:hatena_users は .vimrc 等に記述した

let g:hatena_user='basyura'

が使用される。

HatenaUser

HatenaUser という名前で関数定義する

if strlen('') | let g:hatena_user='' | else | echo g:hatena_user | endif

if strlen('<args>')
    let g:hatena_user='<args>'
else
    echo g:hatena_user
endif 

引数が与えられていた場合は、それをユーザIDとして定義する。引数が無かった場合はユーザIDを出力する