macvim、skim 和 sync - skim 使用*打开*文件的副本?

macvim、skim 和 sync - skim 使用*打开*文件的副本?

使用 Skim.app 进行反向搜索时,如果 .tex 文件已经在 macvim 选项卡中打开,有什么方法可以让该文件出现在最前面吗?如果有多个 vim视窗打开(不只是标签)?

如果您在活动选项卡中打开文件,则“标准”脚本(http://sourceforge.net/apps/mediawiki/skim-app/index.php?title=TeX_and_PDF_Synchronization#Editor_Script_for_VIM)可以工作,但如果您在非活动选项卡中打开文件,则该脚本无效(vim 命令bufexists不适用于其他选项卡)。

对我来说, Skim.app 标准mvim --remote-silent +":%line" "%file"完全没用——它会在第一个打开的 MacVim 窗口上覆盖当前打开的缓冲区。有没有办法改变这种行为来找到当前打开文件的副本?

编辑:我希望对其他人有帮助的注释 - 在我添加以下行之前,我无法让 applescript 工作

  -e "delay 0.2" \

到脚本的开头,并将 ESC 键传递更改为

-e "    key code 53 "\

答案1

我的答案是这个插件/脚本对:

https://stackoverflow.com/questions/8839846/vim-check-if-a-file-is-open-in-current-tab-window-and-activate-it了解详情

简短摘要:WhichTab.vim 在 macvim 会话中的所有选项卡中搜索您的文件名(希望您没有打开太多名为 ms.tex 的文件......)。

macvim-load-line 在每个打开的 VIM GUI 窗口上运行 WhichTab,然后如果它找到该文件的打开副本,它会激活该 GUI 窗口,切换到该选项卡,并转到该行。

目前它唯一不能做的就是如果 .tex 文件尚未打开则打开它...对我来说,如果我正在编辑,这种情况很少/从不发生。但这应该很容易添加。

相关内容