vi-vim教程
模式
- 普通模式【Normal】
- 用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
:w- 将编辑的数据写入硬盘档案中(常用)
:w!- 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q- 离开 vi,若为
:q!则为强制离开不储存档案 (常用)
- 离开 vi,若为
:wq- 储存后离开,若为
:wq!则为强制储存后离开 (常用)
- 储存后离开,若为
ZZ- 这是英文字母 z 的大写。
- 如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZQ- 这是英文字母 zq 的大写。
- 不保存,强制退出。效果等同于
:q!
:w [filename]- 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]- 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]- 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command- 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
:! ls /home即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
- 插入模式【Insert】
- 进入输入模式:
i, a【insert append】i之前追加a之后追加
I, AI行首插入A行尾插入
o, O- 这是英文字母 o 的大小写。
o下起一行O上起一行
r, Rr只会取代光标所在的那一个字符一次R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
- 返回了命令模式。
- 在输入模式下按下
Esc
- 在输入模式下按下
- 进入输入模式:
- 可视模式【Visual】

- 移动光标
hjkl- 左下上右 设计原因
^($)- 移动到行末首(行末尾)
W,w(b,B)- 移动到下一单词词头(词尾)
-(+)- 移动到前一行行首(后一行行首)
{(})- 移动前一空行【段首】(后一空行【段尾】)
M- 移动到屏幕中间行
gg(G)- 移动到文件头(文件尾)
- 数字+
G- 移动到第数字行
- 查找
/(?)- 向后搜索(向前搜索)
u(ctrl+r)- 撤销上次操作(反撤销)
- 编辑操作
yy- 复制本行
p(P)- 粘贴至当前行的下一行(上一行)
dd(D)- 删除本行(删除当前行留空行)
x- 删除光标所在的字母
r+新字母(R)- 替换当前字符(一直替换)
c- 会删除选中内容,并切换到插入模式
- 特殊功能
Ctrl + F、page up- 上翻
Ctrl + B、page down- 下翻
Ctrl + E- 上滚
Ctrl + Y- 下滚
vim 环境的变更
:set nu- 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu- 取消行号!
参考:https://segmentfault.com/a/1190000016056004
参考:http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html