




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux操作系统 文件编辑器vi 周炯 上海艾基信息技术有限公司 1Acegene IT Co. Ltd. Linux文本编辑器vi vi的基本操作 vi高级编辑命令 vi的设置 2Acegene IT Co. Ltd. 3.1 进入vi vi是一个较大的UNIX命令,在启动的时候 也有它自己的选项和参数 基本语法: vi -options +n file 常用选项有:-r, -R -r用于恢复系统突然崩溃时正在编辑的文件 -R用于以只读方式打开文件 +n用来指明进入vi后直接位于文件的第n行, 如果不指定n,则位于最后一行 3Acegene IT Co. Ltd. 3.2 vi的工作方式 vi一共有三种工作方式:命令方式、插入 方式和行方式: 命令方式 插入方式 行方式 插入命令 Esc Esc 命令执行完 : 4Acegene IT Co. Ltd. 一、命令方式 无论用户处于什么状态,按Esc键或组合键 Ctrl+ 就可以进入命令方式。当用户初 始进入vi时,也处于这个状态。 用户在命令方式下可以输入各种合法的vi 内部命令,这些命令不会回显不会回显,而且不需不需 要回车就会被执行要回车就会被执行 5Acegene IT Co. Ltd. 二、文本插入方式 在命令方式下使用某些命令会导致vi马上 进入文本插入方式,这些命令包括: i,I,a,A,o,O等 在这种方式下用户的任何输入都被当作是 文件的内容看待,并将其显示在屏幕上。 6Acegene IT Co. Ltd. 三、最后行方式 行方式又称为最后行方式,通过在命令方式下键 入冒号:可进入这个方式,在这种方式下vi会在 屏幕的最后一行显示一个冒号并等待用户输入命 令 行方式下用户输入的命令将回显在最后一行上, 并且直到用户输入回车vi才会去执行它 命令执行完毕后,vi自动进入命令状态 或者在输入命令时敲Esc键或组合键Ctrl+ 、 或用退格键删除所有的输入之后再按一下退格键 回到命令方式 7Acegene IT Co. Ltd. 3.3 基本编辑命令 移动光标(cursor movement) Bksp左移一个字符 Space右移一个字符 Enter,+下移一行 h左移一个字符 l右移一个字符 j下移一行 k上移一行 8Acegene IT Co. Ltd. 3.3 基本编辑命令 nG 跳到第n行 w,W跳到下一个词的词头 b,B跳到上一个词的词头 e,E跳到下一个词的词尾 跳到行首(第一个非空字符) 0跳到行首 $跳到行尾 9Acegene IT Co. Ltd. 3.3 基本编辑命令 Ctrl-u向下翻滚1/2屏 Ctrl-d向上翻滚1/2屏 Ctrl-f向下翻滚1屏 Ctrl-b向上翻滚1屏 Ctrl-n向下移动一行 Ctrl-p向上移动一行 上述命令(除nG外)的前面均可增加一个 数字来控制移动的次数 10Acegene IT Co. Ltd. 3.3 基本编辑命令 修改文本命令(modification) nr用字符char代替光标处的 字符,n指定字符char出现的次数。n缺省为1 。 nR用text的内容替换当前行n 次。 n缺省为1。命令执行完后处于插入方式 ,必须按Esc键或组合键Ctrl+回到命令方式 。 Cw,cw,cc替换一个词或替换到行尾 11Acegene IT Co. Ltd. 3.3 基本编辑命令 编辑中的每一行正文都有自己的行号,用 下列命令可以移动光标到指定行: :n将光标移到第n行 命令模式下,可以规定命令操作的行号范 围。数值用来指定绝对行号;字符“.”表示 光标所在行的行号;字符 符“$”表示正文 最后一行的行号;简单的表达式,例如 “.+5”表示当前行往下的第5行。例如: :345将光标移到第345行 12Acegene IT Co. Ltd. 3.3 基本编辑命令 在编辑模式下正确定位光标之后,可用以 下命令切换到插入模式(Insert): i 在光标左侧输入正文 I 在光标所在行的开头输入正文 a 在光标右侧输入正文 A 在光标所在行的末尾输入正文 o 在光标所在行的下一行增添新行 O 在光标所在行的上一行增添新行 13Acegene IT Co. Ltd. 3.3 基本编辑命令 删除文本命令(delete) x删除当前光标所在位置的字符 X删除光标前的字符 dd删除当前行 D删除从当前光标位置直到行尾的所有字 符 d 删除从当前光标位置直到 参数指定的位置 14Acegene IT Co. Ltd. 3.3 基本编辑命令 字符串搜索(search) /pattern/offset /pattern ?pattern?offset ?pattern 上述四个命令分别表示向下/向上搜索指定的 正则表达式pattern,并将光标停留在相对 搜索结果距离为offset行处 15Acegene IT Co. Ltd. 3.3 基本编辑命令 n重复命令, 搜索得到使用结果后,可以重复 命令n或N沿着相同或相反的方向重复上一次的 搜索 f命令在当前行搜索指定的字符并将光 标停在匹配字符上 t命令在当前行搜索指定的字符并将光 标停在匹配字符的左边 16Acegene IT Co. Ltd. 3.3 基本编辑命令 字符串替换(Substitute) 此命令要求先进入行方式 命令的语法为: addr1,addr2|gs/find_exp/repl_exp/g|n c 上述命令表示在第addr1行到addr2行的范围内将字 符串find_exp用repl_exp代替。 n表示替换每行的第n个匹配,c表示需要用户确认 g放在命令末尾,表示行全程,不加g,表示只对搜索 字符串的首次出现进行替换;g放在命令开头,表示对 正文中所有包含搜索字符串的行进行替换操作。 17Acegene IT Co. Ltd. 3.3 基本编辑命令 重复前一命令:. 取消上一命令:u 重画屏幕:Ctrl-l Ctrl_G命令显示当前编辑文本的状态,包 括文本共有多少行、文件名以及目前光标 停在多少行。 文件的保存:行方式下使用w命令 18Acegene IT Co. Ltd. 3.3 基本编辑命令 退出vi:行方式下使用q命令将退出vi, 如果文件作过改动但还没有保存,系统将 作出提示并取消此次退出动作。行命令x相 当于:wq命令。在命令方式下使用命令ZZ 等效于:x命令。 如果由于读写权限或是更新方面的问题, 导致vi拒绝执行保存文件或退出vi的命令 ,那么可以在命令后加一个!号表示强制执 行。 19Acegene IT Co. Ltd. 3.4 高级命令 文件操作命令 addr1,addr2w! filename:将编辑缓 冲区的addr1行到addr2行之间的内容写回到存储 介质上的名为filename的文件中去,w后的!表示 强制写入。 r filename : 将文件filename读入编辑缓 冲区 e filename : 编辑已存在于缓冲区中的、名 为filename的文件 f filename : 将当前文件重命名为 filename f : 打印当前文件名称和状态,如 文件的行数、光标所在的行号等 上述命令属于行方式 20Acegene IT Co. Ltd. 3.4 高级命令 文本的移动和复制 addr1,addr2maddr3 addr1,addr2taddr3 上述行方式下的命令分别表示将第addr1行至 第addr2行之间的内容移动/拷贝到第addr3 行的后面 行的合并 命令方式下的命令J将当前行的下面一行合并 到当前行的末尾 21Acegene IT Co. Ltd. 3.4 高级命令 缓冲区操作 vi提供36个编辑缓冲区,它们分别为a-z共26个命名缓冲区,1- 9共9个删除缓冲区,另外还有一个未命名的缓冲区,一般称之为 buffer 0。 将文本内容送入缓冲区的命令为: “charny|y|w|l Char表示缓冲区的名字,小写表示覆盖写入,大写表示追加写入 n表示重复次数 表示想要写入缓冲区的文本的范围,从光标的 当前位置算起。 y表示以行为单位 w表示以词为单位 l表示以字符为单位 从缓冲区中提取其内容并将其插入在当前文本的命令为: “charp|P P表示放在当前位置之前,p表示放在当前位置之后 22Acegene IT Co. Ltd. 3.4 高级命令 在vi内使用shell 用户在运行vi的过程中不用推出vi就可以运行 任何UNIX命令: :! 在unix_cmds参数中,可以使用%作为当前文件 名的缩写,用#作为上次编辑文件的缩写,用!作为 上次命令的缩写 23Acegene IT Co. Ltd. 3.4 高级命令 使用自定义的缩写 :abbr|ab str1 str2命令用用户自定义的字符 串str1来代替字符串str2 :unab|una str1取消缩写str1 上述四个命令都是行方式下的命令 24Acegene IT Co. Ltd. 3.4 高级命令 宏 :map key cmds_list 此时key必须是一个单独的字母。或是一个Ctrl加上 一个字母 此时定义的是宏命令 :map! key string 此时key必须是一个单独的字母。或是一个Ctrl加上 一个字母 此时定义的是宏字符串,用于文本输入方式 :unmap key将取消key的宏定义 25Acegene IT Co. Ltd. 3.4 高级命令 要注意的是在输入Ctrl+key的转义序列时必须 先按下下列组合键:Ctrl-v。 如果cmds_list是行方式下的命令,那么在其 末尾必须加上一个回车,输入方法为先输入 Ctrl-v,然后输入Ctrl-m。 Ctrl-m代表回车 。 26Acegene IT Co. Ltd. 3.5 vi的配置 vi的配置共有三种方法, 一种是在运行vi时使用行命令set来设置; 一种是使用EXINIT环境变量; 最后一种是使用用户主目录下的.exrc文件。 vi的显示是输出到终端上的,所以终端的类 型会对vi的显示造成影响。 终端类型设置是使用TERM环境变量 (ansi, vt100): $TERM=ansi;export $TERM 27Acegene IT Co. Ltd. 一、行方式下的设置 为控制不同的编辑功能,vi 提供了很多内 部选项。在行方式下使用命令set可以显 示和修改vi的各种内部环境变量。 基本语法: :set argument=value 28Acegene IT Co. Ltd. 一、行方式下的设置 命令set的参数及其功能如下: all列出所有选项设置的情况 term设置终端类型 ignorecase 在搜索中忽略大小写 list显示制表符(I)和行尾标志(M) number 显示行号 report 显示由面向行的命令修改过的行数 ruler 在屏幕底部显示光标所在行、列的位置 terse 显示简短的告警信息 warn 显示简短的未保存告警 nomagic 取消元字符在搜索字符串中的特殊性 nowrapscan 搜索时不回绕 mesg 允许vi显示其他用户用write写到自己终 端上的信息 shiftwidth指定自动缩进的制表位 autoindent 自动缩进 directory指定编辑缓冲区的路径 showmode 显示文本插入方式 window设置显示的文本行数 mk 将选项保存在当前目录的 .exrc 文件中 tabstop 设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8 29Acegene IT Co. Ltd. 二、永久设置方式 上面所说的:set命令在退出vi后就失效了, 下次进入vi还需要重新设置 我们可以将上述:set命令写在一个名为 /.exrc的文件中,这样每次进入vi就会自 动执行。 或者将需要用到的:set命令保存在EXINIT 环境变量中。 30Acegene IT Co. Ltd. 3.6 vim和gvim的高级特色 vim 代表 Vi IMproved,如同其名称所暗 示的那样,vim 作为标准 UNIX 系统 vi 编辑器的提高版而存在。 vim 除提供和 vi 编辑器一样强大的功能外,还提供有多级 恢复、命令行历史以及命令及文件名补全 等功能。 gvim 是 vi 的 X Window 版本,该版本 支持鼠标选中,一些高级
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机关事业单位工人招聘《机动车驾驶员》技师考试题库及答案
- 2024年公路水运检测师桥隧模拟题及答案
- 2019年1月国开电大法律事务专科《行政法与行政诉讼法》期末纸质考试试题及答案
- 2025 年小升初成都市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 江苏省2025年会计从业资格《会计基础》模拟试题
- 2025起重机械检验员年终总结400字
- 社区网格长安全知识培训课件
- 泸州市合江中学高2024级高一上学期期末考试地理试题(试卷)
- 工厂托盘出售合同范本
- 农机管路维修合同范本
- 小孩办理身份证授权委托书
- 外科学 泌尿系统损伤
- 齐鲁名家 谈方论药智慧树知到期末考试答案2024年
- 八年级英语下学期阅读理解20篇
- (高清版)DZT 0227-2010 地质岩心钻探规程
- 专家委员会组建方案
- 柠檬酸在提高尿素呼气试验诊断幽门螺杆菌感染准确性中作用护理课件
- 急诊科急诊超声检查在腹部外伤中的应用培训
- 妇产科学课件:妊娠合并病毒性肝炎
- 阿米巴经营模式在企业中的应用
- 路基分层-表格-
评论
0/150
提交评论