如何在vim中更改自动完成行为?

5

通过示例进行解释。

我想要分割我的窗口并打开 file-x.txt

在我工作的文件夹中,我还有一组文件:从 file-a.txtfile-z.txt

如果我键入:

:sp fileTab

与bash中通常会得到的 :sp file- 不同。

我得到: :sp file-a.txt

这不是很方便,因为我需要要么敲击无聊的 Tab 键,要么输入非常长的名称。

是否有一种方法可以设置VIM的文件名自动完成行为?

感谢您的时间。

2个回答

13

'wildmode' 设置控制命令行中的自动补全。尝试

:set wildmode=longest:full,full
这应该可以达到预期效果。

1

您可以在此处使用通配符:

:sp *x<Tab>

在您所描述的情况下,按一次 <Tab> 键应该会自动完成命令行为:

:sp file-x.txt


?*等不是正则表达式,它们是文件通配符(在shell中也称为glob)。Vim通常将它们称为“文件模式”。 - Ingo Karkat
1
“Wildcard” 意思是 “代替…的字符”,因此*x不能被视为通配符。在shell中,它通常被称为“[glob]模式”(“glob”本身是一种技术),或者在vim手册中被称为“文件模式”。虽然我有时看到glob模式被称为“globs”,但我从未见过有人使用“通配符”这个术语来指代某种模式。您可以阅读bash或zsh手册以确保wiktionary的定义是正确的,并且“glob”不被用作“模式”。 - ZyX
我是指的 *,而不是 *x - romainl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接