编辑动词operators :

  • x 删除当前字符(或者选择的字符)

  • X 删除前面的字符

  • r 用另一个字符替换字符

  • s 替换当前字符(或者选择的字符)并进入插入模式

  • S 替换整行

  • i 进入插入模式并将cursor置于当前位置前面

  • a 进入插入模式并将cursor置于当前位置后面

  • f 查找到下一个特定字符

  • t 查找直到下一个特定字符前

  • y copy

  • d 删除

  • c 替换

  • v 选择

  • dd 删除整行

  • D 删除到行尾(同d$)

  • yy copy整行

  • p 在当前cursor后粘贴

  • P 在当前cursor前粘贴

  • o 在当前行下插入新行并进入插入模式

  • O 在当前行上插入新行并进入插入模式

  • u 取消最后编辑动作

  • . 重复最后的插入编辑改变命令

  • ~ 转换字符的大小写

  • gu 转换为小写

  • gU 转换为大小

动作名词的修饰符号

  • i inner inside
  • a a(around)
  • NUM 数字(1,2,…10..)
  • t 查找某物在其前面停止(search until)
  • f 查找(find)
  • / 查找字符串(文字或正则表达式)

动作的接受者,名词:

  • w,W 词(大写的W忽略词中间的标点符号,小写的认为标点也是一个词)
  • b,B 前面词的开始
  • e,E 词尾
  • s sentence句子
  • p paragraph段落
  • t tag(html/xml的标签)
  • b block(编程的代码块{} [] () )
  • h,j,k,l 前下上后移动
  • $ 行尾
  • ^,0 行首

动作句子

1
2
[count] {operator} {[count] motion|text object}
 数量     操作符      数量    移动|对象

例子:

  • 3e 移动到第三个单词词尾

  • 3w 移动到第四个单词词头

  • 2G 移动到缓冲区的第二行

  • dw 删除到词尾

1
2
3
4
例子句子
this is a not long sentence
this is another sentence
          ^

光标在第二行o 上,输入dw,输出如下

1
2
3

this is a not long sentence
this is ansentence
  • 2dw 删除2个单词 继续使用例子句子,光标在第二行o上,输入2dw,输出是
1
2
this is a not long sentence
this is an
  • d2w 同样也是删除2个单词
1
2
3
4
例子句子
this is a not long sentence
this is an
          ^
  • 2d3w 操作2遍删除3个单词的操作
1
2
3
4
5
6
7
8
this is a very very long not short sentence just for test
     ^2d3w

光标位于is的i上,输入2d3w,删除6个单词.
流程是先执行d3w删除3个单词is a very, 然后在执行d3w删除very long not

this short sentence just for test
     ^
  • vis 选择句子

  • vas 选择句子 包含空白符号

  • vip 选择段落

  • vit 选择tag内文本

  • vat 选择包含tag的文本

1
2
this is  a test senten. this is another sentence.  
in a short paragraph.    

光标位于第一行中, 输入vis, 会选择第一行 光标位于第一行或者第二行中, 输入vip, 会选择两行整个段落

this is a sentence

猜猜看

  • dw
  • daw
  • dt,
  • d2e
  • dj
  • d/test
  • 2wdw

都是啥意思:)

“dot” “.” 命令

1
2
3
this is line 1
this is line 2
this is line three

要在每行的开头加上"- “作为markdown的列表。 “^i- " ^跳到第一行开头 i插入模式, 输入 “- ” 然后ESCj^跳转到第二行行首,输入”.” 然后ESCj^跳转到第三行行首,输入"."

1
2
3
- this is line 1
- this is line 2
- this is line three

重复的是改变文本的编辑命令, 不会重复移动操作

上面猜一猜的回答

  • dw 删除到下一个单词词首
1
2
3
4
this is a short sentence
           ^dw
this is a ssentence
           ^
  • daw 删除本单词
1
2
3
4
this is a short sentence
           ^daw
this is a sentence
          ^
  • dt, 删除直到逗号
1
2
3
4
this is a short sentence, and others
            ^dt,
this is a sh, and others
            ^
  • d2e 删除2个单词到词尾
1
2
3
4
5
this is a very short setence
           ^d2e

this is a v setence
           ^
  • dj 删除本行 删除下一行
1
2
3
4
this is a sentence
this is line 2
this is 3 line
this is line 4

在第一行中输入d2j,会删除第一行第二行,结果为:

1
2
this is 3 line
this is line 4
  • d/test 删除直到test
1
2
this is a short sentence for test vim commands
            ^d/test

输出

1
this is a shtest vim commands
  • 2wdw 跳转2个单词然后删除一个单词
1
2
this is a very very short sentence
           ^2wdw

先跳到short,然后删除short

输出为

1
this is a very very sentence