vi编辑器的三种模式
  1、命令模式(command mode)—执行命令
  在该模式中,可以输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
  2、输入模式(Insert mode)—输入文本
  vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)。
  3、末行模式(last line mode)—执行待定命令
  将文件保存或退出vi,也可以设置编辑环境,如寻字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将末行模式(last line mode)也算入命令行模式command mode)。
vi的三种模式
vi编辑器的启动与退出
  1. vi的启动
  输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。
  (1) vi
  进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。
  (2) vi file1
  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在该缓冲区第1行第1列的位置上。
  (3) vi + file1
  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件最后1行第1列的位置上。
  (4) vi +N file1(N:为数字)
  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件
第N行第1列的位置上。
  (5) vi +/string file1
  如果file1文件不存在将建立此文件;如该文件存在则将其拷贝到一个临时缓冲区。光标定位在文件中第一次出现字符串string的行首位置。
  2. 退出vi(末行模式(last line mode))
  建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。
vi命令中哪一条是不保存退出  (1) :w
  将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:
  :w filename(存入指定文件)
  :q
  (2) :wq
  即将上面的两步操作可以合成一步来完成,先执行w,后执行q。
  (3) :x和ZZ(注意: ZZ前面没有“:”)
  功能与(2)等价。
  (4) :q!(或:quit)
  强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容已被更改,将提示用户使用“:quit”命令退出。
vi编辑器常用命令
  1、在文件中移动
光标
  h:向左移动一个字符
  l:向右移动一个字符
  j:向下移动一行
  k:向上移动一行
  ^(即Shift+6):移动到当前行的开头处
  $(即Shift+4):移动到当前行的结尾处
  H(大写):使光标移动到屏幕的顶部
  M(大写):使光标移动到屏幕的中间
  L(大写):使光标移动到屏幕的底部
  Ctrl+b:上滚一屏。
  Ctrl+f:下滚一屏。
  Ctrl+d:下滚半屏。
  Ctrl+u: 上滚半屏。
  2、插入文本
  (1)添加:
  ●输入a后,在光标的右边插入文本
  ●输入A,在一行的结尾处添加文本
  (2)插入:
  ●通过在命令模式下输入i,在光标的左边插入文本
  ●通过在命令模式下输入I,在行首插入文本
  (3)插入新行:
  ●输入o,在当前光标位置下面打开一行
  ●输入O,在当前光标位置上面打开一行
  3、撤消更改
  (1)撤消前一个命令:在最后一个命令之后立即输入u来撤消该命令
  (2)重复某个命令:“.”
  (3)撤消对一行的更改:输入U来撤消你对一行所做的所有更改,这个命令只有在你没将光标移动到该行以外时才生效。
  4、删除文本
  (1)删除一个字符:
  ●为删除一个字符,需将光标放置在要删除的字符上并输入x
  ●为删除光标之前(其左边)的一个字符,需输入X
  (2)删除一个词或词的部分内容:
  ●为删除一个词,需将光标放置到该词的开头并输入dw
  ●为删除词的部分内容,需将光标放置到该词要保存部分的右边。输入dw来删除该词余下的部分
  (3)删除一行:将光标放置到该行的任意处并输入dd
  (4)删除多行:ndd
  (5)删除行的部分内容:将光标放置到该行要保存部分的右边,并输入D。为删除光标左边的所有内容,须将光标放置到该行要删除部分的右边,并输入d0(d-零)。
  (6)删除到文件的结尾:为删除从当前行到文件结尾的所有内容,需输入dG
  5、复制和移动文本
  ●复制一行命令:yy
  ●粘贴命令:p
  ●移动文本:先将要移动的部分用删除命令删除,然后再粘贴就可以了
  ●复制指定文件的内容
  : r filename
  6、查一个字符串
  ●输入/,并在/后面输入要查的串,然后按下回车
  ●输入“n”跳转到该串的下一个出现处
  ●输
入“N”跳转到该串的上一个出现处
  7、替换一个字符串
  ●在一行内替换头一个字符串old为新的字符串new
  :s/old/new
  ●在一行内替换所有的字符串old为新的字符串new
  :s/old/new/g
  ●在两行内替换所有的字符串old为新的字符串new
  :#,#s/old/new/g
  ●在文件内替换所有的字符串old为新的字符串new
  :%s/old/new/g
  ●进行全文替换时询问用户确认每个替换需添加c选项
  :%s/old/new/gc
  8、设置vi
  ●显示行号
  :set number
  ●取消行号显示
  :set nonumber
  ●设置显示用户模式
  :set showmode
  ●设置文件只读
  :set readonly
案例1、复制黏贴——Vi 编辑器如何将第一个文件的100~200行复制到另一个文件的第600行
1、 b.txt或者vi *.txt
2、文件间切换
:n切换到下一个文件,:wn保存再切换
:N到上一个文件,:wN保存再切换
:.=看当前行
3、比如在一个文件里:100,200y
4、:n到第二个文件,输入:600到第600行,按p粘贴
(或者输入:600p)
5、退出:wq!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。