普段我々が何げなく使っているCommand-line modeですが、使いこなすうちに様々な欠点が目につきます。このHackでは、Command-line modeを捨て去ってしまうことを提唱します。
Hack #161: Command-line windowを使いこなす
やっつけ
set cmdwinheight=1 nnoremap <sid>(command-line-enter) q: xnoremap <sid>(command-line-enter) q: nnoremap <sid>(command-line-norange) q:<C-u> nmap : <sid>(command-line-enter) xmap : <sid>(command-line-enter) autocmd CmdwinEnter * :NeoComplCacheLock autocmd CmdwinEnter * call s:init_cmdwin() function! s:init_cmdwin() nnoremap <buffer> q bw inoremap <buffer> q bw inoremap <buffer> wq WQ " うまいことしたいんだけど "cnoreabbrev <expr>q 'bd' "inoreabbrev <expr>q 'bd' "inoreabbrev <expr>q! 'bd!' "inoreabbrev <expr>wq 'WQ' nnoremap <buffer> <Esc> :<C-u><C-c><C-h> inoremap <buffer> <C-c> :<ESC> inoremap <buffer> <ESC> :<C-u><C-c><C-h> nnoremap <buffer> <TAB> :<C-u>quit<CR> inoremap <buffer><expr><CR> pumvisible() ? "\<C-y>" : "\<CR>" "inoremap <buffer><expr><C-h> pumvisible() ? "\<C-y>\<C-h>" : "\<C-h>" "inoremap <buffer><expr><BS> pumvisible() ? "\<C-y>\<C-h>" : "\<C-h>" " Completion. inoremap <buffer><expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" " カーソル移動 inoremap <C-k> <Up> inoremap <C-j> <Down> startinsert! endfunction
: を押すたびに一行上にスクロールするのが気になる・・・。
本当は自動補完の自動選択で一時的に補完が始まる長さを 5 ぐらいに変えたいのだけど、:NeoComplCacheAutoCompletionLength が効かない(やり方が悪い?使い方が違う?)のでひとまず :NeoComplCacheLock でロック。
あとは esc を押した際の動きと歴を探したい時の操作がしっくりこないので色々触ってみる。