首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vimscript:使用vim设置作为变量/如何检查是否设置了特定的guioption

Vimscript是一种用于配置和自定义Vim编辑器的脚本语言。它允许用户通过编写脚本来修改Vim的行为,包括设置变量、检查选项等。

要设置一个变量,可以使用"let"命令,后跟变量名和值。例如,要将一个名为"my_variable"的变量设置为"hello world",可以使用以下命令:

代码语言:txt
复制
let my_variable = "hello world"

要检查是否设置了特定的guioption(图形用户界面选项),可以使用"exists()"函数。该函数接受一个参数,即要检查的选项名称,并返回一个表示选项是否存在的布尔值。例如,要检查是否设置了"menu"选项,可以使用以下命令:

代码语言:txt
复制
if exists('guioptions') && guioptions =~ 'm'
    echo "The 'menu' option is set"
else
    echo "The 'menu' option is not set"
endif

在上述示例中,我们首先使用"exists()"函数检查是否存在"guioptions"变量,然后使用正则表达式匹配检查是否设置了"m"选项(即菜单选项)。根据结果,我们输出相应的消息。

关于Vimscript的更多信息和详细用法,请参考腾讯云的Vimscript官方文档:

腾讯云Vimscript官方文档

请注意,以上答案仅供参考,具体的配置和检查方法可能因Vim版本和个人需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从零开始匹配vim(1)——选项设置

前面我们算是对 vimscript 做了一个入门,并且实现了一个 输出 hello world 的语句。现在我们继续进行 vimscript 的学习。...当然,与其他编程语言类似,我们也可以使用 set 语句,一次性给多个属性进行赋值,例如 set number columns=80 只是一般编程语言多个变量的赋值使用 , 作为分割,但是 vimscript...使用 lua 设置vim属性 作为一门更加规范的编程语言,lua 提供了多种方式来对这些变量进行赋值。目前有如下办法能对这些属性进行赋值。...使用neovim提供的全局函数进行设置 neovim 中提供了一组函数来设置这些属性。常见的分为三类: 设置全局属性 a. vim.api.nvim_set_option() :设置值 b....使用元访问器进行设置 neovim 的接口针对上述这些函数进行了一定的封装,提供了一组元访问器,以便我们能够像使用普通变量一样使用这些属性值。

83140

如何创建Vim Dotfile?

Dotfile是电脑系统里的隐藏文件,它是专门给更高级的用户,如开发者、程序员或工程师使用的,让他们用来调整系统。如何创建Vim-Dotfile? 可以参考以下步骤: 1....首先,你要检查一下.vimrc文件是否存在。要确定这个文件是否可用,可以运行以下命令。 2. 出于很多原因,Vimrc 文件有可能已经不存在了。...Vim dotfile可以在任何一种文本编辑器中编辑。你可以使用Gedit,Nano, 甚至是Vim。在打开文件后,你需要使用VimScript来配置它。 Vim使用Vimscript。...要确保缩格的设置正确,应该在你的Vim dotfile中使用以下代码。 你还可以在Github上保存你的dotfiles, 方便你使用它们。它不但节省时间,还可以消除在程序配置过程中错误传播的机会。...Vim是一个强大的文本编辑器。学习如何结合Vim定制dotfile对你目前和将来的项目会有很大帮助。对于那些刚开始学习Vim和dotfiles整体理念的人来说 ,可能会觉得Vim有点可怕。

