重用Vim终端缓冲区

时间:2018-08-02 01:56:18

标签: bash vim terminal

在Vim 8中处理Bash脚本时,我经常使用以下命令在拆分终端中执行当前缓冲区

:terminal %

但是第二次运行此命令时,将打开一个新的缓冲区,而不是重用上一个缓冲区,除非我明确关闭了第一个缓冲区,否则会导致多个打开的终端。

有没有办法让Vim总是为:terminal命令重用相同的缓冲区?我可以放入.vimrc的单线格式是首选。

2 个答案:

答案 0 :(得分:1)

:help :terminal说:

  

打开一个新的终端窗口。

并且AFAIK无法告诉:terminal重用现有窗口。

不过,您可能可以使用:terminal:help term_start()选项构建自己的term_opencmd替代方案。

答案 1 :(得分:0)

如果您愿意进一步,可以将tmuxsend-keysvim和文件路径结合使用,而不是缓冲区本身。

  • 首先,您创建一个tmux会话,该会话最好在与将要运行脚本的目录相同的目录中运行:

tmux new-session -s DEBUGSESSION

  • 然后,您编辑名为my_script.sh的文件,该文件已经需要具有可执行标志。

vim my_script.sh

  • 然后从vim内部,将运行文件的密钥发送到tmux会话:

:! tmux发送键-t DEBUGSESSION“%:p Ctrl + V Ctrl + M

是的,您可能还可以发送缓冲区而不是文件,但是如果文件很大,我不知道其性能。

是的,这将您限制为整个文件(而不是缓冲区,您可以在其中选择许多行)。

但是我仍然认为这可能有用。