Vim勉強会#3@大阪
kana <http://whileimautomaton.net/>
:helpを使いこなす:helpを使いこなす = Vimを極めるための一歩
as, ip, CTRL-X, ...:helpに書かれてないこともある:help
:helpの使い方 + 全ドキュメントの目次:helpの使い方は暗記すること:help {topic}
:help CTRL-]:help :tag:help taglist():help tags:h:hを使うそれっぽい項目が選ばれて表示される
:help quickref → クイックリファレンス:help quickr → 同上:help quick → quickfixの概要:help qui → :quitの説明:help q → recordingのqコマンドの説明:helpの内容が更新される → 飛び先が変化する(かも)詳細: :help cmdline-completion
:help '*key<C-d>
:help *key*(<C-d>
:help v_<C-d>
詳細: :help tags-and-searches
:helpの面白そうな項目を読む:helpのないプラグインは爆発しろデフォルトのままでは不便な点はいくらでもある
結論: vimrcを書こう
:edit $MYVIMRC - vimrcを開く詳細: :help mark-motions
nnoremap <Space>. \ :<C-u>edit $MYVIMRC<CR>
command ReloadVimrc source $MYVIMRC
nnoremap <Space>s. \ :<C-u>source $MYVIMRC<CR>
set backupdir+=/foo
set backupdir+=/foo,/barに変更してリロード&backupdir ==# '...,/foo,/foo,/bar'になってしまうset backupdir& backupdir+=/foo
変数やオプションの設定で+=や-=を使う場合、デフォルト値も明らかにする
command Foo ... function Foo() ... endfunction
command! Foo ... function! Foo() ... endfunction
上書き定義するために!を付ける
autocmd BufEnter * ... autocmd BufLeave * ... ...
:autocmdは常に「追加」されるaugroup MyAutoCmd autocmd! autocmd BufEnter * ... autocmd BufLeave * ... ... augroup
:augroupを使って自分が追加した:autocmdをまとめておくaugroup MyAutoCmd autocmd! augroup END autocmd MyAutoCmd BufEnter * ... autocmd MyAutoCmd BufLeave * ... ...
:augroupと:autocmdを分けて記述することもできる:setl wrap!と入力するのは面倒nnoremap <Space>ow \ :<C-u>setlocal wrap! \ \| setlocal wrap?<CR>
'wrap'を切り替え:marks等の入力は面倒nnoremap <Space>m :<C-u>marks nnoremap <Space>r :<C-u>registers
nnoremap gc `[v`]
/を検索するには\/と書くcnoremap <expr> / \ getcmdtype() == '/' ? '\/' : '/'
\/を入力/そのものを入力するには<C-v>/とタイプ:e ++enc=utf-8等と入力するのは面倒command! -bang -nargs=? Utf8 \ edit<bang> ++enc=utf-8 <args>
:Utf8で現在のファイルをUTF-8で開き直すnnoremap <C-t> <Nop>
nnoremap <C-t>n :<C-u>tabnew<CR>
nnoremap <C-t>c :<C-u>tabclose<CR>
nnoremap <C-t>o :<C-u>tabonly<CR>
nnoremap <C-t>j :<C-u>execute 'tabnext' 1 + (tabpagenr() + v:count1 - 1) % tabpagenr('$')<CR>
nnoremap <C-t>k gT
...
:helpの実態: tags-and-searchesnnoremap t <Nop> nnoremap tt <C-]> 「飛ぶ」 nnoremap tj :<C-u>tag<CR> 「進む」 nnoremap tk :<C-u>pop<CR> 「戻る」 nnoremap tl :<C-u>tags<CR> 履歴一覧 ... その他
:helpのナビゲーションが快適に:edit, :write, ...noremap ; : noremap : ;
:h {topic}
nnoremap <C-h> :<C-u>help<Space>
あるVim使いのvimrcの成長過程
| 日時 | 行数 | 単語数 | バイト数 |
|---|---|---|---|
| 2007-01-01 | 93 | 240 | 1940 |
| 2007-07-27 | 912 | 2448 | 21405 |
| 2007-12-23 | 1788 | 5578 | 46195 |
| 2008-08-22 | 2242 | 7341 | 57178 |
:helpから