【问题标题】:Select relative range, ignoring invalid line numbers选择相对范围,忽略无效的行号
【发布时间】:2019-04-07 00:43:38
【问题描述】:

我想知道是否有一种语法可以在 vim/ex 中指定相对行的范围,它不会给出“无效范围”,而是尽可能多地获取行。

【问题讨论】:

  • 没有内置的东西可以在命令行上运行。如果您可以缩小用例范围,您或许可以使用自定义函数来完成某些事情(例如,vim-abolish 有一个自定义替代命令,可以对其进行修改以忽略范围错误)。
  • 我只想在 ex 中显示带有行号的行

标签: vim ex


【解决方案1】:

没有内置方法,但您可以自己将相对范围解析为绝对行号,然后使用:help min():help max() 将范围限制为可用行。因此,例如,以下相对范围:

:.-5,.+5 print

等价于:

:execute (line('.') - 5) . ',' . (line('.') + 5) 'print'

会被转换成这个:

:execute max([1, (line('.') - 5)]) . ',' . min([line('$'), (line('.') + 5)]) 'print'

【讨论】:

    【解决方案2】:

    我的CmdlineSpecialEdits plugin 具有(以及许多其他)CTRL-G + 映射,可将 .-5,.+5 等相对范围更改为绝对行号,反之亦然。它还更正了越界(

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多