也许我搜索的方式不对,但我还是找不到如何做到这一点。
场景如下:我在一个文本文件中有一个列表,我想在多行插入同一个单词,这是一个示例文本:
12.1 项目1 12.2 项目2 12.3 第3项
现在我用视觉块标记第 8 列,下面用下划线表示,并打算用 替换部分空白而不Done
移动项目列:
12.1 _ 项目1 12.2 _ 项目2 12.3 _ 项目3
我以为我可以进入替换模式,但我只能输入插入 ( I
)、附加 ( A
) 或更改模式 ( c
)。更改模式接近我想要的:如果我知道单词的长度,则可以将块设置为相同的宽度。
这里我遗漏了什么吗?
答案1
为什么不选择 4 列并点击c
?
<C-v>
2j
3l
cDone
<Esc>
另外,您还可以使用:h normal
:
V
2j
:'<,'>norm 7lRDone
<Esc>
答案2
如果要在视觉块内进行替换,可以使用vis.vim
插入。
http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block
安装:
从以下位置下载 vis.vba.gzhttp://www.drchip.org/astronaut/vim/index.html#VIS
# Open vis.vba.gz in Vim 7.1 or later.
vim vis.vba.gz
# Source the open file.
:so %
# Quit Vim
:q
安装后:
ctrl-v to enter visual-block mode
Move to select the block you want
:B s/pattern/newtext/
甚至更好的是,您可以在可视块上执行任何 Ex 命令,而不仅仅是替换。例如:B !sort
。