【发布时间】:2014-09-22 18:17:18
【问题描述】:
我正在寻找将文件打开到现有 vim 会话中的想法。
我正在使用 Windows + Cygwin + Mintty。我通常有 3 到 4 个打开的终端(2-3 个 vim 会话 + 1 个 shell,构建环境)。我不使用 tmux/screen,因为使用本机 Windows 的窗口管理器在我的终端窗口之间切换更容易。因为我有 2 个宽屏显示器,所以我可以将两个屏幕的 2 个一半用于我的终端,这给了我一个很棒的工作环境。在AHK 脚本的帮助下,我可以使用快捷方式来切换/旋转,甚至将我的终端重新定位到所需的位置。
出于多种原因,我更喜欢 vim 而不是 gvim。我可以实现几乎所有 gvim 功能(滚动、鼠标选择、复制、粘贴等/. 我总是对我正在使用的每个软件使用不同的快捷方式感到困惑。
现在是核心问题。我想将 Windows 资源管理器中的文件打开到现有的 vim 会话中。我发现了一个可怕的解决方案,它使用带有 Win32::API 的 Perl 脚本来查找标题中带有 Vim 的现有薄荷终端。然后我激活窗口并将<esc>:e path/file<cr> 发送给它。
它工作得很好,但我正在寻找一个更好的解决方案,比如gvim --remote,它适用于我的控制台vim。不幸的是,即使我使用 -with-x 配置选项构建它,我的 vim 也没有这样的选项。
所以,我正在寻找一些建议以实现更光荣的解决方案(套接字/将功能直接添加到 vim/使用更智能的 ahk 脚本/等)
【问题讨论】:
-
send <esc>:e path/file<cr> to it是什么意思?什么是send,什么是it? -
如果您通过 User32.dll 启用运行 vim 的 mintty 窗口的焦点,您可以将击键发送到 vim 会话。因此,您可以像输入
:e <path to the file you want to edit>一样打开要打开的文档