4

是否有一个寄存器或变量保存当前选定范围的行号?

line(".")适用于当前行,但在可视范围内是否有一个?

编辑

如下所述'<,和'>寄存器保存开始行和结束行。

除了使用上述内容之外,我最终做的是在 VimScript 中编写一个函数,该函数获取这些行号并执行一个外部命令,我将在下面包含它:

function! Github(line1, line2)
    execute "!github -f " . expand("%") . " -l " . a:line1 . " -n " . a:line2
endfunction
com! -range Github call Github(<line1>, <line2>)

我是 VimScript 的新手,但根据我从最初的谷歌搜索中收集到的信息,上述函数接受一个范围。然后,我获取开始和结束行号,并使用它们执行github与 Github API 接口的外部脚本和/或根据 git 信息打开浏览器到 github 页面。

4

1 回答 1

8
  • '<'>分别。

    所以:应该是你所期望line("'<")line("'>")

  • 还,

    :'<,'>sort
    

    对最后的视觉选择进行排序

  • `<跳到最后一个视觉选择的开头(另见:he v_o

  • 最后,如果'cpoptions'包括,您可以用作 的同义词:*:*:'<,'>

    :se cpoptions-=*
    :*sort
    
于 2012-10-05T19:46:57.870 回答