获取当前行号?

时间:2013-02-21 01:19:56

标签: vi vim

是否有任何键映射输出正在编辑的行的当前行号?或者,更好的是,我们可以根据键映射的输出来做公式吗?

我想获取行号并将1添加到当前正在编辑的文本中。

6 个答案:

答案 0 :(得分:43)

Ctrl + G 会告诉您行号,甚至是光标所在的列。如果您的意思是将其作为文本输出到您的文档,那么不是我知道。

答案 1 :(得分:36)

“输出”是什么意思?你可以这样做:

:echo line(".") + 1

显示当前行号加1.您可以将键击与map绑定,例如:

:noremap <F1> :echo line(".") + 1<cr>

要将数据实际插入缓冲区:

:noremap <F1> :execute "normal! i" . ( line(".") + 1 )<cr>

答案 2 :(得分:4)

@ZyX在给另一个答案的评论中给出了答案:

  

您在插入模式中有<C-r>这种事情:

     

nnoremap <F1> i<C-r>=line('.')+1<CR><Esc>

答案 3 :(得分:1)

您可以使用virtcol('.')获取当前光标位置的可视宽度;通过表达式寄存器将其插​​入缓冲区,例如在<C-R>=virtcol('.')<CR>

的插入模式下

请注意,当行包含双倍宽度字符<Tab>或不可打印的字符时,宽度与字符数不同。

答案 4 :(得分:0)

1。使用:set ruler。 (仅适用于vimReference

它会在寡妇的右下角显示当前正在编辑的行和该行的列(光标所在的行)。

1,1 <position>

  1. 如果编辑了第一行,则位置为Top
  2. 如果编辑了最后一行,则位置为Bot
  3. 如果没有可用的滚动条(起始行和结束行均可见),则位置为All
  4. 如果没有第一行和最后一行可见,则位置是可见文档的百分比。

要使其永久存在,请在set ruler文件中添加~/.vimrc(如果文件不存在,请创建一个)。

2。使用:set number。 (在vivim中均可使用)Reference

在每行之前显示行号。

答案 5 :(得分:0)

与原始问题没有真正相关,但对我来说,要查看我更喜欢使用 :# 的行号,它也会打印出行号和内容