一、进入vi的命令
vi + file 打开文件,并定位光标到末行行首。
vi + /keyword file 打开文件,并定位光标到第一个与keyword匹配的串处。
vi -r file 在上次编辑file时,发生系统崩溃,此次恢复file。
二、移动光标类命令
k或nk 光标上移一行或n行。
j或nj 光标下移一行或n行。
h或nh 光标左移一个或n个字符。
l或nl 光标右移一个或n个字符。
space或nspace 光标右移一个或n个字符。
w或nw 光标右移一个或n个短单词(已空格和符号为界)。
b或 nb 光标左移一个或n个短单词。
e 光标移动到后一个单词(短单词)最后一个字母。E 光标移动到后一个单词(长单词)最后一个字母。
W或nW 光标右移一个或n个长单词。
B或nB 光标左移一个或n个长单词。
0 光标定位到行首
$ 光标定位到行末。
Ctrl+f或PgDn 向下翻一整页
Ctr+b或PgUp 向上翻一整页
gg (小写) 跳转到首行
GG(大写) 跳转到末行
1G或nG 跳到第一行或第n行。
gg (小写) 跳转到首行
G(大写) 跳转到末行
数字n 向上箭头 向上移n行
数字n 向下箭头 向下移n行
三、保存和编辑
Ctrl+ W 窗口切换。
Ctrl +w [s|v]
x 删除当前光标处的字符。
u 撤消操作
dd或ndd 删除当前一行,或删除当前行开始的n行。
d 可配合任何移动命令,如dw, d}等。
dw 删除从光标当前位置到下一个短单词开始处的内容。
rc 将光标位置的字符替换为字符c。
J 将下一行连接到本行末尾。
. 重复前一个编辑命令,如“dd...”会删除四行文字。
四、插入模式
i 进入插入模式,从当前字符前开始插入。 I 进入插入模式,从当前行的开始处插入。
a 进入插入模式,从当前字符后开始插入。 A 进入插入模式,从当前行的行尾处插入。
o 进入插入模式,在当前行下方,新建一空行 O 进入插入模式,在当前行上方,新建一空行
c 与d命令类似,可配合任何移动命令,完成文本修改。如cW、ce、c)等。
cc 用空白行替换当前整行文字。
c0 用空白行,替换掉当前位置到行开始处。c$ 用空白行,替换掉当前字符到行尾结束。
小p 粘贴在当前行下 大P 粘贴在当前行上
五、复合命令
d和c命令可以与数字或移动命令形成组合命令,如:
d3w 删除后面3个单词。
d2j 删除后面两行文本。
六、复制、剪切、粘贴
1、命令行模式
命令行模式下,按v(会有VISUAL提示)。然后,用移动命令控制光标。可以反白一段文字,此时就可以对此段文字进行复制、剪切操作了。如:v 3j,产生如下效果。
y 复制反白文字。
d 剪切反白文字。
P或p 在光标之后或光标之前插入文本。
2、底行模式(即按“:”进入的模式)
:set number或者set nu 显示行号。 :Set nonu 隐藏行号
:x copy y 将x行复制到y行之后。
:x,y copy z 将x行到y行,复制到z行之后。
:x move y 将x行移动到y行之后(即剪切到)。
:x,y move z 将x行到y行移动到z行之后(即剪切到)。
八、文本替换
1.替换
:s/old/new/ 将当前行第一次出现的字符串old替换为字符串new(只替换当前行且只替换第一个)。
:s/old/new/g 替换当前行的所有匹配之处,即将当前行所有的old都替换为new。
:n,$s/a/b/ 替换第n行开始到最后一行中每一行的第一个a为b
:n,$s/a/b/g 替换第n行开始到最后一行中每一行所有a为b(n为数字,若n为.,表示从当前行开始到最后一行)
:%s/old/new/g 替换文件中所有匹配的位置。
:%s/old/new/gc 替换文件中所有匹配的位置,替换前提示。
2.可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:s#a/#b/# 替换当前行第一个a/为b/
:%s+/a/b/+/c/d+ (使用+来替换/) /a/b/替换成/c/d/
3.下面是回车(0A)来表示。这样讲window上文件考到unix上时,总会出现^M,请写个unix下的过滤window文件的换行符(0D)的shell或c程序。
使用命令:cat filename1 | tr -d "^V^M" > newfile
使用命令:sed -e "^V^M//" filename > outfilename
需要注意的是1,2两种方法中,^V和^M指的是ctrl+V和ctrl+M
必须要手动进行输入,而不是粘贴。
在VI中处理:首先使用VI打开文件,然后按ESC键,接着输入命令:
:%s/^V^M//
:%s/^M$//g
如果上述方法无用,则正确的解决办法是:
tr -d "\r" dest
tr -d "\015" dest
strings A>B
vi + file 打开文件,并定位光标到末行行首。
vi + /keyword file 打开文件,并定位光标到第一个与keyword匹配的串处。
vi -r file 在上次编辑file时,发生系统崩溃,此次恢复file。
二、移动光标类命令
k或nk 光标上移一行或n行。
j或nj 光标下移一行或n行。
h或nh 光标左移一个或n个字符。
l或nl 光标右移一个或n个字符。
space或nspace 光标右移一个或n个字符。
w或nw 光标右移一个或n个短单词(已空格和符号为界)。
b或 nb 光标左移一个或n个短单词。
e 光标移动到后一个单词(短单词)最后一个字母。E 光标移动到后一个单词(长单词)最后一个字母。
W或nW 光标右移一个或n个长单词。
B或nB 光标左移一个或n个长单词。
0 光标定位到行首
$ 光标定位到行末。
Ctrl+f或PgDn 向下翻一整页
Ctr+b或PgUp 向上翻一整页
gg (小写) 跳转到首行
GG(大写) 跳转到末行
1G或nG 跳到第一行或第n行。
gg (小写) 跳转到首行
G(大写) 跳转到末行
数字n 向上箭头 向上移n行
数字n 向下箭头 向下移n行
三、保存和编辑
Ctrl+ W 窗口切换。
Ctrl +w [s|v]
x 删除当前光标处的字符。
u 撤消操作
dd或ndd 删除当前一行,或删除当前行开始的n行。
d 可配合任何移动命令,如dw, d}等。
dw 删除从光标当前位置到下一个短单词开始处的内容。
rc 将光标位置的字符替换为字符c。
J 将下一行连接到本行末尾。
. 重复前一个编辑命令,如“dd...”会删除四行文字。
四、插入模式
i 进入插入模式,从当前字符前开始插入。 I 进入插入模式,从当前行的开始处插入。
a 进入插入模式,从当前字符后开始插入。 A 进入插入模式,从当前行的行尾处插入。
o 进入插入模式,在当前行下方,新建一空行 O 进入插入模式,在当前行上方,新建一空行
c 与d命令类似,可配合任何移动命令,完成文本修改。如cW、ce、c)等。
cc 用空白行替换当前整行文字。
c0 用空白行,替换掉当前位置到行开始处。c$ 用空白行,替换掉当前字符到行尾结束。
小p 粘贴在当前行下 大P 粘贴在当前行上
五、复合命令
d和c命令可以与数字或移动命令形成组合命令,如:
d3w 删除后面3个单词。
d2j 删除后面两行文本。
六、复制、剪切、粘贴
1、命令行模式
命令行模式下,按v(会有VISUAL提示)。然后,用移动命令控制光标。可以反白一段文字,此时就可以对此段文字进行复制、剪切操作了。如:v 3j,产生如下效果。
y 复制反白文字。
d 剪切反白文字。
P或p 在光标之后或光标之前插入文本。
2、底行模式(即按“:”进入的模式)
:set number或者set nu 显示行号。 :Set nonu 隐藏行号
:x copy y 将x行复制到y行之后。
:x,y copy z 将x行到y行,复制到z行之后。
:x move y 将x行移动到y行之后(即剪切到)。
:x,y move z 将x行到y行移动到z行之后(即剪切到)。
八、文本替换
1.替换
:s/old/new/ 将当前行第一次出现的字符串old替换为字符串new(只替换当前行且只替换第一个)。
:s/old/new/g 替换当前行的所有匹配之处,即将当前行所有的old都替换为new。
:n,$s/a/b/ 替换第n行开始到最后一行中每一行的第一个a为b
:n,$s/a/b/g 替换第n行开始到最后一行中每一行所有a为b(n为数字,若n为.,表示从当前行开始到最后一行)
:%s/old/new/g 替换文件中所有匹配的位置。
:%s/old/new/gc 替换文件中所有匹配的位置,替换前提示。
2.可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:s#a/#b/# 替换当前行第一个a/为b/
:%s+/a/b/+/c/d+ (使用+来替换/) /a/b/替换成/c/d/
3.下面是回车(0A)来表示。这样讲window上文件考到unix上时,总会出现^M,请写个unix下的过滤window文件的换行符(0D)的shell或c程序。
使用命令:cat filename1 | tr -d "^V^M" > newfile
使用命令:sed -e "^V^M//" filename > outfilename
需要注意的是1,2两种方法中,^V和^M指的是ctrl+V和ctrl+M
必须要手动进行输入,而不是粘贴。
在VI中处理:首先使用VI打开文件,然后按ESC键,接着输入命令:
:%s/^V^M//
:%s/^M$//g
如果上述方法无用,则正确的解决办法是:
tr -d "\r" dest
tr -d "\015" dest
strings A>B
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26366371/viewspace-2062327/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26366371/viewspace-2062327/