Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Vim中仅更换选定的视觉块而不是线路_Vim - Fatal编程技术网

如何在Vim中仅更换选定的视觉块而不是线路

如何在Vim中仅更换选定的视觉块而不是线路,vim,Vim,让我们假设我有文本 1 2 3 4 5 6 7 8 9 然后我从5到9选择一个可视块 |-------| Select visual block 1 2 3 4 5 6 7 8 9 运行replace命令:'在我看来,这种行为是vim中的一个bug。您可以这样处理它: :'<,'>s/\%V \%V/, /g :”只是为了澄清一件事::s命令是行方式的,这意味着它将在范围内的行上执行替换 顺便说一下,单引号后跟位置符号,如,您还应该注意,`不

让我们假设我有文本

1 2 3 4 5 6 7 8 9
然后我从5到9选择一个
可视块

        |-------| Select visual block          
1 2 3 4 5 6 7 8 9

运行replace命令
:'在我看来,这种行为是vim中的一个bug。您可以这样处理它:

:'<,'>s/\%V \%V/, /g

:”只是为了澄清一件事:
:s
命令是行方式的,这意味着它将在范围内的行上执行替换


顺便说一下,单引号后跟位置符号,如
,您还应该注意,
`不是一个bug,而是Ex命令范围的一个特性。Wray Zheng的回答解释了这一点。有没有办法重新定义“s”,使\%V始终是隐式的?它可能不会被认为是一个bug,但是“s”的定义应该改变,而不限于面向行的定义。当选择视觉块时,很少有人希望在每行的基础上进行搜索和替换。
1, 2, 3, 4, 5, 6, 7, 8, 9
:'<,'>s/\%V \%V/, /g