vim

在正常模式下修改文本的命令的格式是:

​ operator [number] motion

其中:

  • operator - 操作符,代表要做的事情,比如 d 代表删除

  • [number] - 可以附加的数字,代表动作重复的次数

  • motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),$ 代表行末等等。

移动

正常模式下,h/j/k/l来移动

2w来向后2个单词移动,前面的数字表示重复的次数

e移动到单词末尾0移动到行首$移动到行末

移动到某一行:输入行号+大写g

输入大写 G 可以使得当前光标直接跳转到文件最后一行。

输入 gg 可以使得当前光标直接跳转到文件第一行。

返回之前位置:ctrl+o

撤销返回:ctrl+I

删除

x删除后面一个

D代表删除,dw删除后面一个单词,d2w就说明删除俩个词

删除至当前行末尾:d$

dd说明删除整行;2dd说明删除两行

u撤销操作,大写u来撤销该行所有操作

ctrl+r来撤销撤销

dd是剪切,可以用p来粘贴至下一行

选取

按v选取,可以上下移动选取的范围。

然后可以比如,y复制,p黏贴。或者d删除

img

退出

:q!,不保存退出

:wq,保存退出

编辑

按i或a进入编辑模式,esc退出

【编辑模式无法删除之前的内容】

替换

r+字母,替换掉光标所在的字母

c$,可以删除到行末,并进入insert模式

ce,可以删除到单词末尾,并进入insert模式

:s/<原文>/<替换>,可以替换第一个。

要全局替换就要在最后加一个/g

:s/thee/the/g

img

查找

查找配对括号:

光标放在一处的括号上,%就能来回跳转配对的括号

查看行号:ctrl+g

img
  • 向下搜索/+字符串

  • 向上搜索: ?+字符串

找到后摁enter进入

下一个:n

上一个:N

执行外部命令:

:!+外部命令

img

读取/导入

读取内容进入vim

:r +文件名

:r !ls,还能读取当前文件目录下文件名

帮助

f1或者:help

tab来命令补全

获取文件类型

:echo &filetype

全局搜索

https://wxnacy.com/2017/10/13/vim-grep/

:vim /<搜索内容>/[g]<显示重复> [file]<文件名>
:cn 下一个结果next
:cp 上一个结果preview
:cw 列出所有结果window
:ccl 关闭结果窗口close

查询按键被映射成了啥

:verbose map <key>

Last updated

Was this helpful?