加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何区分vim中的行地址和行范围?

发布时间:2020-12-15 22:58:57 所属栏目:安全 来源:网络整理
导读:这是一个简单的用户定义函数: fun! Foo() range echo a:firstline a:lastlineendfun :5call Foo()和:5,5call Foo()给我相同的结果. 但是,5j和:5,5j给我不同的结果. 我可以写一个表现得像连接的函数吗? 联接如何区分行地址和行范围? 解决方法 通过定义c
这是一个简单的用户定义函数:

fun! Foo() range
    echo a:firstline a:lastline
endfun

>:5call Foo()和:5,5call Foo()给我相同的结果.
>但是,5j和:5,5j给我不同的结果.

我可以写一个表现得像连接的函数吗?
联接如何区分行地址和行范围?

解决方法

通过定义custom:命令,-range和-count属性可以让您更好地控制范围的消耗方式.但是,我认为即使这样也不会让你完全复制:join的行为.自定义Vim命令的界面不如内置命令可用的界面丰富.

作为一种解决方法,您可以使用histget(‘cmd’,– 1)来获取调用命令的命令行,并解析确切的命令调用,包括原始范围(然后可以通过将其传递给它来重复使用)另一个命令,但用它进行线性算术是有问题的,因为它是原始范围,而不是实际的行数).解决方法仅适用于交互式命令,很脆弱,需要一些努力.也许你可以通过定义两个不同的命令来完全避免这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读