是否有一个寄存器或变量保存当前所选范围的行号?
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 API接口的外部脚本github
和/或根据git信息打开浏览器到github页面。
答案 0 :(得分:8)
'<
和'>
。
所以:line("'<")
和line("'>")
应该是您所期望的
此外,
:'<,'>sort
对最后一个视觉选择进行排序
` &lt; 跳转到最后一个视觉选择的开头(另见:he v_o
)
最后,如果'cpoptions'
不 包含*
,您可以使用:*
作为:'<,'>
的同义词{1}}:
:se cpoptions-=*
:*sort