首页计算机计算机软件Unix&Linux教程 22 第22章 vi文本编辑器.pptx

22 第22章 vi文本编辑器.pptx

页数:53页文件大小:120.5 KB来源: Unix&Linux教程ppt课件

本课件讲解vi文本编辑器:vi与vim的启动、命令模式与输入模式的切换、光标移动与搜索、文本的插入修改删除与撤销、选项设置、与shell命令协作处理数据,以及缩写、宏与初始化文件。

第22章vi文本编辑器封面,标示本章讲解的vi启动、模式切换、编辑命令与初始化文件
本章需要解决的几个问题说明页,怎么使用vi编辑文本文件?
22.4启动vi要点讲解,涵盖语法定义、帮助等
查看本课件的文字版(共 53 页,供检索与复制)

第1页:第22章vi文本编辑器

本页为第22章vi文本编辑器的章节封面,标示本章讲解的vi启动、模式切换、编辑命令与初始化文件。

第2页:本章需要解决的几个问题

  • 怎么使用vi编辑文本文件?

第3页:22.4启动vi

语法定义
vi[-rR][file…]
帮助
按h

第4页:22.5启动vim

语法定义
vim-C[-rR][file…]其中:-C:以兼容模式运行vim例:vim-c essayvim-c

第5页:22.6命令模式和输入模式

  • 编辑缓冲区使用vi时,存放数据的存储区域称为编辑缓冲区。由此可见,vi编辑的不是原文件,而是原文件的一个副本。

第6页:22.6命令模式和输入模式

  • 命令模式和输入模式-在命令模式中,所有的输入都被解释成命令。-在编辑模式中,输入的任何内容都被放入到编辑缓冲区内。-启动vi时,默认是命令模式。

第7页:22.7了解所处的模式

  • 确定模式的方法
  • 如果处于命令模式,按下<Esc>,会发出嘀嘀声
  • 如果不知道处于哪种模式,按两下<Esc>,会切换到命令模式
  • 使用内部选项showmode,使用的命令是::set showmodevi在屏幕底部会显示当前的模式

第8页:22.8以只读方式启动vi

  • 只读的原理-编辑缓冲区的内容不写回原文件
  • 只读的方法-vi-R-view

第9页:22.9系统失败后数据的恢复

  • 恢复的原理-编辑缓冲区的内容会不时地保存到临时文件中,一旦vi非正常终止。vi可以利用临时文件恢复已编辑的内容。
  • 恢复的方法-vi-r

第10页:22.10停止vi

  • 保存工作,然后退出-在命令模式下,输入ZZ
  • 不保存工作退出-在命令模式下,输入:q!<Return>

第11页:22.11 vi使用屏幕的方式

  • 屏幕的布局-命令行(1行):屏幕底部的一行。-编辑区(24行):除了命令行的区域。在编辑器内,已使用的行前面有行号,未使用的行前面标记为~。

第12页:vi使用屏幕的方式:输入控制字符-按下^

  • 输入控制字符-按下^V和控制字符。
  • 重新显示编辑缓冲区内容-按下^L。

第13页:22.12使用vi和ex命令

  • vi命令
  • 命令短,一般是1到2个字符
  • 输入直接执行,不需要输入<Return>-命令不回显
  • ex命令
  • 命令较长,以冒号开头
  • 需要输入<Return>才执行
  • 在命令行上回显

第14页:22.13学习vi命令的策略

  • vi命令的分类
  • 移动光标的命令
  • 进入输入模式的命令
  • 进入修改模式的命令

第15页:22.15移动光标

  • 移动的基点-当前行和当前字符

第16页:22.15移动光标:移动的方式1.以字符

  • 移动的方式1.以字符为单位移动2.以单词为单位移动3.以标点符号为单位移动4.以句子为单位移动5.以行为单位移动6.以屏为单位移动

第17页:22.16在编辑缓冲区中移动

移动编辑缓冲区中的显示内容
^F:向前移动一屏^B:向后移动一屏^D:向前移动半屏^U:向前移动半屏例如:6^F10^B

第18页:22.17跳转到前一位置

