我想在 shell 中设置一些东西,以便仅使用 shell(无 X)给我类似 IDE 的体验。我最接近的是使用 tmux,在一个窗格中使用 vim,在另一个窗格中使用命令行。这样我就可以从 vim.w !bash
运行一条线。
但这对我来说并不令人满意,因为环境不会在单独运行的命令之间持续存在。
如果我跑:
var1=FOO
接着
echo $var1
每次使用.w !bash
,FOO
都不会被回显。
我真正想做的是在一个窗格中浏览一个文本文件,并使用快捷方式将一行发送到另一个窗格中的终端,作为该终端会话的一部分。实现这一目标的正确工具组合是什么?我知道 emacs 可以配置为使用自己的终端仿真器执行类似的操作,但我想要一个与库存工具(例如安装程序)一起使用的解决方案。
编辑:tmux select-copy-paste 还不错,但还是有点笨拙。
一个原型解决方案,具有
sh
,vim
和tmux
, 快速和肮脏的概念证明。您
.w !bash
运行bash
并将当前行发送到其标准输入。让我们替换bash
为一个脚本,该脚本将其标准输入中的一行注入到tmux
.这是基本脚本:
程序,简短说明:
将其另存为
trun
,使其可执行并可通过$PATH
. 现在,如果您有两个窗格tmux
并在其中一个中运行trun
,然后键入一行并点击Enter,那么该行将被注入到另一个窗格中。而
vim
不是.w !bash
invoke.w !trun
,它应该可以工作。将其绑定到一个密钥以便于访问。笔记: