Vim 可视模式搜索和替换

Vim 可视模式搜索和替换

当您在视觉行选定的文本上运行搜索和替换时,它会显示此内容:'<,'>s/foo/bar

是否可以让它显示行号而不是<>?

答案1

您可以创建一个映射来执行此操作

xnoremap : :<c-u><c-r>=line("'<")<cr>,<c-r>=line("'>")<cr>

当您:在可视模式下点击时,它将删除'<,'>通常用 放置的。然后它将插入用逗号分隔的和标记的<c-u>行号。它使用'<'>

<c-r>=line("'<")<cr>

where<c-r>=打开表达式寄存器,允许您输入任意表达式并插入结果。


我不建议使用这个,因为它使得在新的区域重复可视选择命令几乎不可能,因为历史记录现在将有行号而不是标记。行号在调用之间不能改变,但标记可以。

答案2

我的CmdlineSpecialEdits 插件具有(以及许多其他)CTRL-G '映射,可将符号范围更改为'<,'>实际行号(例如3,42),反之亦然。它还可以纠正越界寻址(<= 0 且大于最后一个行号)和向后范围。

相关内容