VIM:选项,变量和两者之间的转换

时间:2009-06-03 11:31:04

标签: vim

我对VIM中的这些感到困惑。有些东西需要设定,有些则需要。 而且,我该如何检查某个选项。我知道这是一个选项,因为我使用set来改变它。

例如,如何检查当前文件类型选项是否为java?

3 个答案:

答案 0 :(得分:11)

选项

所有这些选项都以某种方式改变了Vim的行为。 其中许多将用于自定义您的Vim:您可以设置如何处理备份文件,如何管理文本,是否显示菜单和工具栏,以及一堆其他东西。 缓冲区或窗口的几个选项是本地的;例如,它们指定应在缓冲区上使用哪种语法高亮和缩进。 :set命令可用于设置和打印选项的值,请参阅:help :set。 如果您键入:h option-list,则会获得包含单行说明的所有选项的列表。 如果您键入:h option-summary,则会获得包含详细说明的所有选项的列表。

内部变量

内部变量是不同的东西:它们就像程序中的变量。 您可以随时创建或销毁变量。 它们本身不会影响Vim的行为,只能通过Vim脚本(例如Vim插件和.vimrc文件)来读取(和修改)它们的值,并根据它来做不同的事情。 有几种内部变量:全局变量,局部变量和其他一些变量。 它们在:h internal-variables中描述。 它们用表达式(:h expression)和 可以使用let:h :let)和unlet:h :unlet)命令设置和删除它们。

扩展意义上的变量

还有其他对象的行为类似于变量,但不是内部变量。 它们也在表达式中进行计算,并且可以使用let命令设置它们的值;但他们无法删除。 内部有三种类型的变量:环境变量(:h :let-environment),寄存器变量(:h let-register)和选项变量(:h let-option)。 所有这些都有一个前缀,以便它们可以与内部变量和彼此区分开来。 环境变量的前缀为$,注册变量为@,选项变量为&。 这些变量指向某个地方(对于真实环境变量,寄存器或选项),并且当在脚本中或由用户读取或设置它们的值时,实际上读取或设置“真实物体”的值。 / p>

答案 1 :(得分:9)

通过研究更多内容得到了这个: 要获取选项的值,请在选项前加上&

所以,上面的内容可以用

完成
if &filetype == 'java'

答案 2 :(得分:7)

:set 用于显示选项值,显式设置选项值并切换它们,而:let 用于设置选项值作为某些先前表达式的结果(当您通过变量定义选项值时)。当然,在vim脚本中,你将使用:让更多。

例如:
您通常使用

设置文件类型
:set ft=batch

但你也可以

:let varijabla='batch'
:let &filetype=varijabla