Vim技巧之四大模式_普通模式
2017-07-01 14:29
253 查看
Vim技巧之四大模式_普通模式
一见不钟情的普通模式
普通模式以下的强悍操作
什么是操作符
什么是动作命令
误操作怎么办
那种操作更划算
普通模式下的神奇大招
既然说是
普通模式
插入模式
可视模式
命令行模式
用户能够通过按
怎么在这个框框里面输入文本啊?
天啦噜,怎么退出这个黑框框???。!
(博主一開始都是kill -9关掉的。哭死)
假设你须要在这个黑框框里面输入一些什么东西的话,你能够在屏幕上按以下随意一个健。
那要是退出插入模式回到之间的普通模式呢?直接按
这时候你可能就会问了。不是有一个插入模式就能够了么?为啥还要加一个普通模式呢?你看其它编辑器都没有这么多的模式。。。这就是Vim的精化所在,对于其它编辑器来说,假设要实现一个比較复杂的操作,基本上都是通过
比方须要删除当前光标所在行,对于没有模式的编辑器是这样发动这个技能的
假设是
个人还是比較喜欢
操作符+动作命令=操作
那动作命令有那些呢?事实上动作命令比較灵活,这里我总结为有两类:
一类是文本对象,比方aw , ap
一类是位置范围, 比方l ,j,k,f{char},$,^,0…
文本对象类型的动作命令
假设如今有这样一行文本
I am a Vimer
我们须要删除
最后得到:
I am a
位置范围类型的动作命令
那什么是位置范围呢?就是从当前光标開始,经过一次移动命令以后新的光标位置之间的文本。比方
假设如今有这样一行文本
I am a Vimer
我们要将
最后得到:
I AM A VIMer
注意一点:
当一个操作符当被连续两次调用的时候。相应的作用范围就是当前行,比方
以下我们来看一个栗子:
输入一行文本
I am a Vimer
发现将Vimer误输为Vier,于是返回到普通模式,点击
那该怎么办?怎么控制
所以我们还是能够控制
举个栗子:
如今须要删除以下文本的最后一个单词
I am a Vimer
操作一:
$
db(向前删除单词)
x(删除x)
操作二:
$
b(最后一个单词的词首)
dw(删除单词)
操作三:
$
daw
上面三个操作都是用同样的按键数。这一步上大家打成平手,要是我们还要把剩下的两个单词都删除呢?前两个操作明显还须要从头反复一次。可是第三个操作我们仅仅须要用
举个栗子:
现有一段文本:
I am 23 years old
如今须要将
未免太繁琐了
如今我们仅仅须要
要是如今需将
仅仅须要
同理可得
一见不钟情的普通模式
普通模式以下的强悍操作
什么是操作符
什么是动作命令
误操作怎么办
那种操作更划算
普通模式下的神奇大招
Vim技巧之四大模式_普通模式
众所周知,vim里面最具特色的东西就是它能够切换模式,那什么是模式呢?能够简单的理解为在不同的模式以下按同样的键而得到不同的效果。比方
Vim在插入模式以下连按两次
d,那么就会在光标位置插入两个字母
d,假设在普通模式以下连按两次
d。那么光标所在当前行将会被删除。
既然说是
Vim的四大模式,那么
Vim究竟有那四大模式呢?
普通模式
插入模式
可视模式
命令行模式
用户能够通过按
<ESC>来在各个模式之间进行切换,以下我们将具体的介绍普通模式,其它模式我们将在兴许的文章中进行具体介绍
一见不钟情的普通模式
像Emacs,
Sublime Text这些主流的编辑器在打开以后直接就能够向里面输入自己的想要的内容。可是对于第一次使用
Vim的新手来说,并不和自己想象中的一样,倒腾了一会儿就会開始抓狂:
怎么在这个框框里面输入文本啊?
天啦噜,怎么退出这个黑框框???。!
(博主一開始都是kill -9关掉的。哭死)
Vim在开启的时候默认是使用普通模式的,例如以下图所看到的
假设你须要在这个黑框框里面输入一些什么东西的话,你能够在屏幕上按以下随意一个健。
Vim就会进入插入模式。接着就能够输入文本了
按键 | 功能 |
---|---|
a | 在光标后面进行插入 |
A | 在当前光标所在行末尾插入 |
i | 从光标所在出插入 |
I | 在当前光标所在行首插入 |
o | 在当前行以下新建一行,并进行插入 |
O | 在当前行上面新建一行。并进行插入 |
<ESC>就能够啦
这时候你可能就会问了。不是有一个插入模式就能够了么?为啥还要加一个普通模式呢?你看其它编辑器都没有这么多的模式。。。这就是Vim的精化所在,对于其它编辑器来说,假设要实现一个比較复杂的操作,基本上都是通过
<Ctrl>,
<Alt>,
<Shilt>组合来完毕的,可是
Vim偏不这样,
Vim是通过在不同模式之间的切换来实现复杂的操作。简单来说。普通模式就是用来发动技能的。而插入模式则是进行简单的文本操作
比方须要删除当前光标所在行,对于没有模式的编辑器是这样发动这个技能的
<CTRL-K>(Emacs)
<CTRL-L><Backspace>(Sublime Text)
假设是
Vim,那么首先进入普通模式,然后发动删除行的技能
<ESC>(进入到普通模式)。
dd(删除当前行)
个人还是比較喜欢
Vim一点。简洁明了。之前也试过
Ctrl到死的
Emacs,组合按键真是多。对与手小的人来说简直就是一种折磨!
普通模式以下的强悍操作
普通模式以下的操作能够解释为以下这个公式:操作符+动作命令=操作
什么是操作符?
操作符就是你打算接下来要干什么?比方上文中提到的d,就是删除操作符,除了删了操作符。还有以下这些操作符:
操作符 | 用途 |
---|---|
c | 改动 |
d | 删除 |
y | 复制 |
g~ | 大写和小写反转 |
gu | 转为小写 |
gU | 转为大写 |
> | 向右缩进 |
< | 向佐缩进 |
= | 自己主动缩进 |
什么是动作命令?
操作符是用来指定一个操作,这个操作也不能瞎操作吧?我要删除一行文本,不能把整个文件的所有内容都给删了吧。。。所以,简单来说。动作命令就是用来指定操作符作用的范围那动作命令有那些呢?事实上动作命令比較灵活,这里我总结为有两类:
一类是文本对象,比方aw , ap
一类是位置范围, 比方l ,j,k,f{char},$,^,0…
文本对象类型的动作命令
文本对象 | 操作范围 |
---|---|
aw | 光标所在单词加上一个空格 |
iw | 光标所在单词 |
ap | 光标所在段落 |
i< | <>里面的文本 |
i{ | {}里面的文本 |
i” | ""里面的文本 |
I am a Vimer
我们须要删除
Vimer这个单词
$(移动到行尾)
daw(删除光标所在单词以及一个空格)
最后得到:
I am a
位置范围类型的动作命令
那什么是位置范围呢?就是从当前光标開始,经过一次移动命令以后新的光标位置之间的文本。比方
3j,
10<Space>,
3l,
f{char}等等等等。仅仅要能够移动光标的命令都能够
假设如今有这样一行文本
I am a Vimer
我们要将
Vimer这个单词字幕
e之间的文本所有转为大写
0(移动到行首)
gUte(操作符(gU)+(新的光标位置te))
最后得到:
I AM A VIMer
注意一点:
当一个操作符当被连续两次调用的时候。相应的作用范围就是当前行,比方
dd就是删除当前行,
yy就是复制当前行,
gUgU就是将当前行转为大写
误操作怎么办?
我们能够切换到普通模式。然后u,就能够撤消之前进行的误操作,比方用
dd误删了一行文本。我们直接输入
u就能够撤消之前的删除操作
以下我们来看一个栗子:
输入一行文本
I am a Vimer
发现将Vimer误输为Vier,于是返回到普通模式,点击
u希望撤消这个错误的单词输入,可是惊奇的发现之前输入的
I am a文本也不见了,
Vim撤消的太多了。!
那该怎么办?怎么控制
Vim撤消的粒度呢?
u键会触发撤消命令,它会撤消最新的改动。一次改动能够是改变文档内文本的随意操作,当中包含了在普通模式,可视模式。以及命令行模式中所触发的命令,并且一次改动也包含了在一次插入模式中输入或者删除的文本,也就是说
i{insert some stuff}<ESC>算是一次改动
所以我们还是能够控制
u撤消的粒度的。在插入模式中。每一次
<ESC>就算是一次粒度的控制
那种操作更划算?
什么叫做划算?那就是用最少的按键操作完毕很多其它的文本操作举个栗子:
如今须要删除以下文本的最后一个单词
I am a Vimer
操作一:
$
db(向前删除单词)
x(删除x)
操作二:
$
b(最后一个单词的词首)
dw(删除单词)
操作三:
$
daw
上面三个操作都是用同样的按键数。这一步上大家打成平手,要是我们还要把剩下的两个单词都删除呢?前两个操作明显还须要从头反复一次。可是第三个操作我们仅仅须要用
.操作就能够反复改动命令,所以操作三明显更划算!所以划算的更宽广的定义不仅是当前操作,还有将来的操作也要计算进来
普通模式下的神奇大招
这个神奇大招事实上就是<C-a>:对数字进行加操作
<C-x>:对数字进行减操作
<C-a>命令会把当前光标之上或者之上的数加1,假设须要加多次,能够
[count]<C-a>,这样就会使数值加上
count
举个栗子:
现有一段文本:
I am 23 years old
如今须要将
23改为
24,假设如今你不知道这个技巧,那就仅仅有
f3(移动到
3)
r4(将
3改为
4)
未免太繁琐了
如今我们仅仅须要
<Ctrl-a>(光标立刻跳转到
23上,并将数值加
1,变为
24)
要是如今需将
23改为
1023(千年老妖了)
仅仅须要
1000<Ctrl-a>
同理可得
<C-x>
相关文章推荐
- Vim技巧之四大模式_普通模式
- Vim技巧之四大模式_普通模式
- Vim技巧之四大模式_普通模式
- Vim使用技巧(1) -- 普通模式技巧 【持续更新】
- Vim技巧之四大模式_插入模式
- Vim技巧之四大模式_可视模式
- Vim技巧之四大模式_插入模式
- Vim技巧之四大模式_可视模式
- Vim技巧之四大模式_插入模式
- Vim技巧之四大模式_插入模式
- Vim (三) 普通模式
- [转]技巧:Vim 的纵向编辑模式
- vim插入模式下的技巧
- 第二章 Vim的普通模式
- vim的使用技巧--模式入门
- 技巧:Vim 的纵向编辑模式
- Vim使用技巧(2) -- 插入模式技巧 【持续更新】
- Vim使用技巧(3) -- 可视化模式技巧 【持续更新】
- vim 基础学习之普通模式
- 技巧:Vim 的纵向编辑模式