3

有没有办法让 vim 在:已经输入的情况下卡在命令模式?

以这种方式,例如:

  • 我会键入/fooEnter,光标会转到下一行的开头,其中包含foo.
  • 接下来,我将仍然处于命令行模式,并且:已经输入了下一个命令。
4

4 回答 4

7

是的,以 Ex 模式启动它,方法是调用它 asex或 as vi -e

您还可以通过键入 Q(必须为大写)从正常的可视模式进入 Ex 模式。

您可以使用该vi命令从 Ex 模式返回到正常可视模式。

编辑:这实际上并没有做 OP 正在寻找的东西。他希望在将光标保持在底部命令行上的同时保持视觉显示。那可能是不可能的。

于 2012-12-28T19:43:34.203 回答
0

不,但你可以映射;to :让自己“更接近”命令模式。

我将链接到 Vim wiki,而不是在这里重新发布相同的信息。

http://vim.wikia.com/wiki/Map_semicolon_to_colon

于 2012-12-28T20:28:20.203 回答
0

您可以构建自己的REPL,如下所示:

:while 1 | execute input(':') | redraw | endwhile

这只是一个概念演示;您可能想添加一个条件来退出此特殊模式。此外,像:append这样的命令需要特殊处理才能正常工作。

于 2012-12-29T01:12:05.543 回答
0

作为最后一次尝试,我可以初始化 vim,-servername=FOO然后编写一个小脚本,该脚本将从 stdin 读取并remote-send在检测到(通过解析)在 stdin 上键入整个命令时发送到 FOO。

然后我会在不同的 xterms/gnu 屏幕上并排使用 Vim 和这个其他脚本。

编辑

好的,我会用这个。这样,我什至可以:a命令进入 vim 的插入模式,并在输入带有单个.. 这样我在插入文本时也会有语法高亮显示(你知道,vim 有一个非常漂亮的文本可视化显示,我只是太习惯于 ed 的界面)。当我有时间时,我会编写这个脚本并将其链接到这里。

于 2012-12-29T02:16:09.007 回答