我想将当前选项卡移动到 MacVim 中的新(视觉/真实)窗口中。
这可能很困难,因为:
- vim 帮助中没有任何内容,只有很少的 - 没有帮助 - 在 google 上点击
- MacVim 不支持它(link http://code.google.com/p/macvim/issues/detail?id=213, 2009)
所以我想知道是否有人找到了实现这一目标的方法?
我认为你能想到的最接近的是使用mksession
This will有几个缺点(例如,最初辅助会话将打开比最终所需更多的缓冲区)。
然而,它will保留您的映射、设置、历史记录、窗口布局(如果当前选项卡中有多个窗口,它们都会被克隆)。
如果这个想法让您感兴趣,您可以考虑创建一个脚本,该脚本将从会话文件中过滤掉某些部分(这是 Yust Another Vim Text Script)
:mksession! $HOME/detach.vim
:tabclose
:silent! !gvim remote --servername Detach -nR +'silent! source H:\detach.vim' +tabonly
- 保存所有当前窗口、映射、设置(
:he mksession
)
- 关闭我们要分离的选项卡
- clone the session (detach.vim) into a remote vim
-
:silent!
(尽量不要说太多)
-
!gvim remote --servername Detach
; 启动一个新的远程 Vim 服务器(如果尚不存在),或者与名为的现有服务器通信Detach
-
-nR
TODO Fix 这是为了避免使用交换文件(因为我发现没有办法抑制可怕的ATTENTION
消息[1])。然而,根据您的情况,这可能是不安全的建议,这就是为什么我也包括-R
用于只读模式
-
+'silent! source H:\detach.vim' +tabonly
-- 在远程 vim 中,获取要克隆的会话,并仅保留活动选项卡(已在步骤 1 中关闭)。
A little rough around the edges, for sure, but quite close to what you intended, I feel.
If you are comfortable, you can drop the -nR
flags and just click through a few annoying swapfile attention messages (keyboard: Q).
[1] :he ATTENTION
后期脚本:
- 在 Windows 上您可能想要使用
:silent! !start /b gvim ....
如果你有终端窗口
- 同样在 Windows 上,如果生成的 gvim 窗口太小,您可能会遇到烦人的行为。这
:simalt ~x
序列是最大化窗口的一种巧妙方法(假设是英语用户界面,因为x
是马云的加速器x
imize)
- 锦上添花的是,vim 7.3 具有“持久撤消”功能。参见例如
:se undofile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)