【问题标题】:How does one make a VIM window a full on terminal? [duplicate]如何使终端上的 VIM 窗口完整? [复制]
【发布时间】:2009-03-22 20:39:28
【问题描述】:

可能重复:
How to run a terminal inside of vim?

我可以使用 split 和 vsplit 很好地设置我的工作区并打开...但我会 喜欢简单地将其中一个拆分用作终端窗口。我知道打开一个 额外的 xterm 并战略性地放置它可能能够实现这一点 但很多时候我被远程登录到一个窗口,我的手开始受伤 来自终端之间的 alt 选项卡。

更新:根据以下建议,我想出的最好的办法是使用 screen 并实际上让 vim 占据它的一个窗口。

【问题讨论】:

  • 我认为你应该试试 ConqueTerm。 github.com/rson/vim-conque Screen 很棒,但 ConqueTerm 实现得非常好。 (在我看来)

标签: vim


【解决方案1】:

我使用:http://code.google.com/p/conque/wiki/Usage

您可以键入 :split new 和 :ConqueTerm bash。你有一个工作终端窗口。 :)

【讨论】:

  • 这正是我最终满意的解决方案。我尝试了screen解决方案,vimshell解决方案;但我最后的个人偏好是 ConqueTerm。
【解决方案2】:

考虑在GNU Screen 中同时运行 Vim 和 shell。 Vim wiki 有关于集成 Vim 和 Screen 的信息。 Screen 支持拆分成类似于 Vim 的“窗口”。有关更紧密的 Vim+Screen 集成的示例,请参阅 here。

将 Vim 缓冲区直接绑定到外部交互式命令行应用程序是许多人长期以来一直想要的功能,但显然由于 Vim 的实现方式而实现起来有点困难,而且 Vim 开发人员不愿意改变这个(可以说是有充分的理由)。

但也有一些成功案例。 Lisp 社区特别尝试在 Vim 中重现 Emacs 的 SLIME(一种交互式 Lisp 提示符)。有关示例,请参见 VimClojure 和 Limp。其中一个可能会被更改为运行 shell,但这需要一些工作。

【讨论】:

    【解决方案3】:

    vimshell 补丁听起来就像您正在寻找的一样。

    【讨论】:

    • 试过但不太好。它不支持非 ncurses 包。
    • 链接已失效,它重定向到同一域上的索引页面。
    【解决方案4】:

    如果您在 vim 中,您可以使用 ":sh" 命令退出到子 shell,然后使用 "exit" 回到 vim。或者您可以暂停 vim 并使用 control-Z 返回您启动它的原始 shell,然后使用“fg”(前台)返回 vim。

    或者您可以安装一个"vim-shell" 插件。

    【讨论】:

      【解决方案5】:

      扩展 Brian Carper's answer,你可以把它扔进你的 ~/.screenrc:

      startup_message off
      # Launch 2 screens on startup
      split
      # Have bash login so $PATH will be updated
      screen -t Vim bash -l -c 'vim' 0
      focus
      screen -t canvas bash -l
      # switch focus back to vim
      focus up
      

      然后当你输入screen 时,你会在顶部有一个 Vim 窗口并且 底部的 bash 窗口。您可以在屏幕窗口之间切换 <C-a><Tab>.

      【讨论】:

        【解决方案6】:

        【讨论】:

        • 这很有用!我不知道该怎么做的一件事(查看您正在执行的屏幕截图,但使用的是 Python 而不是 Ruby)是我想在保存文件时使用现有实用程序运行我的测试套件。它可以工作,但如果我不在该窗口中的 INSERT MODE 中,它不会将该实用程序的 STDOUT 写入缓冲区,因此我每次都必须进入该窗口并点击 i 以查看失败的规格.您是否知道一种让窗口始终将实用程序的 STDOUT 写入缓冲区的方法,即使不在 INSERT 模式下也是如此?干杯!
        • 我刚刚发现 let g:ConqueTerm_ReadUnfocused = 1 就是这样做的。不幸的是,它说由于 VIM 的某些脚本限制,它不允许在非聚焦状态下滚动窗口。太糟糕了。 ://
        【解决方案7】:

        恐怕你将不得不放弃这个 - 在 vi​​m 中无法做到这一点。

        【讨论】:

        • 其他5个答案中的每一个都给出了合理的解决方案。
        猜你喜欢
        • 2015-01-12
        • 2014-04-11
        • 1970-01-01
        • 2017-02-10
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-18
        相关资源
        最近更新 更多