在.vimrc中如何测试传递的文件名参数?

Eri*_*tis 6 vim

这个问题的答案 仅使用GUI使用vim会话?,建议

au VimLeave * mksession! ~/.gvimsession
au VimEnter * source ~/.gvimsession
Run Code Online (Sandbox Code Playgroud)

我的问题是当我开始时,例如$ gvim test.htmltest.html进入一个未显示的缓冲区.所以我的问题是如何测试传递的参数是否通过而不执行au VimEnter

或任何切换到传递的文件名缓冲区的东西.


另外,我将非常感谢有关在vim'Tag Outline'中启用的注释,例如HTML(类似于某些IDE的Outline Views).

ib.*_*ib. 11

可以使用该argc() 函数测试是否存在任何命令行参数,并且仅在参数不存在时加载先前保存的会话.

:autocmd VimEnter * if argc() == 0 | source ~/.gvimsession | endif
Run Code Online (Sandbox Code Playgroud)

  • @sidyll:顺便说一句,`:h argument-list`值得阅读以获取有关Vim中参数列表的信息. (3认同)
  • Vim 是一个非常完整的应用程序。我们从未停止学习。总有一个新的函数或命令需要发现。就我个人而言,我从没想过 Vim 有一个 `argc()` 函数——也许我需要更频繁地阅读 `:h function-list` 和 `:h index`。我想知道 Bram 是否知道他的程序能够做什么,如果他知道的话,他应该获得诺贝尔奖。 (2认同)