gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:24:52 24 4
gpt4 key购买 nike

这是一个简单的用户定义函数:

fun! Foo() range
echo a:firstline a:lastline
endfun
  • :5call Foo():5,5call Foo()给我同样的结果。
  • 然而,:5j:5,5j给我不同的结果。

  • 我可以编写一个行为类似于 join 的函数吗? ?
    怎么样 join区分行地址和行范围?

    最佳答案

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

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

    关于vim - vim中如何区分行地址和行范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907438/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com