VIM 基本命令
离开 vi
ZZ :wq :x 先存档再离开
:w 档名 存成他档
:q 离开 (档案有改会提示)
:q! 放弃编辑,直接离开
:wq! 强制存档,并离开
暂时离开 vi :! 暂时执行一下UNIX指令 :sh 产生新shell, Ctrl + d 回原编辑处 Ctrl + z 回上一个shell, 用fg指令回vi
插入/命令模式的切换
ESC键 插入模式 --> 命令模式
在命令模式下的指令
a 在游标右边插入文字
i 在游标处插入文字
o 在游标下方增加新列
A 在游标那列末端插入文字
I 在游标那列开头插入文字
O 在游标上方增加新列
移动游标 k 往上移 j 往下移 h 往左移 l 往右移 ^ 移到列首 $ 移到列尾 w 往右移一个字(word) b 往左移一个字(word) e 移到目前所在字(word)的最后字元 G 移到档尾 nG 移到第 n 列 :n 游标移到第 n 列 :$ 游标移到最后一列 H 游标移到荧幕顶端 M 游标移到荧幕中间 L 游标移到荧幕底端 ctrl + d 游标向下卷半页 ctrl + u 游标向上卷半页 ctrl + f 游标向上卷一页 ctrl + b 游标向下卷一页
删除 ctrl + G 查询目前的游标位置 删除资料 x 删除游标所在字元(delete) #x 从游标起,删 # 个字元 X 删除游标的前一字元(backspace) #X 从游标起,往前删 # 个字元 dw 删一个字(word) #dw 删 # 个字(word) D 删字到列末 dd 整列删除 #dd 从游标列开始,删除 # 列 dG 从游标处删到档尾
剪切和复制
ndd 从游标处起n 列, 剪到暂存区
nyy 从游标处起n 列, 复制暂存区
p 将暂存区的内容贴到游标处
n,m co x 将n 到m 列的资料, 复制到x 列
n,m m x 将 n 到 m 列的资料, 移到 x 列
.,$ co x 将游标所在列到档尾的资料, 复制到x 列
查找和替代 / 字串搜寻 :set ic 搜寻时不考虑大小写 :set noic 搜寻时需考虑大小写 n 向下搜寻 N 向上搜寻 r 将游标所在换成另一字元 cw 取代一个字串 cc 取代一整列 :s 取代多个字串 :1,$s /旧字串/新字串/g 1是第1列, $是最后一列, g是全档 例:下这段指令可以将档案中所有的a: b: ... z: 的字串改成* :1,$s/[a-z]:/*/g
合并 列/档案
J 合并两列
:r 档名将他档插在游标所在列之后
:nr 档名将他档插在第n 列之后
回滚
u 取消前一命令(undo)
U 对这列的修改全取消
设置
:set nu 加上行号
:set nonu 不显示行号