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,如何在Vim中选择一个超出行末尾的矩形文本块 假设我有 aa bbb cc dddd ee 我想选择一个矩形块,在所有行上扩展四个字符。如果\u被视为空白,则我需要: aa__ bbb_ cc__ dddd ee__ 矩形可视块,C-v,仅延伸至选定的最后一行的末端: 在Emacs中,我可以使用C-x(矩形标记模式);)做我想做的事情 具有不规则边框的分块视觉模式 要将分块视觉选择扩展到所有覆盖行的末尾,可以按$将Vim切换到“不规则边框”选择模式。这一“把戏”在以下网站中提到: 通过按块

如何在Vim中选择一个超出行末尾的矩形文本块

假设我有

aa
bbb
cc
dddd
ee
我想选择一个矩形块,在所有行上扩展四个字符。如果
\u
被视为空白,则我需要:

aa__
bbb_
cc__
dddd
ee__
矩形可视块,
C-v
,仅延伸至选定的最后一行的末端:

在Emacs中,我可以使用
C-x
矩形标记模式
);)做我想做的事情

具有不规则边框的分块视觉模式 要将分块视觉选择扩展到所有覆盖行的末尾,可以按
$
将Vim切换到“不规则边框”选择模式。这一“把戏”在以下网站中提到:

通过按块选择,{string}将{string}附加到 块的每一行上都有块。有一些不同的行为 由于不同的线路长度,块RHS不是直的:

  • 块是使用创建的$ 在这种情况下,字符串将追加到每行的末尾
  • 块是用{move around}创建的 在这种情况下,字符串被追加到每行块的末尾,空白被插入到块的末尾列
  • 虚拟编辑 解决此问题的另一种方法是通过以下选项:

    这使得光标移动可以访问行结束后的空间,因此可以根据需要扩展选择。拖动该文本将插入空白填充以形成矩形块,因此其行为与上述替代方式不同。

    使用替换

    :%s,^..$,&__,g | %s,^...$,&_,g
    
    : ............ command
    % ............ whole file
    ^ ............ begining of line
    .. ........... two characters
    $ ............ end of line
    & ............ the whole search pattern
    __ ........... (plus) the chars we want
    g ............ globally
    | ............ another command (this time for 3 chars)
    

    选择块后,可以按
    $
    ,将选择范围扩展到所有行的末尾。这就足够了吗?@phd的可能副本虽然该问题的答案也是这个问题的有效答案,但我仍然不会投票赞成副本,因为该问题有不同的用例,并且至少有一个有效的解决方案(见Matthew的评论)这不是另一个问题的有效答案虚拟编辑绝对是我要找的!不过,我不清楚带有不规则边框的分块视觉模式是如何实现同样的效果的。这似乎是在参差不齐的行的末尾添加文本,而不是用空格填充矩形选择。我遗漏了什么吗?@LoremIpsum这就是为什么国际非政府组织正确地指出行为是不同的。如果没有
    virtualedit=all
    ,您将不会收到矩形。但是对于编码用例,您通常不希望插入无用的空格。如果您想对齐代码,有更好的方法(例如)
    :%s,^..$,&__,g | %s,^...$,&_,g
    
    : ............ command
    % ............ whole file
    ^ ............ begining of line
    .. ........... two characters
    $ ............ end of line
    & ............ the whole search pattern
    __ ........... (plus) the chars we want
    g ............ globally
    | ............ another command (this time for 3 chars)