繁体   English   中英

终端模式下的Vim自动补全

[英]Vim autocompletion in terminal mode

在插入模式下,可以通过按Ctrl n (对于插入模式完成)或Ctrl x Ctrl o (对于在设置了omnifunc时的Omni完成)来显示候选完成列表。 但是,这些键绑定在终端模式( :term )中不起作用。

问题:在终端模式下,如何获取完成候选人列表? 我期望能够使vim显示完成候选者,例如grepkillcdpython3和文件路径(例如/home/user/Desktop/home/user/Documents等)。

我正在使用vim 8.0。

在这种情况下,终端显示在vim中,因此您输入的内容不会进入vim。 这意味着我们必须使用您的终端为您提供的补充信息。 tab应该像往常一样工作,要完成vim样式,可以将其添加到.inputrc

# cycle forward
Control-n: menu-complete
# cycle backward
Control-p: menu-complete-backward

:terminal只是对交互式外壳程序(或由外壳程序启动或代替外壳程序的另一命令)的视图。 Vim提供了一些集成(传递键入的键,显示输出),但是运行show的是Shell

由于Vim不知道发生了什么(您可能已经启动了一个命令,其中建议的文件系统路径或命令的完成没有任何意义;您可以将ssh到另一个没有python3 ),它不能也不应为您提供这些东西。 相反,正如其他人已经评论过的那样,这是Shell的工作(并且大多数命令提供了完成,有些(例如Bash)甚至是非常强大且可扩展的功能,它们远远超出了您的建议)或正在运行的命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM