2007年 10月 09日

vim の補完

コメントをもらった。
http://subtech.g.hatena.ne.jp/cho45/20071009#c1191925480
できた! できた! 神すぎる!!!

でもってすこし変更して小文字入力時に常にメニュー出すように (word_complete.vim は捨てた)

set completeopt=menuone,preview
function! CompleteWithoutInsert()
	return "¥<C-n>¥<C-r>=pumvisible() ? ¥"¥¥<C-P>¥¥<C-N>¥¥<C-P>¥": ¥"¥"¥<CR>"
endfunction
inoremap <expr> <C-n> pumvisible() ? "¥<C-n>" : CompleteWithoutInsert()
" 小文字入力で常にメニューだす
let letter = "a"
while letter <=# "z"
	execute 'inoremap <expr> ' letter ' "' . letter . '" . (pumvisible() ? "" : CompleteWithoutInsert())'
	let letter = nr2char(char2nr(letter) + 1)
endwhile
inoremap <expr> <CR> pumvisible() ? "¥<C-Y>¥<CR>" : "¥<CR>"
inoremap . .<ESC>a
inoremap ( (<ESC>a
inoremap [ [<ESC>a
set lazyredraw

なんかこのコードははてなコード記法でハイライトおかしくなるみたいだ。vimcolor だからかな