Pergunta

Vim 's menu de conclusão para um trabalho mais como o no Visual Studio. Eu quero ser capaz de escrever o início de uma variável (ou algo que a conclusão está disponível), bateu as chaves omni-conclusão e obter o menu de conclusão. Agora eu quero o menu de conclusão para destacar o melhor jogo, mas não adicioná-lo ao buffer. Agora eu quero ser capaz de tanto sucesso ENTER para introduzir o elemento selecionado ou inserir mais letras para filtrar o menu conclusão ainda mais (possivelmente com destaque para um novo item no menu de conclusão) e, em seguida, pressione Enter para inserir.

A página wiki / dicas em http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE é suposto fazer isso, mas eu não posso fazê-lo funcionar. Tem alguém tentou o código do que a ponta e fez funcionar como eu descrevo?

Foi útil?

Solução

A página wiki referenciada contidas mapeamentos quebrados. Um usuário (Spiiph) mudou o código Vim para algo que parecia melhor para ele, mas não estava certo. I inverteu as mudanças que ele fez e agora o inoremap declarações deve funcionar.

Para confusão evitar estes são IMHO os comandos certos:

inoremap <expr> <c-n> pumvisible() ? "\<lt>c-n>" : "\<lt>c-n>\<lt>c-r>=pumvisible() ? \"\\<lt>down>\" : \"\"\<lt>cr>"
inoremap <expr> <m-;> pumvisible() ? "\<lt>c-n>" : "\<lt>c-x>\<lt>c-o>\<lt>c-n>\<lt>c-p>\<lt>c-r>=pumvisible() ? \"\\<lt>down>\" : \"\"\<lt>cr>"

PS: Quando se trata de usar o recurso de conclusão do Vim eu encontrei o script SuperTab muito conveniente. Talvez esse script também é interessante para você neste contexto ...

Outras dicas

Eu uso supertab, o que eu realmente gosto, e o seguinte parece um grande trabalho:

imap <expr> <Tab> pumvisible() ? "<Tab>" : "<Tab><Down>"

Para referência:. Estou correndo debian sid, e isso funciona tanto para vim 7.2.245 e para o meu remendado 7.2.259

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top