4

所以我在我的 vimrc 中有以下几行来使用 jk 滚动自动完成。

" Making autocompletion work with jk
inoremap <expr> j ((pumvisible())?("\<C-n>"):("j"))
inoremap <expr> k ((pumvisible())?("\<C-p>"):("k"))

我想知道是否有办法使用and滚动浏览:tabe<Tab>建议?这对我来说似乎是最自然的,但是我无法找到任何关于如何做到这一点的信息。hl

4

2 回答 2

1

使用命令行补全时,无论您是否使用wildmenu以及为 设置的任何值wildmode,您的光标都会停留在命令行中,并且您点击的任何可打印字符都会被插入,当然包括hl.

考虑到这一点,你真的认为放弃在命令行中插入h和的能力是明智的吗?l

如果您不喜欢<Tab>,您可以尝试该wildchar选项,但您将无法摆脱或替换<C-n>/<C-p>和箭头。

此外,命令行完成是一项通用功能,不限于:tabe. :tabe是红鲱鱼,在这里。

于 2013-04-29T18:32:04.080 回答
0

重新映射h并且l对我来说看起来很奇怪。它们真的很有用,至少你需要它来编写、输入命令等......

如果你想要一个简单的自动完成提示,你应该在你的 vimrc 中添加这些行:

set wildmenu
set wildmode =list:longest,list:full 

然后添加 SuperTab 功能,它还允许您Tab使用 Tab 自动完成并导航到菜单。这是代码:

imap <Tab> <C-R>=SuperTab()<CR> 


function! SuperTab()
if (strpart(getline('.'),col('.')-2,1)=~'^\W\?$')
  return "\<Tab>"
else
  return "\<C-n>"
endif
endfunction

希望能帮助到你 !

于 2013-04-29T19:12:53.207 回答