获取当前行号?

pac*_*acv 48 vi vim

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

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

Eri*_*ric 45

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

  • ctrl + G对我来说只显示总行数和/我所处理文件的百分比/ ...疯狂.vim 7.1 (12认同)

Wil*_*ell 37

"输出"是什么意思?你可以做:

:echo line(".") + 1
Run Code Online (Sandbox Code Playgroud)

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

:noremap <F1> :echo line(".") + 1<cr>
Run Code Online (Sandbox Code Playgroud)

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

:noremap <F1> :execute "normal! i" . ( line(".") + 1 )<cr>
Run Code Online (Sandbox Code Playgroud)

  • 你不能在这里使用`:map`.没有`nore` [根本不应该使用`*map`命令](http://learnvimscriptthehardway.stevelosh.com/chapters/05.html),但另外`:map`定义了比你想要的更多模式的映射看看:你不需要这些映射(它们在这里根本不起作用)和运算符挂起模式.同样使用`:normal`很奇怪,你在插入模式中有`<Cr>`这种东西:`nnoremap <F1> i <Cr> = line('.')+ 1 <CR> <Esc>` . (4认同)

pac*_*acv 6

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

你有<C-r>这种事情的插入模式:

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


Vig*_*aja 5

1. 使用:set ruler。(仅适用于vim参考

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

1,1 <position>

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

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

2. 使用:set number。(适用于vivim参考

在每行之前显示行号。