微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在vim的一行中搜索第n个匹配

我正在编辑一个wiki文件,我想在两列之间添加一个新列.

| *No* | *Issue* | *File* | *Status* | 
| 1 | blah | foo | open |
| 2 | blah1 | foo1 | close |

现在在第3和第4列之间我想插入另一列,如果我可以搜索第四列匹配“|”在给定行中的字符,我可以用“| |”替换它.如何用vim做到这一点?

最终结果将是这样的

| *No* | *Issue* | *File* | | *Status* | 
| 1 | blah | foo | | open |
| 2 | blah1 | foo1 | | close |

解决方法

如何通过在命令模式下输入qq3f | a |< ESC> q将宏记录到寄存器q中(ESC表示按Esc键).现在,您可以通过以下方式将此宏应用于每一行:%norm @ q.

额外奖金:

使用此模式,您可以添加更复杂的操作,例如将第一列复制为第3列(如果光标位于第一列):

qqf yf|;;;p0q

哦,你的问题的答案:搜索第4次出现|在一条线上由3f |完成(如果光标位于位置0并且在|字符中,如示例中所示).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