跳转到前一位置
-输入``(两个反引号)
跳转到指定行
-给指定行加一个标签,例如标记当前行为a,可以输入:ma-输入`a,可以跳转到a行

第19页:22.18搜索模式

向前搜索
-输入:/pattern-重复搜索该模式:/
向后搜索
-输入:?pattern-重复搜索该模式:?

第20页:22.18搜索模式:n和N-n

n和N-n
采用和原始命令相同的方向继续搜索-N:以相反的方向搜索

第21页:22.19使用行号

设置行号
set number
取消行号
set nonumber

第22页:22.19使用行号:跟行号相关的操作nG

  • 跟行号相关的操作nG跳转到第n行n跳转到第n行gg跳转到第一行G跳转到最后一行:$跳转到最后一行

第23页:22.20插入文本

  • 相关的命令i改变到输入模式;在当前光标位置前插入数据a改变到输入模式;在当前光标位置后插入数据I改变到输入模式;在当前行首插入数据A改变到输入模式;在当前行尾插入数据o改变到输入模式;在当前行的下面插入数据O改变到输入模式;在当前行的上面插入数据

第24页:22.21修改文本

  • 相关的命令r精确替换一个字符R改变到输入模式;以覆盖方式替换s改变到输入模式;以插入方式替换一个字符C改变到输入模式;以插入方式从当前光标处替换到行尾cc/S改变到输入模式;以插入方式替换当前行cmove改变到输入模式;以插入方式替换到当前光标到move处。

第25页:22.22替换文本

  • 相关的命令:s/pattern/replace/替换当前行:lines/pattern/replace/替换指定行:line,lines/pattern/replace/替换指定范围的行:%s/pattern/replace/替换所有行

第26页:22.23删除文本

  • 相关的命令x删除当前光标处的字符X删除当前光标左边的字符D删除当前光标到行尾的字符dmove删除当前光标到move的字符dd删除当前行:lined删除指定行:line,lined删除指定范围的行

第27页:22.24撤销或重复改变

  • 相关的命令u撤销上一命令对编辑缓冲区的修改U恢复当前行.重复上一命令对编辑缓冲区的修改

第28页:22.25恢复删除

  • 删除的内容在哪里?-vi将保存最近9次删除的内容,保存的区域称为编号缓冲区,编号从1到9。
  • 使用删除的内容-输入:”np或”nP”np将n号缓冲区的内容插入到当前行的上面”nP将n号缓冲区的内容插入到当前行的下面

第29页:22.26移动文本

  • 无名缓冲区-保存上一次删除的内容

第30页:22.26移动文本:利用无名缓冲区移动文

  • 利用无名缓冲区移动文本p复制上次删除的内容到当前光标的后面P复制上次删除的内容到当前光标的前面xp调换两个字符deep调换两个单词ddp调换两行

第31页:22.27复制文本

  • 将复制内容接出到无名缓冲区yw接出1个单词y10w接出10个单词y10W接出10个单词(忽略标点符号)yb向后接出1个单词y2)接出2个句子y5}接出5个段落yy接出1行10yy接出10行

第32页:22.27复制文本:将复制内容接出到无名

  • 将复制内容接出到无名缓冲区Y接出当前行y$接出当前字符到行尾y0接出行首到当前字符

第33页:22.28改变字符的大小写

  • 大小写交替改变-光标移动到需要改变的字符上,输入~-连续输入~,就能继续改变后面的字符

第34页:22.29设置选项

  • 相关命令:set[no]option…:setoption[=value]…例如::set number:set nonumber:set tabstop=4

第35页:22.30显示选项

  • 相关命令:set[option[?]… |all]例如::set number?:set all:set (显示改变了默认值的选项)

第36页:22.31在键入过程中自动换行

  • 相关命令:set wrapmargin=n含义:当距离有边缘n行时,自动换行例如::set wrapmargin=6:set wm=6:set wm=1(尽可能长):set wm=0(关闭自动换行)

第37页:22.31在键入过程中自动换行:自动缩进

自动缩进
set autoindent含义:当前行相对于上一行的缩进

第38页:22.32分隔与连接行

  • 分隔行-将光标移到需要分隔的位置,输入:r<Return>
  • 连接行-输入:J<Return>,会将当前行和下一行合并

第39页:22.33复制与移动行

相关命令x[,y]
coz复制行x[,y]:mz移动行其中:x,y,z:行号

第40页:22.33复制与移动行

  • 例子:5co10复制第5行,插入到第10行下面:4,8co20复制4-8行,插入到第20行下面:5m10移动第5行,插入到第10行下面:4,8m20移动4-8行,插入到第20行下面

第41页:22.34输入shell命令

方法1
不影响vi运行,执行单条shell命令:!command:!!
方法2
暂停vi,启动一个新shell:sh:!bash:!tcsh

第42页:22.35将文件中的数据插入到编辑缓冲区

相关命令
[line]rfile其中:line:行号file:文件名

第43页:22.35将文件中的数据插入到编辑缓冲区

  • 例子:10r info读取info内容,插入到第10行之后:0r info读取info内容,插入到开头:$rinfo读取info内容,插入光标位置

第44页:将shell命令的输出插入到编辑缓冲区

相关命令
[line]r !command其中:line:行号command:命令名

第45页:22.37使用程序处理数据

  • :fmt
  • 相关命令n!!command含义:从当前开始的n行上执行执行command!move command含义:从当前行到move行执行command

第46页:22.37使用程序处理数据

例子
5!!sort10!!fmt!}fmtgg!Gfmt

第47页:22.38将数据写入文件

  • 相关命令::w将数据写入到原始文件:wfile将数据写入到file文件:w!file覆盖file文件:w>>file将数据追加到file文件

第48页:22.39切换到一个新文件

  • 相关命令::efile编辑file文件:e!重新编辑当前文件,忽略自动检查:e!file重新编辑file文件,忽略自动检查

第49页:22.40使用缩写

  • 相关命令::ab[short long]:unashort例如::ab eg exceptionally gifts:una eg:ab

第50页:22.41宏

相关命令
:map[x commands]unmapx其中:x:一个字符commands:vi或ex命令序列

第51页:22.41宏

  • 例子::map K deep:map g 1G:map * I^V<Esc>:map #1 :set all:map:unmap K

第52页:初始化文件:.exrc、.vimrc

隶属关系
.exrc是vi的初始化文件.vimrc是Vim的初始化文件
存放位置
home目录中

第53页:初始化文件:.exrc、.vimrc

  • 初始化文件结构:1. Optionsset autoindent2. Abbreviationsab h Harley3. Macrosmap K deep4. Shell commands!date; sleep 2
顶部目录