视觉设计基本要素vi基本操作方法知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
视觉设计基本要素v i基本操作方法知识
集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)
2016年04月
编写说明标题:vi基本操作方法
类别:文档
存放位置:培训资料\Unix\vi基本操作方法.doc 编辑软件:MicrosoftWordXP中文版
版本历史:
目录
一vi的操作模式............................................ 二进入vi .................................................. 三指令模式.................................................
3.1 进入输入模式...........................................
3.2 光标移动...............................................
3.3 视窗移动...............................................
3.4 删除操作...............................................
3.5 拷贝和粘贴操作.........................................
3.6 修改操作...............................................
3.7 指令重复...............................................
3.8 取消前一动作...........................................
3.9 查找字符串.............................................
3.10 查看编辑状况...........................................
3.11 括号匹配............................................... 四保存与退出............................................... 五环境设置................................................. 六执行指令................................................. 七重复指令................................................. 八切换到shell状态.........................................
vi的操作模式
vi提供两种操作模式:输入模式(insertmode)和指令模式(commandmode)。
在输入模式下,用户可输入文本资料。
在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。
进入vi
$vi filename[filenamefilename]
直接键入“vi+所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“Newfile”,否则显示该文件的当前内容。
filename可以是文件名,也可以是表达式如:*.c,*haha.*
也可以不指定文件名,直接进入编辑界面,这种方法用于编辑一个新文件,但是暂时还没有确定文件应该叫什么名字时。
$view filename
以只读方式打开文件filename
vi+nfilename:打开文件,并将光标置于第n行首
vi+filename:打开文件,并将光标置于最后一行首
vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处
vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename vifilename....filename:打开多个文件,依次编辑
指令模式
以下指令集中重要度为“***”的必须掌握的指令,否则无法正常使用
vi,重要度为???的为建议掌握的指令,可以更方便地使用vi,其它属于技巧级指令,可以不掌握。
下面所列的所有命令,都必须在指令模式下才能执行,在输入模式下将把输入的字符作为文件内容添加到文件中(ESC除外,因为该命令将从输入模式切换到指令模式)。
进入输入模式
输入结束后,按Esc键退出输入模式。
光标移动
5个字节,10j表示向下移动10行。
n$:光标下移n-1行,并置到尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
ctrl+g:会显示该文件名称,该行的行号,文件中最末行的行号,光标所在行占总行号的百分比
fx:往右移动到x字符上
Fx:往左移动到x字符上
tx:往右移动到最近的x字符前
Tx:往左移动到最近的x字符后
(注意:以上四个命令中,其中x是键入的字符)
分号,配合f和t使用,重复一次
逗号,配合f和t使用,反方向重复一次
视窗移动
删除操作
在位置起的3个字符,3dd表示删除从当前光标所在行开始的3行。
拷贝和粘贴操作
修改操作
以后的5个字符,3cb表示替换当前光标及其之前的3个单词。
指令重复
在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n
取消前一动作
撤销上次修改,再执行u指令则撤销撤销操作。
如果执行了U,则u就没用了。
但是有些机器可能安装了vim软件,改软件保存所有的修改,因此u 可以一直进行撤销,想撤销撤销操作是不可能的事情。
查找字符串
查看编辑状况
括号匹配
配的“(”“)”“{”“}”的位置,c%表示替换从当前光标到配置的“(”“)”“{”“}”位置,y%表示拷贝从当前光标位置到其后匹配的“)”或“}”。
当光标不在“(”“)”“{”“}”上时,默认找其后最近的“(”,然后找“{”,如:
…
}
光标在&d%则效果为:
…
}
保存与退出
环境设置
执行指令
以下用具体的数字为例进行介绍,数字表示行数,光标所在行可用“.”代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
:g/s1/s/s2/s3/g第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串
:%s/old_word/new_word/g这个指令是于在整个文件中替换特定字符串
重复指令
切换到shell状态
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NOwrite信息nomagic:允许在搜索模式中,使用前面不带“\\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2con3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2mn3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2d:将n1行到n2行之间的内容删除
:w:保存当前文件
:efilename:打开文件filename进行编辑
:x:保存当前文件并退出
:wq:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2w!command:将文件中n1行至n2行的内容作为command的输入并执行之,
若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行。
1.交换两个字符位置
xp
2.上下两行调换
ddp
3.把文件内容反转
:g/^/m0/(未通过)
4.上下两行合并
J
5.删除所有行
dG
6.从当前位置删除到行尾
d$
7.从当前位置复制到行尾
y$如果要粘贴到其他地方p就可以了
由于vi是建立在EX上的所以当键入:时就来到了EX命令状态
8.写简写,跳出全称
:abstringstrings
例如":abusaUnitedStatesofAmerica",
当你在文见里插入usa时
UnitedStatesofAmerica就蹦出来了
9.
:mapkeysnew_seq
定义你当前键盘命令
10.显示行号
:set[all]
viorex的编辑状态
如显示每行:setnu
取消现实行号:setnonu
11.
在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的下面。
12.
单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S
17.vi环境选项Solarisksh
noautoindentnomodelinesnoshowmode
autoprintnonumbernoslowopen
noautowritenonovicetabstop=8
nobeautifynooptimizetaglength=0
directory=/var/tmpparagraphs=IPLPPPQPPLIpplpipnpbtags=tags/usr/li b/tags
noedcompatibleprompttagstack
noerrorbellsnoreadonlyterm=vt100
noexrcredrawnoterse
flashremaptimeout
hardtabs=8report=5ttytype=vt100
noignorecasescroll=11warn
nolispsections=NHSHHHUuhsh+cwindow=23
nolistshell=/bin/kshwrapscan
magicshiftwidth=8wrapmargin=0
mesgnoshowmatchnowriteany
ForC-Shell:
setenvEXINIT"setnu"
ForBourneorKornShell:
EXINIT="setnu";exportEXINIT
ForKornShellOnly(alternatemethod):
typeset-xEXINIT="setnu"
在.profile里设置vi的环境选项,以上均测试过
18.标记文本
mchar 用字母char标记当前光标的位置
`char 移至char所标记处
'char 移至char标记所在行的开头处
" 移至当前行上一次所在位置(在光标移动之后)――一个双引号
'' 移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号
19.如何在两个文件之间快速切换(注意:必须是一个窗口打开的文件)
方法一:同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi 的文件和上次vi 的文件之间切换。
但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,屏幕底部仍然显示目前vi的是刚才的文件。
(在HP-UX,Solaris,AIX上通过)
方法二:也可以使用:
:e#
进行切换
方法三:还可以用
:n---?在这里n代表next
进行切换
20.
sco下VI要在文本前同样的字符加用
%s/^/要加的内容/g要在文本后同样的字符加
%s/$/要加的内容/g。