1.9K80
  • 从零开始配置 vim(3)—— 键盘映射进阶

    这并不是我们想要的。到底发生什么了呢? 因为这些命令是递归的。如何理解递归呢?我们以函数的思想来考虑,每定义一个快捷键,就相当于定义了一个函数。并且在新定义的函数中调用老函数。...lua 配置 到此位置我们学会了怎么使用 :map 系列的命令定义快捷键,同时也知道什么是快捷键之间的递归和非递归。可以说掌握了关于 vimscript 定义快捷键的基本方法。...从上面的 vimscript 代码中可以看到 mapleader 是用 let 关键字来设置的,一般 let 是用来设置变量的。...lua 中自定义变量可以直接定义,但是 mapleader 明显是vim 自带的变量。跟设置选项类似,neovim 提供了两种访问 vim 内部变量的方式,一种是使用函数,一种是使用 元访问器。...跟变量有关的函数主要有: vim.api.nvim_set_var():设置全局变量的值 vim.api.nvim_get_var():获取全局变量 vim.api.nvim_del_var():删除全局变量

    1.5K30

    安装和定位vimrc

    在上一篇文章中,我们简单开了一个头,阐述了下学习vim的必要性,这章开始,会慢慢由浅入深的学习它的一套完整的,高效的文本编辑方式方法。...install neovim 对于其他发行版Linux来说,请参考neovim的官方网站来确定如何安装 针对windows平台,可以使用 // 使用Scoop scoop install neovim...映射为nvim alias vim='nvim' 使用vimrc进行基本的设置 刚开始为了后面使用方便,需要对vim进行一些基础配置,这里的配置也是为了日后更好的使用vim相关功能而必须要进行的配置 macOS...这里我们也可以将文件名改为init.vim这样我们可以使用vimscript,.lua可以使用lua语言进行配置。...这里给出vimscript和lua的最基础的配置 " vimrc 配置 set number "设置行号 syntax on " 打开语法高亮 set relativenumber "设置相对行号 set

    69120

    从零开始匹配vim(0)——vimscript 简介

    通过之前一系列的文章,相信各位小伙伴应该已经对vim产生了浓厚的兴趣,可能不少小伙伴通过慢慢的使用变的跟我一样,离开vim就不会写代码了。...如果你希望继续长时间使用vim,甚至将vim作为主要的代码编辑器,那么花一定的时间来学习vim的配置是很有用的。...、移动光标,并且知道如何保存退出 知道vim的相关术语,缓冲区列表、缓冲区、窗口、命令模式、插入模式等等 知道 vim的配置文件在哪 如果你还不知道,请移步我的专栏,跟着专栏中的内容做做实验。...,vimscript 不管写还是读都比较晦涩,而且 neovim 已经采用更容易理解也更加现代化的 lua了,有必要学习 vim script吗?...我们发现每次进入 neovim 之后,总会在下方显示这么一句话了。 我们再来看看如何使用 lua 来打印这么一句话呢?lua 中对应的函数是 print 。

    75720

    Vim 后门 | Linux 后门系列

    是 vim 内置的变量而不是 Linux 的环境变量,当然 vim 也是可以使用 Linux 环境变量的 通过在vim的底线命令模式中 echo $变量名 来获取 vim 的配置文件地址...,但是系统配置中设置 flag 变量这个操作是成功了的,相信看到这里,部分小伙伴已经对后门有想法了,但请不要着急,这部分主要是探索 vim 配置详细加载情况 2....是否可以通过环境变量设置 可以看到并没有什么影响,因此 runtimepath 的值并不是来自于 Linux 操作系统环境变量 4) runtimepath 是否可以通过配置文件修改 从结果可以看出...这些文件可以根据文件类型自动加载,并为特定类型的文件提供相关的设置和命令。...是否自动加载 vimrc Vim 的全局配置文件,用于设置全局的 Vim 选项和自定义命令。

    72151

    本地缓冲区设置与本地窗口设置

    在前面的一系列文章中,我们介绍了使用 :noremap 进行键盘映射,使用 set 来设置选项和 vim 的变量。并且已经在配置文件中对他们进行了相关配置。...在这个缓冲区中,我们使用 :set number来显示行号。这个时候不管如何打开新的文件,我们发现新打开的文件都会显示行号,这没什么新鲜的。 接下来我们来点不一样的。...每次打开或者关闭不同的文件会导致缓冲区变化发生变化,这就导致了我们没办法通过编号精准的为每个缓冲区设置我们想要的效果(不过这个需求也基本很少遇到就是了,后续将会学习新的技术来实现这一需求) 在 vimscript...在 neovim中使用 vim.g.maplocalleader 来设置本地 leader 键 作为普通用户来说,我仅仅是进行配置,让 vim 更好用,我更喜欢所有的 leader 都一样。...这是因为定义的本地行为把全局行为给覆盖掉了。我们可以理解为局部变量会覆盖全局变量。 但是我们切换到新的文件发现它执行的是 dd操作,以编程语言作为类比的话,此时已经跳出了局部设置的生命周期了。

    1.1K20

    从零开始配置 vim(11)——插件管理

    之前我们介绍了基础配置部分和快捷键配置部分。如果你配置了这两个部分,vim已经算是比较好用了。但是作为代码编辑器来讲还是显的比较简陋,用这些配置来完成日常的编码任务会显得力不从心。...autocmd BufWritePost init.lua source % augroup END 在使用vimscript的场合它可以正常工作。但是如何在 neovim中配置它呢?...nvim_create_augroup 传递一个自动命令组的名称,另外它可以接受一个 table 作为属性值,目前属性值可以传入一个 clear 的布尔值,相当于是否执行 autocmd! 。...随着配置的越来越多,以后在 init.lua 中一定伴随着大量的 require。我们可以通过 gf 快速跳转到对应的模块,但是前提条件是我们已经设置了 path 变量。...在lua中执行vim命令 在 0.7以前的版本中无法通过上述api来创建自动命令。但是它提供了执行vim命令的接口。 我们可以使用 vim.cmd 来执行 vim 命令。

    1.1K30

    从零开始配置 vim(9)——初始配置

    我们先经过几篇文章了解了下面的几个内容 如何设置vim属性,从而改变vim的特征 配置快捷键,以提高我们的使用效率 使用自动命令,以便使用vim来自动化我们的相关操作 这些既有vimscript的东西...拥有这些基础知识之后,在阅读其他人写的配置或者自己配置将会变得更加容易。当然关于vim我们还有很多内容没有讲,例如该如何自定义命令,如何弹出一个窗口,以及到最后如何编写自己的插件。...文件作为配置文件的入口 基础配置 我们在 init.lua 中写入如下内容作为基础配置 -- 设置文件编码格式为 utf-8 vim.g.encoding = "utf-8" -- 设置终端编码格式为...vim.o.ruler = true -- 边输入边搜索 vim.o.incsearch = true -- 开启搜索匹配高亮 vim.o.hlsearch = true -- 搜索时自行判断是否需要忽略大小写...= true vim.opt.termguicolors = true 完成之后,再次打开vim发现它已经变成了这样 本篇就到这里了,下一篇我们将对默认的快捷键进行配置

    1.2K10

    终极 vim 配置: space-vim

    作为 emacs 长久以来的对家 vim, 如果也能有一个这样一个社区驱动的配置,相信也会给大家带来很多便利。...此外,vim 社区中,虽有 spf13-vim, k-vim 等一些比较有名的 vim 配置,但始终整合的不够,散落着很多适用特定环境的很好的配置,比如针对 c-c++, python, ruby 等等不同语言环境...随着 vim8 的升级,会有很多新的更好的插件诞生,比如我用来替代 syntastic 的 ale, ale 使用了异步特性,再也不用因为语法检查而拖慢速度了。...(image-f65de2-1510556024398)] 如何使用 个人配置文件为 .spacevim, 如果没有 .spacevim, 那么 space-vim 仅会加载默认的 Layer. .space-vim...文档,包括安装细节,使用经验等。 展望 目前还没有在 Windows 下测试,实现了仅 Layer 的按需加载,后续应当还支持一些选项的设置,比如同类插件选择哪一个. 很多文档工作。

    2K20

    vsnip 插件

    本篇我们将要来讨论如何使用相关插件来完成代码片段自动完成的功能 vsnip 插件 我们之前在配置自动补全的时候已经下载了 vim-vsnip这个插件。...'(vsnip-jump-prev)' : '']] 由于该插件是使用 vimscript 脚本写的,它还没有提供 lua 的接口,因此这里我也就使用 vimscript...使用变量 使用语法 name 或者 {name: default} 可以插入一个变量。如果未设置变量,则会插入其默认值或空字符串。当变量未知(未定义其名称)时,会将插入的变量名称转换为占位符。...这里的变量一般是环境变量或者是 vim 自带的一些变量。我们直接拿来用但是在不同的环境下得到的结果是不一样的。 我们可以使用变量来丰富一些信息。...具体有哪些变量可以使用,可以参考 visual studio code 官方给出的文档 本篇主要谈论了该如何定义自己的代码片段。

    1.6K20

    vim 从嫌弃到依赖(19)——替换

    之前讨论了关于在vim中使用正则表达式的相关知识能方便的进行搜索,现在在之前的基础之上继续来讨论如何进行替换操作。...手动选择是否需要替换 有的时候我们并不希望盲目的对所有内容进行替换,而只替换其中的部分内容。例如上述的文本中,我们只想替换第二行的最后一个 python 为vim。那么可以使用 c 标志。...使用寄存器的内容进行替换 {pattern} 域留空了,vim会自动以上一次的模式来进行匹配,那么如果我把替换域留空,是不是会以上次替换的字符串作为这次的进行替换呢?...然后我们可以利用之前介绍的 {pattern} 留空的方式,重新组织新的排列格式 :%s//\2, \1 使用 vimscript 脚本 在上面介绍从寄存器中读取内容进行替换的时候初步介绍了,使用...最后的总结 在这篇文章我着重讨论了 substitute 这个命令的使用,介绍了该命令对应的标志位,并通过一些例子演示了如何使用这些标志位。相信各位对替换命令有了一定的认识。

    3.3K10

    推荐适用于面向程序员和开发人员的Vim插件

    基本上,Vim只是另一个文本编辑器,我们可以使用它来编写和编辑文本,就像通常在Windows或Mac上使用的Sublime Text,甚至在Windows上使用的记事本一样。...Vim插件所做的是通过使用它来增强我们的工作流程来帮助扩展Vim的功能。 Vim插件基本上是在特定目录结构中分布的大量VimScript记录。...Vim插件在插件管理器在出名之前被作为tarball包形式分发的。Vim插件在Vim中合并了其他功能-这些不是编辑器固有的功能。由于Vim的存在,可以使用各种各样的插件来实现广泛的用途。...现在好了,Vim Rainbow插件来了,因为它为每对括号设置了不同的颜色,从而使其很容易别出哪些括号是一对括号。 也非常有用而且非常生动。...这个特定的插件在Vim编码时基本上充当程序员的搜索工具。 我们时不时地要搜索包含特定行甚至只是一个单词的特定文件,而ack正是适合Vim用户的插件。

    49500

    一名Clojurian的Emacs配置

    我在转向emacs之前,是一名忠实的vim党,从大学开始就不断折腾vim的配置,还花过一段时间专门学习了vimscript,曾经惊叹于vimscript的动态函数式风格的优美和强大。...这就不得不提起Clojure这门lisp方言,出于对lisp和函数式编程的痴迷,我选择了基于JVM的Clojure作为自己的偏好语言,而emacs天生为lisp而生。...,顾名思义,多个包的下载源,我给package-archives设置了5个包源,它们之间服从顺序的优先级,即先从第一个源中下载包,如果没有,到第二个源中寻找,以此类推。...接下来,只需要使用c-h v和c-h f查看elisp中定义的变量函数就能很快上手自行配置。...这种时候,我心中就蹦跶出一句话“世界上本没有矛盾,如果出现了,检查你都有哪些前提条件,就会发现其中一个是错的”。这种非异常的知识点很难通过搜索引擎找到满意的答案,而阅读文档恰恰是最合适的解决方式。

    2.8K20

    从零开始配置 vim(15)——状态栏配置

    这篇文章主要介绍如何自定义状态栏 设置状态栏 我们可以采用 set statusline 来设置状态栏。 例如我们输入 :set statusline=%f\ -\ FileType=%y。...从上面的命令中明显感觉到只输出两个内容就已经开始显的比较繁琐了,如果显示的内容多了是不是就更加难以阅读和书写了呢?好在我们还能使用 lua来做设置。...控制边距和宽度 如果你写过 c 或者其他编程语言中的输出语句,应该很容易理解如何控制输出的格式,一般使用类似 `%4l`` 这样的语句来控制该项占4个字符宽度。...因此我们仍然采用在 lua 中调用 vimscript 的方式。这次我们使用函数 vim.api.nvim_eval()。它可以执行 vim 命令并将返回执行的结果。...状态栏的美化,其实主要靠插件,本篇一大部分写了如何使用原生的statusline 设置主要是自己手工设置比较有意思,而且也可以凑文章字数,其实你不知道statusline 这个也无所谓,很多插件都都对原生的方式进行了大量封装

    1.3K10

    Vimscript 中的坑

    本文内容为学习 过程中,觉得 Vimscript 语法中与所掌握的其它语言的定义有明显区别,需要特别记忆的内容。 使用 == 进行字符串比较是否忽略大小写与用户的设置相关。...当字符串转换为整形时,以数字开头的字符串会转换为整数,非数字开头的将转换为 0。 没有作用域限制的函数名必须以大写字母开头。 传给函数的参数需要带作用域前缀才能使用。...所以有连接字符串需求使用连接符 . 吧!...['a', 'b', 'c', 'd'][0:2] 而在 Vimscript 里结果将为 ['a', 'b', 'c']。...如果一个 Vimscript 变量要引用一个函数,即它的类型为 Funcref,它就要以大写字母开头;引用函数的列表的命名不受此限制。 如果像注释掉的那行那么写会报错

    31720

    vim 个性化设置

    前言 最近在开发的一个脚本工具集中需要实现对各单个工具脚本的版本管控,作为懒癌晚期患者,对于繁琐的事情一向是很反感的。于是趁着这个机会学习和应用一下vim的自定义函数以及一些常规操作。...由于工作使用vim比较偏向于工厂环境,所以本文只针对vim本身做简单配置,未深入研究各插件。 vimscript 简介 ? Vimscript,一门用于定制Vim的脚本语言。它其实就是 Vim命令。...如,在Vim中,保存一个文件使用命令:write(或者缩写 :w)并回车确认。在Vimscript中,使用write实现文件保存功能。...vimscript 教程参考链接:http://learnvimscriptthehardway.onefloweroneworld.com/ 版本管控实现 注意看注释,vimscript 注释内容以"...以下脚本实现了F1插入shell文件头,F2插入python文件头,F5更新文件头中日期,F6更新工具版本(没有对应版本行时插入版本行) 本文脚本已上传github: https://github.com

    1.5K20
    领券