总结
- 基础操作
yy
:复制整行内容p
:光标之后进行粘贴P
:光标之前进行粘贴dd
:删除整行内容D
:删除当前字符至行尾cc
:删除整行内容并进入insert mode
C
:删除当前字符至行尾并进入insert mode
>>
:向右缩进<<
:向左缩进
- 操作加移动
dl
:删除右侧字符(当前字符)dh
:删除左侧字符d$
:删除至行尾dG
:删除至末尾3dl
:删除右侧三个字符d3l
:删除右侧三个字符,与上同
- 操作加文本匹配
aw
: a word 包含空格iw
: inner word 不含空格aW
: a WORDiW
: inner WORDd/c/yi<cin>
: 根据输入关键词,删除/更改/复制关键词匹配项内的内容,例如()<>''
内容d/c/ya<cin>
: 根据输入关键词,删除/更改/复制关键词匹配项内的内容,包括关键词. 例如()<>''
d/c/yit
: 删除/更改/复制标签内的内容,例如:<div>aaa</div>
=> 输入dit
=><div></div>
d/c/yat
: 删除/更改/复制标签内的内容,例如:<div>aaa</div>
=> 输入dat
=> ``d/c/yat
: 删除/更改/复制标签内的内容,例如:<div>aaa</div>
=> 输入dat
=> ``
- 更多扩展
u
:撤销<ctrl-r>
:重做/{word}<cr>
:高亮搜索词。如果不需要高亮时,可使用:noh[lsearch]
取消高亮n
:下一个搜索N
:上一个搜索
提问
- [x] 如何删除当前行并进入插入模式
cc
1. 前提提要、场景
复制粘贴、删除是十分频繁的操作,在 vim
中是如何使用的
Tip:在 vim 中可使用 :help operator 查看 operator 详细文档,使用 :help d 可查看 delete 的详细文档。
2. yank (copy) 复制
yy
:复制整行内容p
:光标之后进行粘贴P
:光标之前进行粘贴
3. delete 删除
dd
:删除整行内容D
:删除当前字符至行尾
4. change 修改
cc
:删除整行内容并进入insert mode
C
:删除当前字符至行尾并进入insert mode
5. shift 缩进
>>
:向右缩进<<
:向左缩进
6. operater + move 操作符+移动
以上三种操作,都可以与 move 键结合。比如 d 是删除,则
dl
:删除右侧字符(当前字符)dh
:删除左侧字符d$
:删除至行尾dG
:删除至末尾3dl
:删除右侧三个字符d3l
:删除右侧三个字符,与上同
7. text object 操作符+文本匹配
除此之外,结合 a/i
还可以更好地在括号、引号内工作。以下统称为 text object
。
aw
: a word 包含空格iw
: inner word 不含空格aW
: a WORDiW
: inner WORDa[
:a [] blocka(
a<
a{
a"
a'
具体效果如下
d/c/yi<cin>
: 根据输入关键词,删除/更改/复制关键词匹配项内的内容,例如()<>''
内容d/c/ya<cin>
: 根据输入关键词,删除/更改/复制关键词匹配项内的内容,包括关键词. 例如()<>''
d/c/yit
: 删除/更改/复制标签内的内容,例如:<div>aaa</div>
=> 输入dit
=><div></div>
d/c/yat
: 删除/更改/复制标签内的内容,例如:<div>aaa</div>
=> 输入dat
=> ``d/c/yat
: 删除/更改/复制标签内的内容,例如:<div>aaa</div>
=> 输入dat
=> ``
8. undo/redo/search
以下严格来说不算 vim
中的操作符(operator),但是篇幅太短放在这里。
u
:撤销<ctrl-r>
:重做/{word}<cr>
:高亮搜索词。如果不需要高亮时,可使用:noh[lsearch]
取消高亮n
:下一个搜索N
:上一个搜索