使一些功能仅适用于MacVim,但不适用于终端内的Vim

时间:2013-11-27 07:04:17

标签: vim macvim

我主要通过OS X的MacVim应用程序使用Vim,但我也在终端内使用它。但是,因为我使用以下vim代码来使用session来保持以前的文件在下一个会话中始终打开:

在〜/ .vimrc中:

function! RestoreSession()
  if argc() == 0 "vim called without arguments
    execute 'source ~/.vim/Session.vim'
  end
endfunction
autocmd VimEnter * call RestoreSession()

当我使用MacVim时,没有问题,但是当我在终端内使用Vim时,每当我输入命令(vim)并开始使用它时,我首先得到了很多错误消息Error detected while processing /Users/myUserName/.vim/Session.vim: line 265: "path/to/my/file.js" 19L, 626C

所以我想知道应对上述问题的最佳方法是什么:

  • 只在MacVim上使用Vim(我不喜欢......)

  • 稍微修改上面的代码段,使其仅在可行的情况下通过MacVim有效

  • 站起来那些错误信息(看到这些错误后我就可以使用Vim了 - 我只是不喜欢看到它并在终端使用它时输入“ENTER”很多)

如果可行,我想采取第二种解决方案,但我该怎么做呢?在这种情况下,您知道其他解决方案是否更好?

感谢。

2 个答案:

答案 0 :(得分:1)

除非你能弄清楚错误的根本原因(并且你显然对这些错误感到满意),你可以通过以下方式来抑制它们:

silent! execute 'source ~/.vim/Session.vim'

答案 1 :(得分:0)

将您只想在GUI版本中使用的任何设置放入.gvimrc文件中。