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, A
I
行首插入A
行尾插入
o, O
- 这是英文字母 o 的大小写。
o
下起一行O
上起一行
r, R
r
只会取代光标所在的那一个字符一次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