vim,在特定线路插入线路编号

vim,在特定线路插入线路编号,vim,Vim,我正在测试一些fortran代码,在不同的地方包括打印语句。我还希望在print语句中包含行号,如: ... write(*,*)'[current line #] I am here' ..... ..... write(*,*)'[current line #] I am here too' 目前,我正在通过查看状态栏手动插入行号。有相同的宏吗?您可以在宏中包含行('.'),它返回光标行号。简单的表达式映射可以: :inoremap <expr> <F11> lin

我正在测试一些fortran代码,在不同的地方包括打印语句。我还希望在print语句中包含行号,如:

...
write(*,*)'[current line #] I am here'
.....
.....
write(*,*)'[current line #] I am here too'

目前,我正在通过查看状态栏手动插入行号。有相同的宏吗?

您可以在宏中包含
行('.')
,它返回光标行号。

简单的表达式映射可以:

:inoremap <expr> <F11> line('.')
在插入模式下,您可以执行以下操作:

<C-r>=line('.')<CR>

请参阅
:help line()
以及更一般的
:help functions

请查看链接 我需要这个。
谢谢你的回答。

自我提示:调查
映射。我认为这在很大程度上等同于执行
inoremap=line('.')
?对于一个简单的映射(如这里),你是对的。对于复杂的表达式,计算表达式的时间会有所不同。我甚至不得不偶尔将这两种方法结合起来以获得正确的评估顺序。你是说将其粘贴到vimrc中?你能详细说明一下吗!不,我的意思是将其包含在您使用的任何宏/缩写中,正如Ingo和Romaill提供的新答案中所述。
<C-r>=line('.')<CR>
nnoremap <F9> :execute ":normal 0iline number: " . line('.') . " hello world"<CR>
line number: 39 hello world