×

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 Execute命令


execute命令用来把一个字符串当作Vimscript命令执行。在前面的章节我们曾经跟它打过交道, 不过随着对Vimscript中的字符串有更深入的了解,现在我们将再次认识它。

execute基本用法

执行下面的命令:

:execute "echom 'Hello, world!'"

Vim把echom 'Hello, world!'当作一个命令,而且尽职地在把它输出的同时将消息记录下来。 Execute是一个非常强大的工具,因为它允许你用任意字符串来创造命令。

让我们试试一个更实用的例子。先在Vim里打开一个文件作为准备工作,接着使用:edit foo.txt在同一个窗口创建新的缓冲区。 现在执行下面的命令:

:execute "rightbelow vsplit " . bufname("#")

Vim将在第二个文件的右边打开第一个文件的竖直分割窗口(vertical split)。为什么会这样?

首先,Vim将"rightbelow vsplit"bufname('#')调用的结果连接在一起,创建一个字符串作为命令。

我们过一段时间才会讲到相应的函数,现在姑且认为它返回前一个缓冲区的路径名。 你可以用echom来确认这一点。

bufname执行完毕,Vim将结果连接成"rightbelow vsplit bar.txt"。 execute命令将此作为Vimscript命令执行,在新的分割里打开该文件。

Execute危险吗?

在大多数编程语言中使用诸如"eval"来构造可执行的字符串是会受到谴责的(如果不会是更严重的后果)。 因为两个原因,Vimscript中的execute命令能免于操这份心。

首先,大多数Vimscript代码仅仅接受唯一的来源——用户的输入。 假设有用户想输入一个古怪的字符串来执行邪恶的命令,无所谓,反正这是他们自己的计算机! 然而在其他语言里,程序通常得接受来自不可信的用户的输入。Vim是一个特殊的环境, 在此无需担心一般的安全性问题。

第二个原因是因为Vimscript有时候处理问题的方式过于晦涩难懂且稀奇古怪。 这时execute会是完成任务的最简单,最直白的方法。 在大多数其他语言中,使用"eval"不会省下你多少击键的生命,但在Vimscript里这样做可以化繁为简。

练习

浏览:help execute来明了哪些命令你可以用execute实现而哪些不可以。 但当涉猎,因为我们很快将重新审视这个问题。

阅读:help leftabove:help rightbelow:help :split:help :vsplit(注意最后两个条目中额外的分号)。

在你的~/.vimrc中加入能在选定的分割(竖直或水平,上/下/左/右方位)中打开前一个缓冲区的映射。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)