vi编辑器.docx
- 文档编号:30530931
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:31
- 大小:28.26KB
vi编辑器.docx
《vi编辑器.docx》由会员分享,可在线阅读,更多相关《vi编辑器.docx(31页珍藏版)》请在冰豆网上搜索。
vi编辑器
vi 常用操作
pandora发表于2005-8-916:
58:
45
viFileName 打开文件FileName,并将光标置于第一行首。
vi+nFileName 打开文件FileName,并将光标置于第n行首。
vi+FileName 打开文件FileName,并将光标置于最后一行。
vi+/patternFile 打开文件File,并将光标置于其中第一个于pattern匹配的字符串处。
vi–rFileName 在上次正用vi编辑FileName发生系统崩溃后,恢复FileName。
viFile1…Filen 打开多个文件,依次对之进行编辑。
:
%!
xxd 按十六进制查看当前文件
:
%!
xxd-r 从十六进制返回正常模式
:
n1,n2con3 将n1行到n2行之间的内容拷贝到第n3行下。
:
n1,n2m m3 将n1行到n2行之间的内容移至第n3行下。
:
n1,n2d 将n1行到n2行之间的内容删除。
:
n1,n2w filename 将n1行到n2行之间的内容保存到文件filename中
:
n1,n2w!
Command 将文件中n1行到n2行的内容作为Command的输入并执行之,
若不指定n1、n2,则将整个文件内容作为Command的输入。
:
r!
Command 将命令Command的输出结果放到当前行。
:
nr<文件> 把<文件>插入到第n行
:
so<文件> 读取<文件>,再执行文件里面的命令(文件中的命令应该都是一些ex命令)
:
l1,l2w<文件> 把第l1和第l2行之间的文本写到<文件>中去
:
w>><文件> 添加到<文件>末尾.也可以使用行号
:
e!
重新编辑当前文件,忽略所有的修改
·(、[、{、}、]、)对应显示
% 显示当前(、[、{、}、]、)的对应项
) 显示对应的(
) 显示对应的[
] 显示对应的{
·(、[、{、}、]、)内数据选择
daB 删除{}及其内的内容 (在非v可视模式下)
diB 删除{}中的内容
ab 选择()中的内容
ib 选择()中的内容( 不含() )
aB 选择{}中的内容
iB 选择{}中的内容( 不含{} )
·语法提示与自动补齐
★
★
·设置ctags
#ctags-f/usr/share/vim/vim63/funcs.tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686
^p 自动补齐上下文已有相近项
^n 自动补齐~/.tags中的相近函数
^[ 显示~/.tags中的光标下的函数的原型,
按^t退出函数
:
pta函数名 预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头
K 显示光标下的C函数的man说明手册
·变量定位
gd 转到光标下局部变量的定义处
Gd 转到光标下全局变量的定义处
·编译选项
:
cn 命令会把你带到下一个出错地点,而不考虑它在什么文件里。
:
cc 命令会向你显示当前错误的编译器输出信息;
:
cl 会生成一个列有项目所有错误的列表,以供浏览这些错误
3]光标移动
·字符
h 光标左移一个字符。
l 光标右移一个字符。
·字
w或W 光标右移一个字至字首。
B或b 光标左移一个字至字首。
E或e 光标右移一个字至字尾。
·句} 光标移至句尾。
( 光标移至句首。
·段) 光标移至段落开头。
{ 光标移至段落结尾。
·行k或Ctrl+p 光标上移一行。
j或Ctrl+n 光标下移一行。
Enter 光标下移一行。
nG 光标移至第n行首。
n+ 光标下移n行。
n- 光标上移n行。
n$ 光标移至第n行尾。
0 光标移至当前行首。
$ 光标移至当前行尾。
·屏幕
H 光标移至屏幕顶行。
M 光标移至屏幕中间行。
L 光标移至屏幕最后行。
Ctrl+u 向文件首翻半屏。
Ctrl+d 向文件尾翻半屏。
Ctrl+f 向文件尾翻一屏。
Ctrl+b 向文件首翻一屏。
nz 将第n行滚至屏幕顶部。
不指定n时将当前行滚至屏幕顶。
4}插入
#在文件中插入行号(不是显示行号,是插入!
)
★:
g/^/exec"s/^/".strpart(line(".")."",0,4)
·光标
i 在光标前插入。
a 在光标后插入。
·行
I 在当前行首插入。
A 在当前行尾插入。
o 在当前行之下一新行插入。
O 在当前行之上新开一行插入。
5)替换
r 替换当前字符。
R 替换当前字符及其后的字符,直至按ESC键。
s 从当前光标位置处开始,以输入的文本代替指定数目的字符。
S 删除指定数目的行,并以所输入的文本代替。
6)修改
ncw或nCW 修改指定数目的字符。
nCC 修改指定数目的行。
:
rfilename 将文件filename插入在当前行之下
7)查找替换
/
/
:
g/str/s/str1/str2/g
第一个g表示对每一个包括s1的行都进行替换,
第二个g表示对每一行的所有进行替换
包括str的行所有的str1都用str2替换
:
%s/f$/for$/g 将每一行尾部的“f”(f键和空格键)替换为for
:
%s/^/mv/g 在每一行的头部添加“mv”(mv键和空格键)
:
s/fred/
:
g/
#替换一个visual区域
#选择一个区域,然后输入:
s/Emacs/Vim/等等,vim会自动进入:
模式
:
'<,'>s/Emacs/Vim/g 前面的'<,'>是vim自动添加的
#在多个文档中搜索
:
bufdo/searchstr
:
argdo/searchstr
复制与剪切
xp 交换前后两个字符的位置
ddp 上下两行的位置交换
:
g/fred/t$ 拷贝行,从fred到文件末尾(EOF)
9)窗口操作
:
vne [filename]
:
sp [filename]
:
S [filename]
:
new [filename]
:
^w+^r 交换两个窗口的位置
^w= 窗口等宽
:
res-n 窗口高度减小n
:
res+n 窗口高度增大n
:
vertres-n
:
vertres+n
10)DOS格式文本转成Unix格式文本
:
1,$s/^M//g
11)书签
在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。
将光标移到想做标记的位置。
假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。
接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。
12)删除操作
:
%s/r//g 删除DOS方式的回车^M
:
%s=*$== 删除行尾空白
:
%s/^(.*)n1/1$/ 删除重复行
:
%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf
:
%s/
--_.{-}-->// 又是删除多行注释(咦?
为什么要说「又」呢?
)
:
g/^s*$/d 删除所有空行
:
g!
/^dd/d 删除不含字符串'dd'的行
:
v/^dd/d 同上 (译释:
v==g!
,就是不匹配!
)
:
g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行
:
v/./.,/./-1join 压缩空行
:
g/^$/,/./-j 压缩空行
ndw或ndW 删除光标处开始及其后的n-1个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后n-1行。
x或X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作
J 把下一行合并到当前行尾
V 选择一行
^V 按下^V后即可进行矩形的选择了
aw 选择单词
iw 内部单词(无空格)
as 选择句子
is 选择句子(无空格)
ap 选择段落
ip 选择段落(无空格)
D 删除到行尾
x,y 删除与复制包含高亮区
dl 删除当前字符(与x命令功能相同)
d0 删除到某一行的开始位置
d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw 删除到某个单词的结尾位置
d3w 删除到第三个单词的结尾位置
db 删除到某个单词的开始位置
dW 删除到某个以空格作为分隔符的单词的结尾位置
dB 删除到某个以空格作为分隔符的单词的开始位置
d7B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d) 删除到某个段落的结尾位置
d{ 删除到某个段落的开始位置
d7{ 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d/text 删除从文本中出现“text”中所指定字样的位置,
一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
dtc 删除当前行直到下一个字符“c”所出现位置之间的内容
D 删除到某一行的结尾
d$ 删除到某一行的结尾
5dd 删除从当前行所开始的5行内容
dL 删除直到屏幕上最后一行的内容
dH 删除直到屏幕上第一行的内容
dG 删除直到工作缓存区结尾的内容
d1G 删除直到工作缓存区开始的内容
修改命令操作
r 更改当前字符
cw 修改到某个单词的结尾位置
c3w 修改到第三个单词的结尾位置
cb 修改到某个单词的开始位置
cW 修改到某个以空格作为分隔符的单词的结尾位置
cB 修改到某个以空格作为分隔符的单词的开始位置
c7B 修改到前面7个以空格作为分隔符的单词的开始位置
c0 修改到某行的结尾位置
c} 修改到某个语句的结尾位置
c4} 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c) 修改到某个段落的结尾位置
c{ 修改到某个段落的开始位置
c7{ 修改到当前段落起始位置之前的第7个段落位置
ctc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
cc 修改当前行
5cc 修改从当前行所开始的5行内容
. 重复上一次修改!
13}Set选项设置
setall 列出所有选项设置情况。
setterm 设置终端类型。
setignorecase 在搜索中忽略大小写。
setlist 显示制表位(^I)和行尾标志($)。
setnumber 显示行号。
setshowmode 示用户处在什么模式下
setreport 显示由面向行的命令修改国的行数目。
setterse 显示简短的警告信息。
setwarn 在转到别的文件时,若没有保存当前文件则显示Nowrite信息。
setautowrite 在“:
n”和“:
!
”命令之前都自动保存文件
setnomagic 允许在搜索模式中,使用前面不带\的特殊字符。
setnowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始。
setmesg 允许vi显示其他用户用write写到自己终端上的信息。
autoindent(ai) noai 使新行自动缩进,和上(下)行的位置对齐
autoprint(ap) ap 每条命令之后都显示出修改之处
autowrite(aw) noaw 在:
n,:
!
命令之前都自动保存文件
beautify(bf) nobf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vi 编辑器