这里不说一般模式,命令行模式,编辑模式等的切换,只说各种模式下的各种键的作用
先说一下传统的vi功能:
1 一般模式下:
[ctrl]+[f]屏幕向下移动一页
[ctrl]+[b]屏幕向上移动一页
[ctrl]+[d]屏幕向下移动半页
[ctrl]+[u]屏幕向上移动半页
n <space > n表示数字例如20等,这样会在当前位置往右移动n个字符(常用)
0 或者[home] 回到这一行的最开始 (常用)
$或者{end} 到这一行的最后一个字符(常用)
H 光标移动到这个屏幕最上方一行的第一个字符
L 光标移动到这个屏幕最后一行第一个字符
G 移动到这个档案的最后一行(常用)
nG n是数字,移动到这个的档案的第N行(常用)
1G 移动到到这个档案的第一行(常用)
n<enter> n为数字,光标向下移动n行(常用)
/keyword 向光标之下搜索
?keyword 向光标之上搜索
n 这是英文字母,代表重复上一个搜索动作,
N 这也是英文字母与n相反,代表反向进行前一个搜索动作,例如/menogen后,那么按下n就向上搜
:n1,n2s/word1/word2/g 表示在n1与n2行之间搜索word1 并用word2代替,例如 :100,200s/menogen/MENOGRNEN 如果n1=1 n2=$那就是从第一行到最后一样、
nx n为数字,表示往后删除n个字符。 nX 表示往前删
dd 删除光标所在的行 ndd当然是删除之后n行(常用)
yy复制光标所在的行,nyy当然是复制之后n行(常用)
p及P 都是粘贴的动作,p是粘在光标的下一行,P是粘在光标的上一行(常用)
u 恢复前一个动作(非常常用)
[ctrl]+r 重复上一个动作 (常用) 好好利用u及ctrl+r是非常常用的,一个是复原,一个是重做一次
. 就是小数点, 重复前一个动作(咦,他跟ctrl+r有什么区别??)
指令模式下常用的指令
:w 将编辑的数据写入到硬盘中(常用)
:w! 若文件属性为只读,强制写入,不过这根你对该档案的权限有关
:q 离开vi
:q! 强制离开不存储
:wq 存储后离开 ,:wq!存储后强制离开(咦,与:w的区别??)
:w filename 另存为新档
:r filename 在编辑中,读入另一个档案数据,将其放在游标之后
:set nu 显示行号
:set nonu 取消行号
一般模式与编辑模式切换中的不同
i为从目前光标插入
o 为在目前光标的下一行插入,O为目前光标上一行插入
如果有时候因为当机等原因,你写的内容并未保存,这时候系统会自动在该文档所在的目录下存在一个filename.swap的文件,当你要进入wim filename s时候,他会出现一些提示,这时候, 你可以进入R (恢复),此时vim会载入.swap的内容,这时候由你决定要不要保存,当时这种情况下.swap不会在你保存后消失,你得自己将他删除,不然每次进入都会有.swap提示
如果你确定这个暂存档真的不要了 你可以按下D 删除这个档案,这时候vim会载入f原本的文件,并且自动将旧的.swap删除
***********************华丽丽的分割线**********************************************************************************************
下面就说说vim额外的功能:
1 区块选择键
v 字符选择,会将光标经过的地方反白选择
V 行选择,会将光标经过的行反白选择
ctrl+v 区块选择, 可以用方形方式选择
y 将反白的地方复制
d 将反白的地方删除
2 多档案编辑
可以利用 vim file1 file2....打开多个文档
:n 切换到下一个文档
:N 切换到上一个文件
:files 查看有哪些文件载入 这时候按下任意键可以返回到一般模式
这样可以自由的在两个文档之间切换。复制,粘贴等
2 多窗口功能
:sp filename 开启一个新窗口
:ctrl+w+向下键 先按下ctrl,不放再按下w 然后放开这个个键然后按向下键,这时候光标到下一个档案,如果按向上键则到上一个档案