vim_thumb

Learning Vimscript The Hard Way — (2) Setting Options/设置选项

设置选项

Vim 有很多选项让你来改变它的行为。

选项主要有两种:布尔值选项(开【on】或者关【off】)和需要设置值的选项(options that take a value)。

布尔值选项

运行下面的命令:

:set number

这样行号就应该出现在窗口的左边(假如原来没有显示行号)。

再运行这个:

:set nonumber

这样行号就应该消失了。number是一个布尔值选项,它可以是开或者是关,你可以通过:set number将其打开或者用:set nonumber将其关闭。

所有的布尔值选项都是这样工作的。:set 打开这个选项,:set no关闭这个选项。

布尔值选项的翻转

你也可以用“翻转”的方式来将布尔值选项的值设置为与当前相反。运行这个:

:set number!

行号就应当重新显现出来,再来一次:

:set number!

他们又该消失掉了。在选项后面添加一个!(感叹号)来将其翻转。

查看选项

你可以通过?问号询问Vim某个变量当前的值。运行下面这些命令,观察一下每个命令执行完之后都发生了些什么:

:set number :set number? :set nonumber :set number?

注意第一个:set number?命令显示了 number,而第二个【:set number?】显示了nonumber

【译注:

后来多手试了一下,其实如果运行:

:set nonumber?

效果和 set number? 是一样的。

哈哈,自己拓展了一下,在 _vimrc 里面加入了 set number 的语句,果然 vim 就默认显示行号了!

带有值的选项

有些选项不仅仅是开或关,还会取一个值。运行下面的命令然后看看每一句执行之后发生了些什么:

:set number :set numberwidth=10 :set numberwidth=4 :set numberwidth?

numberwidth选项会改变行号所在的列的宽度。你可以通过 :set = 来改变一个非布尔值的选项,然后通过 :set ? 这个常规手段来查看它们的值。

试一下其他的一些常用选项现在被设置成什么值:

:set wrap?   “【是否自动换行,默认开】 :set shiftround?  “【自动缩进,简写 sr,默认关】 :set matchtime?  “【多少个十分之一秒显示一次括号匹配,简写 mat,默认 5】

一次设置多个选项

最后,你可以在 :set 命令里面一次性指定多于一个选项,这样可以节省一些输入。试一下运行这些:

:set numberwidth=2 :set nonumber :set number numberwidth=6

注意在最后一行,多个选项是如何在同一行里面被设置生效的。

练习

阅读 :help ‘number’ (注意有引号) 【加引号是因为 number 同时是一个命令的名称,查看帮助如果选项与命令名冲突,选项要加引号进行界定】

阅读 :help relativenumber 【简写 rnu,默认关】

阅读 :help numberwidth

阅读 :help wrap

阅读 :help shiftround

阅读 :help matchtime

按你喜欢在你的 ~/.vimrc 文件里面加入这些选项的设置。


【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2014/10/vimscript-hard-2.html【Learning Vimscript The Hard Way — (2) Setting Options/设置选项】

发表评论

电子邮件地址不会被公开。 必填项已用*标注