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,假设我有下面的文本 Foo Bar Foo Foo Bar Bar Bar Foo Bar Foo Foo Bar Bar Bar Foo Bar Foo Foo Bar Bar Bar Foo Bar Foo Foo Bar Bar Bar Foo Bar Foo Foo Bar Bar Bar Foo Bar Foo Foo Bar Bar Bar 如果我想替换每行的前n个字符,我通常会执行以下三个步骤 使用视觉块模式选择并删除每行的前n个字符 使用视觉块模式选择每行的第一个字符 键入I,

假设我有下面的文本

Foo Bar Foo Foo Bar Bar Bar
Foo Bar Foo Foo Bar Bar Bar
Foo Bar Foo Foo Bar Bar Bar
Foo Bar Foo Foo Bar Bar Bar
Foo Bar Foo Foo Bar Bar Bar
Foo Bar Foo Foo Bar Bar Bar
如果我想替换每行的前n个字符,我通常会执行以下三个步骤

  • 使用视觉块模式选择并删除每行的前n个字符
  • 使用视觉块模式选择每行的第一个字符
  • 键入
    I
    ,然后键入替换文本
  • 但是,当我们在一行文本上操作时,有一个更快的选择,那就是使用
    REPLACE
    模式,我们可以在正常模式下点击
    R
    ,然后简单地在文本上键入

    是否有在多条线路上运行的等效
    替换
    模式?


    我能找到的最接近的方法是用视觉块选择整个字符网格,然后点击小写字母
    r
    ,然后键入单个字符。但是,这仅在替换文本都是相同字符时有效,并且需要事先知道要替换的字符数

    使用
    c
    对文本块进行更改

    请参阅:

    :h v_b_c
    
    (据我所知)没有。但您可以通过
    gv
    加速重新选择;块的左边框是相同的,对于
    I
    ,无论选择了多少文本:

    <C-V>...xgvI
    
    …xgvI
    
    它也适用于
    s
    (它在正常模式下的行为更类似于
    s
    ,而不是在正常模式下的
    c
    ,因此我发现这更容易记住)。