第3章 vi编辑器的使用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 取代命令r和R(1:1)
• r<字符>:用输入的“字符”代替当前光标处字 符 • R:用随后输入的文本取代从当前光标处到其后 面的若干字符,直到按<Esc>结束 • s:用随后输入的文本替换当前光标所在的字符 • S:用新输入的正文替换光标当前行(整行) • cw替换的是狭义上的字,将某个字的内容用其 他文本串替换
vi中的句、段
• 句:以逗号、句号、问号和感叹号结尾, 且其后至少有两个以上空格或一个换行 符的字符序列。 • 段:以空白行开始和结束的片段(结合 {和}文本块移动命令理解,表3-3)
2. 光标移动操作
• 插入模式:直接使用方向键移动光标 • 命令模式下,相对文本移动:
– – – – 在当前行移动光标(表3-1) 在行间移动光标(表3-2) 在文本块间移动光标(表3-3) 将光标移至[行号] 指定行的行首:[行号]G 常用: h~← j~↓ k~↑ l~→
1. 由行编辑器发展而来 2. 双手不必离开键盘就可完成所有操作 3. 不依赖于鼠标和功能键 (home/end/pageup/pagedown/...) 4. 在命令模式下,所有的输入都当作命令看待 5. 在文本输入模式下,所有的输入都当作文本
3.1 vi简介
• • • • 行编辑器:ed、ex 全屏幕编辑器:vi、emacs vi:visual interface vi可执行输出、删除、查找、替换、块操作等 操作 • 三种基本工作模式:
– 替换命令s和S(1:n)
– 字替换cw(n:n)
4. 命令模式下的编辑(续)
• 文本行合并
– [n]J:把光标所在行与下面n-1行合并为一行
• 文本复制与粘贴
– – – – –
狭义 or 广义
Hale Waihona Puke Baidu
yw:将光标所在位置到字尾的字符复制到缓冲区 [n]yw:光标所在位置开始的n个字复制到缓冲区 yy:将光标所在的行复制到缓冲区 [n]yy:将光标所在行及其后n-1行复制到缓冲区 p:粘贴文本,将缓冲区字符粘贴到光标所在位置
3.1 vi简介
Vi是“Visual”的意思,几乎所有的UNIX 系统都提供这个程序。它是一种全屏幕 编辑程序。这里的屏幕是文本对外显示 的窗口,在这个窗口内,用户可以自由 地移动光标,对文本中的字符、字、行、 段进行插入、删除和修改等操作,并通 过上下移动窗口,对文件的全部内容进 行操作。
vi的特点、及几个基本概念
:
末行模式
<ESC>
3.2 vi的进入与退出
• 进入vi:在终端shell提示符后键入vi
3.2 vi的进入与退出(续)
3.2 vi的进入与退出(续)
• 保存文件准备退出vi的几种方法:
– 命令模式:连按两次大写字母Z,对文件保 存并退出 – 末行模式:
• w:保存当前文件,但不退出vi • w<newfile>:保存当前文件到指定文件newfile 中,而原有文件保持不变,相当于office word 中的“另存为” • w!<newfile>:保存当前文件到指定文件newfile 中,若newfile已存在,则覆盖原有内容
• 附加命令:a或A
– a:光标之后插入 – A:行尾插入
• 打开命令:o或O
– – o:光标下一行插入 O:光标上一行
6. 重复与取消命令
• 取消命令,也称复原命令
– 命令模式下,输入u和U – u与Ctrl+z类似
• 重复命令
– 命令模式下,按“.”键
光标移动指令
• 对应方向键移动
h 左移一字符 k 上移一行 j 下移一行 l 右移一字符
作业
• 书本page 49 • 习题:2,3,5
3.2 vi的进入与退出(续)
• 退出vi,返回到shell: • 末行模式:
– – – – q:系统退出返回shell q!:放弃所作修改,直接退出vi wq:先保存文件,再退出vi返回到shell x:文件保存并退出
3.2.3 浏览文件
• vi <filename>,退出时使用q! • view filename,以只读方式打开文件
4. 命令模式下的编辑(续)
– 文本块删除命令:
• • • • d):从当前字符开始删除到句尾 d(:从当前字符开始删除到句首 d}:从当前字符开始删除到段尾 d{:从当前字符开始删除到段首
– 相对屏幕删除
• dH:删除从当前行到屏幕首行的内容 • dM:删除从当前行到屏幕中间行的内容 • dL:删除从当前行到屏幕底行的内容
– Ctrl+u:向文件头方向翻滚半屏 – Ctrl+d:向文件尾方向翻滚半屏
• 命令模式下,分页命令:
– Ctrl+f或PgDn:向文件尾方向翻滚一屏 – Ctrl+b或PgUp:向文件首方向翻滚一屏
3. 屏幕滚动(续)
• 状态命令,显示文件名、是否修改、文 件行数、光标之前占整个文件的百分比, 光标所在行号和列号:
4. 命令模式下的编辑(续)
• 文本查找
– ?<pattern>回车:向文件头方向查找符合该 模式的文本(区分大小写) – / <pattern>回车:向文件尾方向 – n:向文件头方向重复前一个查找命令 – N:向文件尾方向重复前一个查找命令 如何理解?
4. 命令模式下的编辑(续)
• 文本修改:命令模式插入模式
– 命令模式 – 插入模式 – 末行模式
1. 命令模式
• 初始进入状态即为命令模式,可输入各 种合法的vi命令 • 若输入的字符不是vi合法命令,vi会响铃 报警。输入的命令不在屏幕上显示出来 • 不管用户处于何种模式,<Esc>键即可进 入命令模式
2. 插入模式
• 此模式下可进行文字输入 • 进入方法:命令模式下
– – – – – – 输入命令i 附加命令a 打开命令o 修改命令c 取代命令r 替换命令s
3. 末行模式
• 进入方法:在命令模式下按“:”键 • 多数文件管理命令都在此模式下执行 • 末行命令执行完毕后自动回到命令模式
vi的三种模式,及模式间切换
shell 命令状态 [root@hostname /]$ vi filename ZZ 命令模式 自动返回 aAi I o O 插入模式 :wq :q!
4. 命令模式下的编辑(续)
• 文本移动
1. 使用文本删除命令将要移动的文本删除: x dh dw db dd d0 d$ d) d( d{ d} 2. 使用光标移动命令将光标移动到目标位置 3. 使用p命令将刚删除的文本粘贴到目标位置
• 插入命令:i或I
5. 插入模式下的文本编辑
– i:光标所在位置插入 – I:行首插入
– c:c后紧跟光标命令,修改内容的范围从光 标当前位置开始到指定位置为止 – <n>C:可以修改从光标当前位置开始到该行 末尾 或 光标当前位置开始到某行末尾范围 内的内容 – <n>cc:修改从光标所在行的行首到该行末 尾或某行末尾范围内的内容
4. 命令模式下的编辑(续)
• 文件替换:命令模式插入模式
复制与粘贴指令
• 复制y
y<n> yw y0 y$ yG y1G yy 复制从当前位置开始的n个字符 复制从当前位置到下一词首 复制从当前位置到行首的所有字符 复制从当前位置到行尾的所有字符 复制从当前位置到文档末的所有字符 复制从当前位置到文档开始的所有字符 复制整行
• 粘贴p
p 将复制的内容 粘贴到光标后 P 将复制的内容 粘贴到光标前
第3章 vi编辑器的使用
福建师范大学数学与计算机科学学院
第3章 vi编辑器的使用
本章应知
• vi的进入和退出,几种工作模式及转化 命令 • vi基本编辑操作命令
第3章 vi编辑器的使用
本章应会
• vi的进入和退出,工作模式的转化命令 • 熟练使用vi的光标移动命令
• 熟练掌握在命令模式和插入模式下,对 文本进行编辑
2. 光标移动操作(续)
• 命令模式下,屏幕上移动:
– H:移至屏幕首行的行首,即当前屏幕的第 一行第一列 – M:将光标移到屏幕显示文件的中间行的行 首 – L:当文件显示内容占满一屏时,将光标移 至屏幕上的最底行的行首,若文件显示内容 不足一屏时,光标移至文件的最后一行行首
3. 屏幕滚动
• 以屏幕为单位移动光标 • 命令模式下,滚屏命令:
查找和替换指令
• 查找
/string ?string n N 从光标当前位置向下查询字符串string 从光标当前位置向上查询字符串string 重复上次向下查找 重复上次向上查找
查找和替换指令
• 替换指令(末行模式下)
(1):1,$s/oldstr/newstr/g 在全文范围用newstr替换oldstr (2):n,ms/oldstr/newstr/g 在第n行到第m行内用newstr替换oldstr
说明参数g后可跟参数c,表示在替换前需用户确认。
如: :1,20s/jason/Jason/gc
在1到20行内用Jason替换jason,并每次替换要 求用户确认。
其他指令
• u undo 撤消上一次操作 • U 撤消对当前行的所有操作,恢复到原来状 态。 • :e newfilename 不退出vi,编辑其他文件 • :r otherfilename 在光标位置读入其他文件 • :!cmd 执行shell命令cmd • :r!cmd 执行shell命令并把运行结果插入当前 光标处 • :n,m w filename 把第n到m行的内容存入文件
• 按单词单位移动
b 移到词首 e 移到词尾 w 移到下一词首
• 按行单位移动
0 移到行首 nG 移到第n行 $ 移到行尾 G 移到最后一行 ^ b 上卷一屏 ^ u 上卷半屏
• 按页单位移动
^ f 下卷一屏 ^ d 下卷半屏
删除字符指令
• • • • • • • • • x 删除当前光标处的字符 dh or X 删除当前光标前一个字符 dw 删除当前字 db 删除前一个字 dd 删除当前行 d0 删除从当位置到行首的所有字符 d$ 删除从当位置到行尾的所有字符 dG 删除从当位置到文档末的所有字符 d1G 删除从当位置到文档开始处的所有字符
3.3 vi编辑操作命令
1. 显示文件的行号 末行模式下输入:set number 或 :set nu
vi中的字
• {int k; • 广义的字:“{int” “k;” • 狭义的字:“{” “int” “k” “;”
– 英文单词、标点符号、非字母字符均作为一 个字 – 使用大写命令一般是将字作为广义的字来对 待,使用小写命令则将字作为狭义的字对待
– Ctrl+g
• 屏幕调零命令:
– [行号] z [行数] <回车>:指定行首 – [行号] z [行数] .:指定中间行 – [行号] z [行数] -:指定最末行
4. 命令模式下的编辑
– 字符删除命令:
• x:删除当前字符 • dh:删除当前一个字符
– 字和行删除命令:
• • • • • • dw:删除当前字 db:删除当前一个字 dd:删除当前行 d$:删除从当前字符开始到行尾的所有字符 d0:删除从前一个字符开始到行首的所有字符 <n>dd:删除从当前行开始的连续n行
相关文档
最新文档