Vim 如何在g/pattern/move中插入原始行号
vim:将原始行号插入Vim 如何在g/pattern/move中插入原始行号,vim,Vim,vim:将原始行号插入g/模式/移动$ 我正在调试日志中的一些事件顺序,并希望通过显示日志的行号检查两组事件序列。通常,我使用g/pattern/move$来获取一些有趣的信息。但是我找不到一种方法来插入它们的原始行号。请帮忙 我试过: g/模式/移动$;printf(“%d”,行(“.”) 但它不起作用。方法稍有不同,但我的\u vimrc nnoremap <F3> :redir! @f<cr>:silent g//<cr>:redir! END<c
g/模式/移动$
我正在调试日志中的一些事件顺序,并希望通过显示日志的行号检查两组事件序列。通常,我使用g/pattern/move$来获取一些有趣的信息。但是我找不到一种方法来插入它们的原始行号。请帮忙
我试过:
g/模式/移动$;printf(“%d”,行(“.”)
但它不起作用。方法稍有不同,但我的
\u vimrc
nnoremap <F3> :redir! @f<cr>:silent g//<cr>:redir! END<cr>:enew!<cr>:put! f<cr>:let @f=@/<cr>:g/^$/d<cr>:let @/=@f<cr>gg
nnoremap:redir@f:无声g/:重播!完:enew!放!f:let@f=@/:g/^$/d:let@/=@fgg
它会打开一个包含所有搜索匹配项的新缓冲区,包括匹配发生的行号。不禁想到一些非常简单的事情,例如:
g/pattern/call append(line('$'), line('.') . ' ' . getline('.'))
我想出了一种方法,首先在具有图案的行上插入行号,然后将相同的行移动到文件的末尾:
:%s,\v^\ze.*pattern,\=line('.') . ' ' ,g | g/pattern/m$
我们有两个命令:
:%s,\v^\ze.*pattern,\=line('.') . ' ' ,g
, ....................... we are using comma as delimiter
\v ...................... very magic substitution
^ ....................... Regular expression for beginning of line
\ze ..................... indicates that all after it will not be substituted
\=line('.') ............. gets the line number
. ' ' .................. concatenates one space after the number
第二个命令用|
g/pattern/m$
m$ ....................... moves the pattern to the end of file