当按行编辑时,Vim 非常强大——搜索/替换工具是按行建模的。
但是,如果我想在所有行中更改特定的列,该怎么办呢?例如,如何能够轻松地将文件中的第80列更改为 #?
#
你可以使用 替代,其中 模式匹配特定的列(\%c) :
\%c
:%s/\%80c/#/<CR>
或者你可以使用 块状图像模式:
g80|CTRL + vGr#
可以使用“ virtualedit”选项将光标定位为 没有实际性质的职位:
virtualedit
:set virtualedit
要编辑专栏,请遵循以下步骤:
我认为人们(我)有时映射列编辑键到 Ctrl + Q,所以它不会与可视化选择行(V)或粘贴文本冲突,如果你这样映射它。
这里我可能完全跑题了,但是如果您的想法是避免长队,您可以看一下 vim 7.3的 颜色栏选项。
对于列式编辑,VIS.VIM非常有用。您可以阻塞-选择您感兴趣的列,并使用普通命令操作它,甚至任意 Ex 命令。从这一页的例子来看,我经常使用这种模式:
:'<,'>B s/abc/ABC/g
您可以从 Github安装 Vundle/Pathogen.vim:
插入“ taku-o/vim-vis”
... ... 我不能按照 sa125(面部手掌)的步骤,所以我找了别的地方,找到了一个更简单的解释: https://blog.pivotal.io/labs/labs/column-edit-mode-in-vi
* 不带 Shift的 c可以用来代替步骤2,在插入之前删除选定内容。也可以用 r代替。
* * ! 注意! 不要因为只有第一行被改变而气馁,当你“写任何东西... ...”! !
希望能有帮助!