VIM列编辑

类似UltraEdit中列编辑(Alt+C),称为列模式。


VIM 中列模式使用

1. 进入列模式: Linux 下vim Ctrl+V, window下面Gvim Ctrl+Q (Ctrl+V映射了粘帖)。

2. 选择区域块: 移动操作可以用于选择。

3. 列操作: 删除 d(x等删除操作), 替换c, 插入 Shift+i (I)。

4. 操作作用列:按两次ESE


示例

将数列:

10.1.5.214

10.1.5.212

10.1.5.210

编辑成序列:
ping -c 4 10.5.5.212 >> result0
ping -c 4 10.5.5.210 >> result0
ping -c 4 10.5.5.214 >> result0
第一步:中间列修改IP地址第二段“1” 为“5”:

将游标定位第一个行 IP 地址第二段的“1”

Ctrl-v 进入纵向编辑模式

G 移动游标到最后一行,使可视块覆盖所要修改的列(可能需要右移动,G移动会向左覆盖到第一列)

r 进入修改模式

5 输入数字“5”

ESC 退出纵向编辑模式,同时所有被选中的数字都被改成了“5”,并回到命令模式


结果如下:

10.5.5.214
10.5.5.212
10.5.5.210
第二步首行插入"ping -c 4"

将游标定位到第一行第一列

Ctrl-v 进入纵向编辑模式

G 移动游标到最后一行第一列,可视块覆盖了第一列

I 进入行首插入模式

ping -c 4 输入所要求字符“ping – c 4 ”

ESC 退出纵向编辑模式的同时所有选中的字符前都添加了“ping – c 4 ”,回到命令模式


结果如下:

ping -c 4 10.5.5.214
ping -c 4 10.5.5.212
ping -c 4 10.5.5.210
第三步 : 尾追加 “>> result0"

将游标定位到第一行最后一列

Ctrl-v 进入纵向编辑模式

G 移动游标到最后一行最后一列,可视块覆盖了最后一列($-->G-->$)

A 进入行尾插入模式

>> result 输入所要求字符“>> result0”

ESC 退出纵向编辑模式的同时所有选中的字符后都添加了“ >> result0”,回到命令模式


结果如下:

ping -c 4 10.5.5.214 >> result0
ping -c 4 10.5.5.212 >> result0
ping -c 4 10.5.5.210 >> result0


以上三个步骤有一个共同特点,就是都纵向为编辑方向。以上由三行代码为例的方法同样也可以适用于更多的行。


参考文献:

http://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/


### Vim列编模式的使用方法 Vim列编模式是一种强大的功能,允许用户在同一列上批量修改多个行的内容。以下是关于如何在 Vim 中启用并高效利用列编模式的具体说明: #### 启动列编模式 进入列编模式的方法是按下快捷键 `Ctrl` + `v`(在 macOS 下对应为 `⌘ Command` 键替换为 `⌃ Control` 键)。这会切换到 **可视块模式** (Visual Block Mode),从而让用户能够选择矩形区域内的文本。 #### 基本操作 1. 移动光标以选中目标区域: 在进入可视块模式后,可以像平常一样移动光标来定义一个矩形的选择范围[^1]。 2. 插入或追加文本: 当选择了特定的列之后,按 `I` 可以在每行选定位置之前插入相同的文本;而按 `A` 则会在每行选定位置之后追加相同文本[^2]。 3. 删除/更改所选列: 如果希望删除或者替换成其他字符,则可以在完成选择后执行 `d` 或者 `c` 操作符分别实现删除与改变的功能[^2]。 4. 复制粘贴整列数据: 用户还可以复制已标记好的区块并通过 `"*p` 将其粘贴至新地方(这里假设已经设置了系统剪贴板支持). #### 实际案例演示 下面给出一段简单的 Python 脚本来展示如何应用这些技巧: ```python def function_one(): pass def function_two(): pass def function_three(): pass ``` 假如我们需要给这三个函数都加上装饰器 @timer ,那么就可以按照如下步骤来进行处理: - 首先定位到第一个 def 关键词处; - 接着按下 Ctrl+v 开启视觉方块选取状态; - 上下方向键延伸高亮直到覆盖所有待修饰的目标行首部为止; - 输入大写字母 I 来准备前置内容录入动作; - 敲击键盘打出 "@timer\n" 完成添加工作。 最终得到的结果应该是这样的样子: ```python @timer def function_one(): pass @timer def function_two(): pass @timer def function_three(): pass ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值