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
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.
not really related to original problem, but for me, to see a line number I prefer use :#
, it will print out the line number and content as well
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>
:set ruler
. (Works only in vim
) ReferenceIt 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>
Top
.Bot
.All
To make it permanent, add set ruler
in ~/.vimrc
file (if file is not there, create one).
:set number
. (Works in both vi
and vim
) ReferenceDisplays the line number before every line.
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.
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>