Getting the current row number?

萝らか妹 提交于 2020-11-30 03:43:13

问题


Is there any key mapping that outputs the current row number of the line being edited? Or, even better yet, can we do formulas based on the output of the key mapping?

I want to get the row number and add 1 to the current text being edited.


回答1:


Ctrl+G will tell you the line number and even the column the cursor is in. If you mean output it as text to your document, then not that I know of.




回答2:


What do you mean by "output"? You can do:

:echo line(".") + 1

To display the current line number plus 1. You can bind a keystroke with map, eg:

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

To actually insert the data into the buffer:

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



回答3:


The answer was given by @ZyX in a comment to another answer:

You have <C-r> in insert mode for this kind of things:

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




回答4:


1. Use :set ruler. (Works only in vim) Reference

It shows the current line and column of the line being edited (line where the cursor lies), at the bottom right corner of the widow.

1,1 <position>

  1. If first line is edited, position is Top.
  2. If last line is edited, position is Bot.
  3. If no scroll is available (both start and end lines are visible), position is All
  4. If no first and last lines are visible, position is the percentage of the document visible.

To make it permanent, add set ruler in ~/.vimrc file (if file is not there, create one).

2. Use :set number. (Works in both vi and vim) Reference

Displays the line number before every line.




回答5:


You can get the visual width of the current cursor position with virtcol('.'); insert that into the buffer through the expression register, e.g. in insert mode with <C-R>=virtcol('.')<CR>

Note that the width is different from the number of characters when the line contains double-width characters, <Tab> or unprintable characters.



来源:https://stackoverflow.com/questions/14993012/getting-the-current-row-number

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!