如何区分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()给我相同的结果. 我可以写一个表现得像连接的函数吗? 解决方法
通过定义custom:命令,-range和-count属性可以让您更好地控制范围的消耗方式.但是,我认为即使这样也不会让你完全复制:join的行为.自定义Vim命令的界面不如内置命令可用的界面丰富.
作为一种解决方法,您可以使用histget(‘cmd’,– 1)来获取调用命令的命令行,并解析确切的命令调用,包括原始范围(然后可以通过将其传递给它来重复使用)另一个命令,但用它进行线性算术是有问题的,因为它是原始范围,而不是实际的行数).解决方法仅适用于交互式命令,很脆弱,需要一些努力.也许你可以通过定义两个不同的命令来完全避免这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |