是否有任何键映射输出正在编辑的行的当前行号?或者,更好的是,我们可以根据键映射的输出来做公式吗?
我想获取行号并将1
添加到当前正在编辑的文本中。
答案 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)
:set ruler
。 (仅适用于vim
)Reference 它会在寡妇的右下角显示当前正在编辑的行和该行的列(光标所在的行)。
1,1 <position>
Top
。Bot
。All
要使其永久存在,请在set ruler
文件中添加~/.vimrc
(如果文件不存在,请创建一个)。
:set number
。 (在vi
和vim
中均可使用)Reference 在每行之前显示行号。
答案 5 :(得分:0)
与原始问题没有真正相关,但对我来说,要查看我更喜欢使用 :#
的行号,它也会打印出行号和内容