在插入模式下,可以通过按 Ctrl n (用于插入模式完成)或 Ctrl 来显示完成候选列表。 x Ctrl o (用于设置omnifunc
时的Omni补全)。但是,这些键绑定在终端模式(:term
)下不起作用。
问题:在终端模式下,如何获取完成候选人列表?我期望能够使vim显示完成候选者像grep
,kill
,cd
,python3
和文件路径像/home/user/Desktop
,{{1 }}等
我正在使用vim 8.0。
答案 0 :(得分:1)
在这种情况下,终端显示在vim中,因此您输入的内容不会进入vim。这意味着我们必须使用您的终端为您提供的补充信息。 tab
应该像往常一样工作,要完成vim样式,可以将其添加到.inputrc
中:
# cycle forward
Control-n: menu-complete
# cycle backward
Control-p: menu-complete-backward
答案 1 :(得分:0)
:terminal
只是交互式外壳程序(或由外壳程序启动或代替外壳程序的另一命令)的视图。 Vim提供了一些集成(传递键入的键,显示输出),但是运行显示的是Shell 。
由于Vim不知道发生了什么(您可能已经启动了一个命令,其中文件系统路径或命令的完成如您所建议的那样毫无意义;您可能已经ssh
到另一个未安装python3
的系统中),它不能也不应向您提供这些东西。取而代之的是,正如其他人已经评论过的那样,这是shell的工作(并且大多数命令提供了完成功能,有些(例如Bash)甚至是非常强大且可扩展的功能,它们超出了您的建议)或正在运行的命令。 >