是否可以为 :! 启用 bash_completion或:r!在 VIM 中?

发布于 2024-11-26 08:46:27 字数 284 浏览 2 评论 0原文

我可以使用 :shell 输入当前目录并运行命令。 bash_completion 工作正常。

但是如何让 bash_completion 在 中工作:!命令:r !命令情况?

注意。我是 Emacs 用户,Emacs M-! 命令不允许这样的事情(还有 Mx shell,你需要 Mx term 才能获得 bash_completion) 。

I can use :shell to enter current dir and run commands. bash_completion work fine.

But how get bash_completion working in :! command or :r ! command case?

Note. I am Emacs user and Emacs M-! command don't allow such things (also M-x shell, you need M-x term to get bash_completion).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

万水千山粽是情ミ 2024-12-03 08:46:27

这是不可能的。 @Prince Goulash 指的是 vim 本身完成的简单文件名补全。如果您知道如何强制 bash 在某处通过管道完成变体,您可以为自定义命令创建一个完成函数,该函数可能反过来调用内置 :!,但重新定义内置命令的完成是不可能的。

我个人不知道如何使用 bash 执行此操作,并且知道尝试在 zsh 中执行此操作会导致通过重新定义 zsh 内置命令(例如 compadd)、使用 pexpect (python)、Expect 来进行肮脏的黑客攻击(perl)、expect (tcl)、zsh/zpty 或类似于以交互模式运行 shell 的东西,并发明了 zsh->vim IPC 机制(相反方向要简单得多)(我曾经开始研究类似的zsh 的模块,但由于这种方式存在太多问题而停止了)。

It is not possible. What @Prince Goulash is referring to is a simple filename completion done by vim itself. If you know how to force bash to pipe completion variants somewhere you can create a completion function for custom command which may in turn call built-in :!, but redefining completion for built-in commands is not possible.

I personally do not know how to do this with bash and know that trying to do so in zsh results in dirty hacks with redefining zsh built-in commands (like compadd), using pexpect (python), Expect (perl), expect (tcl), zsh/zpty or something similar to run shell in interactive mode and inventing zsh->vim IPC mechanism (in opposite direction it is much simpler) (I once started working on a similar module for zsh, but stopped as there were too much problems on this way).

深居我梦 2024-12-03 08:46:27

你的 .vimrc 里有吗

set nocompatible

?这会自动启用 :! 的前模式补全。要查看可能的完成列表,您还可以使用

set wildmenu

并研究 wildmode 选项。

Have you got

set nocompatible

in your .vimrc? This automatically enables ex-mode completion for :!. To see the list of possible completions you could also use

set wildmenu

and investigate the wildmode options.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文