gpt4 book ai didi

vim - 跳转到特定自动完成选项的更快方法

转载 作者:行者123 更新时间:2023-12-04 19:49:22 28 4
gpt4 key购买 nike

在我的 Vim 缓冲区的某处说我有以下内容:

function foo() {
return 'funday, funky, funnel cake';
}

现在我想在这个下面创建一个新函数..

我开始输入 fun 并点击 Tab 以调出我的自动完成菜单。在那个菜单中,我得到(按照这个假设的顺序):

funday
funnel
function
funky

通常,我会 Ctrl + n 两次来突出显示 function,这没什么大不了的..但是如果我有20 个结果,我想非常快得到第 10 个结果。

是否有任何已知的方法(或插件)可以快速跳转到 Vim 自动完成菜单中的特定值?


更新:通过 hack,我找到了一种通过 X 自动完成选项跳转的方法:

" j/k for up and down in autocomplete menu
inoremap <expr> j ((pumvisible())?("\<C-n>"):("j"))
inoremap <expr> k ((pumvisible())?("\<C-p>"):("k"))

" Hack to jump down x positions
inoremap <expr> 2 ((pumvisible())?("\<C-n><C-n>"):("2"))
inoremap <expr> 3 ((pumvisible())?("\<C-n><C-n><C-n>"):("3"))
inoremap <expr> 4 ((pumvisible())?("\<C-n><C-n><C-n><C-n>"):("4"))

但是,我的 vimscript 很糟糕。谁有更好的方法来做到这一点?

最佳答案

就快速跳转到特定自动完成而言,我有以下工作流程。

在我的 .vimrc 中:

set completeopt=longest,menuone

longest 选项可防止自动选择第一个匹配项。这意味着 Vim 将等待您完成输入单词的其余部分,并且当您输入单词的更多字符时,完成弹出窗口会自动缩小。

在您的示例中,您将键入 fun,然后按 Tab,以调出自动完成菜单。此时,您仍然会看到:

funday
funnel
function
funky

...但现在不会再自动选择首选(funday)。然后您可以键入“c”,这会将列表缩小为:

function

无论如何,这是我所知道的最快的方法,使用纯 Vim。我个人倾向于喜欢纯 Vim 解决方案。 :)

编辑: 意识到我忘记在我的 .vimrc 文件的行末包含“menuone”。这会导致 Vim 显示自动完成菜单,即使只有一个匹配项。您需要在 set completeopt 行中使用“menuone”或“menu”才能真正看到带有完成的弹出窗口。

关于vim - 跳转到特定自动完成选项的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616671/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com