• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Vimscript Execute命令

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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中加入能在选定的分割(竖直或水平,上/下/左/右方位)中打开前一个缓冲区的映射。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Vimscript Normal命令发布时间:2022-02-03
下一篇:
Vimscript 字符串函数发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap