模式切换
i
→ Insert 模式,按ESC
回到 Normal 模式
各种插入模式
a
→ 在光标后插入i
→ 在当前位置插入I
→ 从本行的第一个非空字符插入o
→ 在当前行后插入一个新行O
→ 在当前行前插入一个新行cw
→ 替换从光标所在位置后到一个单词结尾的字符
各种删除
dd
→ 删除当前行,并把删除的行存到剪贴板里dG
:删除从当前位置到文件结尾- 因此,
gg
+dG
就是清空整个文件的内容
- 因此,
光标移动
0
→ 数字零,到行头^
→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)$
→ 到本行行尾g_
→ 到本行最后一个不是blank字符的位置。gg
:光标移动到文件首行100gg
:跳转到第100行G
:跳转到最后一行
搜索
向下搜索
/sw
:向下搜索 sw
字符串
- 输入关键字后,按下回车
- 如果搜索出多个匹配,按
n
键跳转到下一个搜索到的位置,按N
键跳转到上一个搜索到的位置
向上搜索
?sw
:向下搜索 sw
字符串
大小写敏感配置
Vim 默认采用大小写敏感的查找,为了方便我们常常将其配置为大小写不敏感:
" 设置默认进行大小写不敏感查找
set ignorecase
" 如果有一个大写字母,则切换到大小写敏感查找
set smartcase
将上述设置粘贴到你的
~/.vimrc
,重新打开Vim即可生效。
查找和替换
:s
(substitute)命令用来查找和替换字符串。语法如下:
:{作用范围}s/{目标}/{替换}/{替换标志}
例如:%s/foo/bar/g
会在全局范围(%
)查找foo
并替换为bar
,所有出现都会被替换(g
)。
拷贝/粘贴
P
→ 粘贴yy
→ 拷贝当前行当行于ddP
Undo/Redo
u
→ undoControl-r
:redo
打开/保存/退出/改变文件 (Buffer)
:e <path/to/file>
→ 打开一个文件:w
→ 存盘:saveas <path/to/file>
→ 另存为<path/to/file>
:x
,ZZ
或:wq
→ 保存并退出 (:x
表示仅在需要时保存,ZZ不需要输入冒号并回车):q!
→ 退出不保存:qa!
强行退出所有的正在编辑的文件,就算别的文件有更改。:bn
和:bp
→ 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
Reference
FEATURED TAGS
algorithm
algorithmproblem
architecturalpattern
architecture
aws
c#
cachesystem
codis
compile
concurrentcontrol
database
dataformat
datastructure
debug
design
designpattern
distributedsystem
django
docker
domain
engineering
freebsd
git
golang
grafana
hackintosh
hadoop
hardware
hexo
http
hugo
ios
iot
java
javaee
javascript
kafka
kubernetes
linux
linuxcommand
linuxio
lock
macos
markdown
microservices
mysql
nas
network
networkprogramming
nginx
node.js
npm
oop
openwrt
operatingsystem
padavan
performance
programming
prometheus
protobuf
python
redis
router
security
shell
software testing
spring
sql
systemdesign
truenas
ubuntu
vmware
vpn
windows
wmware
wordpress
xml
zookeeper