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

Vim多行编辑就像在sublimetext?

我开始使用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&gt ;. 其他人处理了录音宏,这里有一些其他的想法: 仅使用视觉块模式。
>将光标放在第二个词上:
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>

原文地址:https://www.jb51.cc/vim/391793.html

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

相关推荐