模式切换
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
algorithm-problem
architectural-pattern
architecture
aws
c#
cache-system
codis
concurrent-control
data-format
data-structure
database
debug
design
design-pattern
distributed-system
django
docker
engineering
engingeering
freebsd
git
golang
grafana
hackintosh
hardware
hexo
http
hugo
ios
iot
java
java-ee
javascript
kafka
kubernetes
linux
lock
macos
markdown
microservices
mysql
nas
network
network-programming
nginx
node.js
npm
oop
openwrt
operating-system
operating-systems
padavan
performance
programming
prometheus
protobuf
python
redis
router
security
shell
software-testing
spring
sql
truenas
ubuntu
vmware
vpn
windows
wmware
wordpress
zookeeper