set和:set有什么区别?


17

我在看Tim Pope的vim敏感插件,并在自述文件中注意到了这一点。

有关功能的权威列表,请参见源。(不用担心,主要是:set电话。)

当我查看来源时,:set呼叫就像这样...

set autoindent

有没有:set

我很确定我也确实:set在example实例中见过.vimrc

有什么区别?

我应该使用哪种形式.vimrc

Answers:


22

“脚本”无非就是运行一系列ex命令。:在Vim中使用时,键入的是“ ex命令” 。例如:wq:set wrap:e file等都是ex命令。

:不是命令的一部分; 启动命令行模式只是一个按键;您不必总是包含:,例如,当您链接多个命令时,|无需重复:多次。例如,:write | quit将正常工作。

为了方便起见,:可能会包含在内。这有助于复制/粘贴等操作,但您不必这样做。没关系 实际上,所有前导:s都将被忽略。:write,,write:::::::::write在功能上都是等效的(尽管显然不是理智)。

:in 包含在文档中以澄清这是一个ex命令通常很有用。例如,w可以参考:w或以正常模式命令w转到下一个单词。

请注意,这适用于所有内容。控制结构,例如ifendif只是ex命令; 您可以输入如下内容:

:if 1
:echo 'one'
:endif

从Vim命令行就可以了;不需要“脚本”。Vim脚本非常“神奇”和“非特殊”。从ex命令行可以在Vim脚本中执行的所有操作,反之亦然。


6

没有区别。如果vim :在您的vimrc (或任何vimscript文件)中的命令之前看到一个,它将忽略它。另外,如上所述,这并非特定于set命令。

通常,这:意味着该命令将由您运行,而不是放入您的vimrc (或其他vimscript文件)中,但这通常取决于上下文。就我个人而言,我认为最好不要将冒号放在vimscript文件中的命令之前,这似乎也是大多数人所做的。

有关更多信息,请参见:help script


:h script:h vim-script-intro(等效)
VanLaser
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.