×

vi 命令手册

vi/vim 命令大全

vim 命令手册

Vim 关于Vim 安装Vim 用法Vim 配置vim 配置.vimrc方案vim 配置.vimrc方案1vim 配置.vimrc方案2Vim 文件合并Vim 技巧和建议Vim 插件Vim 参阅

Vimscript 编程参考

Vimscript 前言Vimscript 鸣谢Vimscript 预备知识Vimscript 打印信息Vimscript 设置选项Vimscript 基本映射Vimscript 模式映射Vimscript 精确映射Vimscript LeadersVimscript 编辑你的Vimrc文件Vimscript AbbreviationsVimscript 更多的MappingsVimscript 锻炼你的手指本地缓冲区的设置和映射Vimscript 自动命令Vimscript 本地缓冲区缩写Vimscript 自动命令组Operator-Pending 映射Operator-Pending 更多映射Vimscript 状态条Vimscript 负责任的编码Vimscript 变量Vimscript 变量作用域Vimscript 条件语句Vimscript 比较Vimscript 函数Vimscript 函数参数Vimscript 数字Vimscript 字符串Vimscript 字符串函数Vimscript Execute命令Vimscript Normal命令Vimscript 执行normal!Vimscript 基本的正则表达式Grep 运算符Operator 第1部分Grep 运算符Operator 第2部分Grep 运算符Operator 第3部分Vimscript 列表Vimscript 循环Vimscript 字典Vimscript 切换Vimscript 函数式编程Vimscript 路径Vimscript 创建一个完整的插件Vimscript 基本插件配置方式用Pathogen配置插件Vimscript 检测文件类型Vimscript 基本语法高亮Vimscript 高级语法高亮Vimscript 基本折叠Vimscript 高级折叠Vimscript 段移动原理Vimscript Potion段移动Vimscript 外部命令Vimscript 自动加载Vimscript 文档Vimscript 发布Vimscript 还剩下什么?

Vimscript 列表


目前为止我们已经很熟悉Vimscript里的变量类型了,但我们压根还没讲到集合(aggregates)呢! Vim有两种主要的集合类型,现在我们将讲到第一种:列表。

Vimscript列表是有序的,异质的元素集合。执行下面的命令:

:echo ['foo', 3, 'bar']

Vim输出这个列表。列表里当然可以嵌套列表。执行下面的命令:

:echo ['foo', [3, 'bar']]

Vim会愉快地输出这个列表。

索引

Vimscript列表的索引从0开始,你可以用下标得到对应元素。执行这个命令:

:echo [0, [1, 2]][1]

Vim显示[1,2]。你也可以从列表结尾进行索引,这很像Python。执行这个命令:

:echo [0, [1, 2]][-2]

Vim显示0。索引-1对应列表的最后一个元素,-2对应倒数第二个,以此类推。

切割

Vim列表也可被切割。这_看上去_会让Python程序员感到眼熟,但它_不_总是表现得跟Python中的一样! 执行这个命令:

:echo ['a', 'b', 'c', 'd', 'e'][0:2]

Vim显示['a','b','c'](第1,2,3个元素)。越过列表索引上界也是安全的。试试这个命令:

:echo ['a', 'b', 'c', 'd', 'e'][0:100000]

Vim仅仅显示整个列表。

可以用负数切割。试试这个命令:

:echo ['a', 'b', 'c', 'd', 'e'][-2:-1]

Vim显示['d','e'](元素-2和-1)。

你可以忽略第一个索引以表示"开头"和/或最后一个索引以表示"结尾"。执行下面的命令:

:echo ['a', 'b', 'c', 'd', 'e'][:1]
:echo ['a', 'b', 'c', 'd', 'e'][3:]

Vim显示['a','b']['d','e']

像Python,Vimscript也允许你索引和切割字符串。执行下面命令:

:echo "abcd"[0:2]

Vim显示abc。可是,你不能使用负数来索引字符串。你却_可以_使用负数切割字符串! 执行下面的命令:

:echo "abcd"[-1] . "abcd"[-2:]

Vim显示cd(使用负数索引会没有报错地得到一个空字符串)。

连接

你可以用+连接Vim列表。试试这个命令:

:echo ['a', 'b'] + ['c']

Vim,一点也不奇怪地,显示['a','b','c']。 没什么好说的——在奇怪的Vimscript世界里,列表是如此地正常,以至于让人感到奇怪。

列表函数

Vim有着许许多多内置列表函数。执行这个命令:

:let foo = ['a']
:call add(foo, 'b')
:echo foo

Vim就地在列表foo末尾加上'b',并显示['a','b']

:echo len(foo)

Vim显示2,即是列表的长度。试试下面的命令:

:echo get(foo, 0, 'default')
:echo get(foo, 100, 'default')

Vim显示adefaultget函数会返回给定索引对应的给定列表的项,如果索引超过列表范围, 返回给定的默认值。

执行这个命令:

:echo index(foo, 'b')
:echo index(foo, 'nope')

Vim显示1-1index函数返回给定项在给定列表的第一个索引,如果不在列表中则返回-1

现在执行这个命令:

:echo join(foo)
:echo join(foo, '---')
:echo join([1, 2, 3], '')

Vim显示a b,a---b,和123join先将给定列表的每一项强制转换成字符串, 再以给定的分割字符串(或一个空格,如果没有给的话)作为分割,连接成一个字符串。

执行下面命令:

:call reverse(foo)
:echo foo
:call reverse(foo)
:echo foo

Vim先显示['b','a'],接着是['a','b']reverse_就地_转置给定的列表。

练习

阅读:help List。看完它。注意大写L

阅读:help add().

阅读:help len().

阅读:help get().

阅读:help index().

阅读:help join().

阅读:help reverse().

浏览:help functions来查找我没有讲过的其他列表函数。 执行:match Keyword /clist/来以大小写不敏感的方式高亮单词list,以便于你的查找。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)