我想将当前标签移动到MacVim中的新(可视/实际)窗口。
这可能很难,因为:
所以我想知道是否有人找到了实现这个目标的方法?
答案 0 :(得分:4)
我认为你最接近的是使用mksession
这个将有几个缺点(比如,最初辅助会话将打开比最终需要的更多缓冲区)。 但是,它将保留您的映射,设置,历史记录,窗口布局(如果当前选项卡中有多个窗口,它们都将被克隆)。
如果这个想法引起你的兴趣,你可以考虑创建一个脚本来过滤会话文件中的部分(这是Yust Another Vim Text Script)
:mksession! $HOME/detach.vim
:tabclose
:silent! !gvim remote --servername Detach -nR +'silent! source H:\detach.vim' +tabonly
:he mksession
):silent!
(尽量不要说太多话)!gvim remote --servername Detach
; 启动新的远程Vim服务器(如果尚不存在),或者与名为Detach
的现有服务器通信-nR
TODO修复 这是为了避免使用swapfiles(因为我发现无法抑制可怕的ATTENTION
消息[1])。但是,根据您的具体情况,这可能是不安全的建议,这就是为什么我还将-R
包含在只读模式中 +'silent! source H:\detach.vim' +tabonly
- 在远程vim中,使用要克隆的会话,并仅保留活动选项卡(已在步骤1中关闭。)边缘有点粗糙,当然,但我觉得非常接近你的意图。
如果您感觉舒服,可以删除-nR
标志,然后单击几个烦人的交换文件注意消息(键盘: Q )。
[1] :he ATTENTION
:silent! !start /b gvim ....
,以防你有终端窗口:simalt ~x
序列是最大化窗口的一种hacky方式(假设是英文UI,因为x
是Ma x
imize的加速器):se undofile
答案 1 :(得分:2)
我不认为这是可能的,因为当你打开(g)vim的新实例时,你无法访问前一个vim实例的撤消历史记录。您所能做的就是(在命令模式下):
:!gvim %
它将在gvim的新实例中打开当前文件。至少这是我能想到的。我可能错了