移动光标的方法
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行(常用)
nG n为数字,移动到这个档案的第n行。例如20G则会移动到这个档案的第20行(可配合 :set nu )
gg 移动到这个档案的第一行,相当于 1G(常用)
n<Enter> n为数字 ,光标向下移动n行(常用)
搜索替换
/word 向光标之下寻找一个名称为word的字符串。例如要在档案内搜索vbird这个字符串,就输入/vbird即可(常用)
?word 向光标之上寻找一个字符串名称为word的字符串。
n 这个n是英文按键,代表着重复前一个搜寻的动作。举例来说,如果刚刚我们执行/vbird 去向下搜寻vbird这个字符串,则按下n后,
会向下继续搜寻下一个名称为vbird的字符串。如果是执行?vbird的话,那么按下n则会向上继续搜寻名称为vbird的字符串
N 这个N是英文按键,与n刚好相反,为 反向 进行前一个搜寻动作。例如/vbird后,按下N则表示 向上 搜寻 vbird
使用/word 配置n及N是非常有帮助的 ,可以让你重复的找到一些你搜寻的关键词
:n1,n2s/word1/word2/g n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串取代为word2
举例来说,在100到200行之间搜寻vbird 并取代为VBIRD则:
:100,200s/vird/VBIRD/g (常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找word1字符串 并将该字符串取代为 word2 (常用)
:1,$/word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串取代为 word2 且在取代前显示提示字符给用户确认
confirm 是否 需要取代 (常用)
删除 复制 与粘贴
x,X 在一行字当中,x为向后删除一个字符,(相当于 del 按键) X 为向前删除一个字符
nx n为数字,连续向后删除n个字符,举例来说,我要连续删除 10个字符, 10x
dd 删除游标所在的那一整行 (常用)
ndd n为数字,删除光标所在的向下 n行,例如20dd 则是删除20行(常用)
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
yG 复制游标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p 为将已复制的数据在光标下一行贴上,P则为贴在游标上一行,举例来说,我目前光标在第20行,且已经复制了10行数据
,则按下p后,那10行数据会贴在原本的20行之后,就是从21行开始帖,但如果是按下P,那么原本的第20行会被推到变成30行(常用)
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除10行 [10cj]
u 复原前一个动作 (常用)
Ctrl + r 重复上一个动作(常用)
. (点) 重复前一个动作
第二部分: 一般模式切换到编辑模式的可用的按钮说明
进入输入或取代的编辑模式
i,l 进入输入模式(Insert mode )
i 为【从目前光标所在处输入】 I 为 【在目前所在行的第一个非空格符处开始输入】 (常用)
a A 进入输入模式(Insert mode)
a 为【从目前光标所在的下一个字符处开始输入】A 为【从光标所在行的最后一个字符处开始输入】
oO 进入输入模式(Insert mode)
这是英文字母o的大小写,o为【在目前光标所在的下一行处输入新的一行】O 为在目前光标所在处的上一行输入新的一行(常用)
rR 进入取代模式(Replace mode)
r 只会取代光标所在的那一个字符一次,R会一直取代光标所在的字符,知道按下Esc 为止(常用)
上面这些按键中,在vi画面的左下角处会出现【INSERT】 【replace】
Esc 退出编辑模式,回到一般模式中(常用)
第三个部分: 一般模式切换到指令行模式的可用的按钮说明
指令行的存储, 离开等指令
:w 将编辑的数据写入硬盘档案中 (常用)
:w! 若文件属性为【只读】时,强制写入该档案,不过,到底能不能写入,还是跟你对该的档案的权限有关
:q 离开 vi(常用)
:q! 若曾修改过档案,又不想存储,使用!为强制离开不存储档案。
注意: ! 在vi中,常常有 强制的意思。
:wq 存储后离开,若为 :wq! 则为强制存储后离开(常用)
ZZ 这是大写的 Z ,若档案没有更改,则不存储离开,若档案已经被更改过,则存储后离开
:w [filename] 在编译的数据中,读入另一个档案的数据,即将【firlename】 这个档案内容加到游标所在行的后面
:n1,n2 w[filename] 将n1到n2 的内容存储成filename 这个档案。
:!command 暂时离开vi 到指令行模式下执行 command 的显示结果,例如【:!ls /home】 即可在vi 当中查看/home底下ls输出的档案信息
vim 环境的变更
:set nu 显示行号,设定之后,会在每一行的前缀显示改行的行号
:set nonu 与 set nu 相反,为取消行号!