我开始使用gvim,我不能理解多行编辑在gvim中如何工作。
例如:
原文:
asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd;
ctrl q,jjjjjj,$
一切都被选中,然后我按I做一个多行插入。
我的意图是插入引号,如第一行,然后按Esc键:
asd "asd asd" asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd;
发生了什么?我预计一个类似于sublimetext的行为:
如果你不知道如何工作,它只是重复每一行的行动。如何实现呢? vim在这里做什么?
通过删除Windows兼容层来帮助自己。用于进入可视块模式的正常快捷方式是< C-v> ;. 其他人处理了录音宏,这里有一些其他的想法: 仅使用视觉块模式。
>将光标放在第二个词上:
>将光标放在第二个词上:
asd |a|sd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd;
gt;命中< C-v>进入视觉块模式并向下扩展您的选择:
asd [a]sd asd asd asd; asd [a]sd asd asd asd; asd [a]sd asd asd asd; asd [a]sd asd asd asd; asd [a]sd asd asd asd; asd [a]sd asd asd asd; asd [a]sd asd asd asd;
> Hit I“< Esc>以获得:
asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd;
>将光标放在第三个字的最后一个字符上:
asd "asd as|d| asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd; asd "asd asd asd asd;
gt;命中< C-v>进入视觉块模式并向下扩展您的选择:
asd "asd as[d] asd asd; asd "asd as[d] asd asd; asd "asd as[d] asd asd; asd "asd as[d] asd asd; asd "asd as[d] asd asd; asd "asd as[d] asd asd; asd "asd as[d] asd asd;
>命中A“< Esc>以获得:
asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd;
与视觉块模式和Surround.vim。
>将光标放在第二个词上:
asd |a|sd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd; asd asd asd asd asd;
gt;命中< C-v>进入视觉块模式并向右下扩展您的选择:
asd [asd asd] asd asd; asd [asd asd] asd asd; asd [asd asd] asd asd; asd [asd asd] asd asd; asd [asd asd] asd asd; asd [asd asd] asd asd; asd [asd asd] asd asd;
>点击s“获取:
asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd;
与视线模式和:正常。
>点击V选择整条线并向底部扩展:
[asd asd asd asd asd;] [asd asd asd asd asd;] [asd asd asd asd asd;] [asd asd asd asd asd;] [asd asd asd asd asd;] [asd asd asd asd asd;] [asd asd asd asd asd;]
>执行此命令::’<,'> norm ^ wi“< C-v>< Esc> eea”< CR>获得:
asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd; asd "asd asd" asd asd;
>:norm [al]允许在一系列线上执行正常模式命令(‘<,'>部分由Vim自动添加,表示“对选定区域执行操作”)
> ^将光标放在行的第一个字符上
> w移动到下一个字
> i“在光标之前插入一个”
>< C-v>< Esc>是Vim在此上下文中输入控制字符的方式,这里是< Esc>用于退出插入模式
> ee移动到下一个字的结尾
> a“附加一个”光标之后
>< CR>执行命令
使用Surround.vim,上面的命令变成了
:'<,'>norm ^wvees"<CR>