VI的使用
vi的三种模式
一般模式
默认打开文件的模式。在这个模式中你可以移动光标,可以删除字符或删除整行,也可以复制,粘贴你的文件数据
编辑模式
在一般模式中,按下”i,I,o,O,a,A,r,R“等任何一个字母进入编辑模式,在按下这些按键时,在界面的左下方会出现INSERT或REPLACE字样,如果要回到一般模式,则必须按下[ESC]键
命令行模式
在一般模式中。输入”:,/,?“冒号,左斜线,问号,3个中的任何一个按键就可以将光标移动到最下面一行。在这个模式当中,可以提供你查找数据的操作,而读取,保存,大量替换字符,离开vi,显示行号等操作则是在此模式中完成的。
按键说明
一般模式
可用的按键说明,光标移动,复制粘贴,查找替换等
光标移动
h
左移一个字符
j
下移一个字符
k
上移一个字符
l
右移一个字符
如果想进行多次移动,如下移30行,可以使用30j
的组合键
ctrl + f
屏幕向下移动一页,相当于 pagedown
ctrl + b
屏幕向上移动一页,相当于 pageup
ctrl + d
屏幕向下移动半页
ctrl + u
屏幕向上移动半页
0
或功能键home
: 移动到这一行的最前面字符处
$
或功能键end
:移动到这一行的最后字符处
H
光标移动到这个屏幕最上方的第一个字符处
M
光标移动到这个屏幕中央的那一行的第一个字符
L
光标移动到这个屏幕的最下方的那一行的第一个字符
G
移动到这个文件的最后一行(常用)
nG
: n为数字,移动这个文件的第n行
gg
: 移动到这个文件的第一行,相当于1G
N[Enter]
: n为数字,光标向下移动n行(常用)
查找与替换
/word
向下寻找一个名称为word的字符串
?word
向上寻找一个名称为word的字符串
n
这个n是英文按键,代表重复前面一个查找的动作
N
这个N是英文按键,与n刚好相反,为”反向“进行前一个查找操作
:n1,n2s/word1/word2/g
n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2.如,在100到200行之间寻找vbird并替换成VBIRD则用:100,200s/vbird/VBIRD/g
:1,$/word1/word2/g
从第一行到最后一行查找word1字串,并将它替换为word2
:1,$/word1/word2/gc
从第一行到最后一行查找word1字串,并将它替换为word2,且在替换前提示用户确定是否需要替换(常用)
删除,复制与粘贴
x,X
在一行字当中,x为向后删除一个字符,X为向前删除一个字符(常用)
nx
n为数字,连接向后删除n个字符,如10x
dd
删除光标所在的一行
ndd
n为数字,删除光标所在的向下n行
d1G
删除光标所在到第一行的所有数据
dG
删除光标所在到最后一行的数据
d$
删除从光标所在到最后一个字符
d0
数字0,删除从光标所在处到该行的最前面一个字符
yy
复制光标所在一行64G:
nyy
n为数字,复制光标所在的向下n行
y1G
复制光标所在行到第一行所的数据
yG
复制光标所在行到最后一行的所有数据
y0
复制光标所在处到该行行首的所有数据
y$
复制光标所在处到该行行尾的所有数据
p,P
p为将已复制的数据在光标下一行粘贴,P则为光标上一行:
J
将光标所在行和下一行数据合成一行
c
重复删除多个数据,例如向下删除10行 10c
u
复原前一个操作(常用)
Ctrl +r
重做上一个操作
.
小数点,重复前一个操作的意思
一般模式切换到编辑模式的按键说明
i,I
进入插入模式,i为从目前光标的在处插入,I为在目前的所在行的非空格符处开始插入。
r,R
进入替换模式 r只会替换光标的那个字符一次,R会一直替换光标所在的文字,直到按下ESC键为止。
一般模式切换到命令模式可用的按键使用
:w
将编辑的数据定入硬盘文件
:w!
强制写入
:q
离开vi
: q!
若修改过文件,又不想保存,可以强制离开不保存文件
:wq
保存后离开
:wq!
强制保存后离开
:w[filename]
将编辑的数据保存为另一个文件 (类似于另存文件)
:r[filename]
在编辑的数据中,读入另一个文件的数据,将filename这个文件的内容加到光标所在行后面
:n1,n2 w [filename]
将n1到n2行的内容保存成filename这个文件
:!command
暂时离开vi到命令模式下执行comand的显示结果,如”:!ls/home“ 即可在vi当中查看/home下面的ls输出的文件信息
:set nu
显示行号
:set nonu
与set nu 相反,取消行号
在一般模式下按下Ctrl+Z
,vim会被丢到后台去执行
vim的块选择
v
字符选择,会将光标经过的地方反白选择
V
行选择 ,会将光标经过的地方反白选择
Ctrl +v
块选择,可以用长方形的方式选择数据
y
将反白的地方复制起来
d
将反白的地方删除
p
将复制的粘贴
vim的多文件编辑
:n
编辑下一个文件
:N
编辑上一个文件
:files
列出目前这个vim的打开的所有文件
如同时打开两个文件:vim 文件一 文件二
vim的多窗口功能
在命令模式输入:sp{filename}
,那个filename可有可无,如果想要在新窗口启动另一个文件,就加文件名,否则仅输入:sp
时,出现的则是同一个文件在两个窗口
ctrl +w+向下功能键 向上功能键
光标在窗口间移动
ctrl + w + q
结束离开
DOS与linux的断行字符
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
-k
保留该文件原本的mtime时间
-n
保留原本的旧文件,将转换后的内容输出到新文件
语系编码转换
iconv --list
列出所有编辑
iconv -f 原本编码 -t 新编码 filenname [-c newfile]
-f
from 后接原本的编码
-t
to后接新编码格式
-o
file 如果要保留原本的文件,那么使用-o新文件名,建立新编码文件