如果我打开了 vim,如何通过控制台与命令行交互?

如果我打开了 vim,如何通过控制台与命令行交互?

我知道我可以这样做!commands,但我想以某种方式在 vim 中集成一个 shell。或者我可以使用屏幕并分割屏幕,这样 vim 就可以占据屏幕的一半?

答案1

CtrlZ将暂停 vim 并将控制权返回给 bash。使用fg返回 vim。

答案2

集成子进程是 Vim 的主要弱点。没有内置对 shell 窗口的支持,但你可以尝试vimsh 插件

在 Screen 中,按C-a c可创建一个新的(全屏)窗口。按C-a pC-a n可移动到上一个/下一个窗口(C-a space也可移动到下一个窗口)。此外,split命令 ( C-a S) 会将屏幕分成两个区域;您可以将一个区域用作 shell,另一个区域用作 Vim。按C-a tab可在区域之间切换。

您始终可以按Ctrl+Z暂停 Vim 并在父 shell 中运行命令;键入fg返回 Vim。或者您可以使用:shell创建(全屏)子 shell;键入exit返回 Vim。

答案3

正如您所建议的,我只会使用屏幕。

  • screen
  • ^Ac 创建新窗口
  • ^AS 将屏幕水平分割为两个区域(某些版本有 Ctrl-| 垂直分割)
  • ^A-Tab 移动到新区域
  • ^An 将区域更改为下一个窗口

如果你不想要恰好一半一半,你可以:

  • ^A-+ 增加当前区域的大小

如果您需要在命令行中查看 vim 中的内容,这是一个不错的方法。如果您不需要,可以使用前面提到的Ctrl-Z/方法。fg

答案4

您还可以使用 :shell 来生成一个 shell。键入 exit 或 Ctrl+D 退出 shell 并返回 vim。如果您希望同时运行两者,使用 fg/bg(根据 Ignacio)、screen(如您所建议)或仅使用两个单独的终端(xterms、虚拟控制台等)是您的最佳选择。

如果你访问 vim.org,你可能会找到一个直接启动 shell 的扩展,但此时你已经非常接近 emacs 了。;) 下面是一个使用屏幕的示例:http://www.vim.org/scripts/script.php?script_id=2711

相关内容