vi文本命令操作


     vi是在Unix/Linux命令行下常用的文本编辑工具,在日常配置和管理过程中经常用到,是一个非常强大又实用的好工具;这里就我自己在使用过程中通常用到的一些命令,当然很多也是从网上找到的,使用过后觉得很不错,总结下,与大家分享




本文中“s”为表示替换动作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行尾

vi文本编辑器


Vi编辑器的基本使用
1、vi编辑器的启动与退出
   # vi                       新建一个空白的文档。
2、退出vi编辑环境
   # q!                      强制退出编辑器(不保存当前的修改)。
3、进入编辑环境并打开文件
   # vi file            指定打开某文档。
文件操作
1、打开新文件
   : e  filename           打开文件(请确认当前正编辑文件已经保存,不然无法执行)。
   : e! filename           强制关闭当前文件(不保存)并打开指定文件。
2、读取文件内容到当前文件
   :r filename              读取参数中的文件,并将文件粘贴到光标所在行的下面(类似插入)。
3、保存文件
   : w                        常规保存文件。若当前文件没有文件名执行命令时会提示输入文件名。
   : w filename            另存为文件,使用指定另存为的文件名作为参数。
   : w!                       对于没有写入权限的文件强行写入。只限于root帐户!
4、退出vi编辑器
   : q                         适用于已经保存或没有修改过的文件。
   : wq                      保存并退出。
   : q!                        强行退出,不保存当前的修改。
光标移动操作
1、光标方向移动
          h 左 、l右、k上、j下
2、翻页移动
   ctrl+f:向前翻整页、ctrl+b向后翻整页、ctrl+u向前翻半页、ctrl+d向后翻半页
3、行内快速跳转
   shift+^      将光标快速跳转到本行的行首。
   shift+$      将光标快速跳转到本行的行尾。
   shift+W     将光标快速跳转到当前位置的后一个单词的首字母。
   shift+b      将光标快速跳转到当前位置的前一个单词的首字母。
   shift+e      将光标快速跳转到当前位置的后一个单词的尾字母。
4、文件内行间快速跳转
   : set nu                  显示行号。
   : set nonu              取消显示行号。

编辑操作
1、进入输入模式
    i                       在当前光标处进入插入状态。                     
    a                      在当前光标后进入插入状态。
    A                      将光标移动到当前行的行末,并进入插入状态。
    o                      在当前行的下面插入新行,光标移动到新行的行首,进入插入状态。
    O                      将当前行的上面插入新行,光标移动到新航的行首,进入插入状态。
    cw                    删除当前光标到所在单词的尾部的字符,并进入插入状态。
    c$                     删除当前光标到行尾的字符,并进入插入状态。
    c^                    删除当前光标之前到行首的字符,并进入 插入状态。

2、输入模式的操作
   使用上下左右方向键进行光标的移动。
   home和end 键快速定位光标到行首和行尾。
   pageup pagedown 健进行文本的上下翻页。
   backspace (退格)键进行光标左侧字符的删除。
   delete 键删除光标位置的字符。

3、删除操作(命令模式)
   x       删除光标处的单个字符。                  
   dd     删除光标所在行。
   dw    删除当前字符到单词尾(包括空格)的所有字符。
   de     删除当前字符到单词尾(不包括单词尾部的空格)的所有字符。
   d$     删除当前字符到行尾的所有字符。
   d^     删除当前字符到行首的所有字符。
   J       删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容。
4、撤销操作(命令模式)
   u       撤销最近一次的操作,并恢复操作结果,可多次使用u来恢复已经进行了多步操作。
   U       撤销当前进行的所有的操作。(文件自上次保存到现在的操作)。
   ctrl+R   对使用u命令撤销的操作进行恢复。
5、复制操作(命令模式)
   yy      复制当前行整行的内容到vi缓冲区。
   yw     复制当前光标到单词尾字符的内容到vi缓冲区。
   y$      复制当前光标到行尾的内容到vi缓冲区。
   y^      复制当前光标到行首的内容到vi缓冲区。
   v       进入visual模式,选择要复制的文本

    #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词

  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
6、粘贴操作(命令模式)
   p        使用p命令读取缓冲区的内容并粘贴到光标当前的位置(不覆盖文件已有的内容)。
7、查找与替换操作:(末行模式)
   /word  自上而下的查找操作,
   ?word  自下而上的查找操作,
         输入n命令查找下一个匹配的字符串。
         输入N命令查找(由下而上)下一个字符串。
添加替换操作:

在行首尾添加字符串

从文本的第3行至20行的行首全部插入字符串“NewString”:

:3,20s/^/NewString/

从文本的每行行首全部插入字符串“NewString”:

:1,$s/^/NewString/
:%s/^/NewString/g


用下列命令在文本每行的行首添加字符串“NewString”,请注意空格的存在。

:g/^/s//NewString/g


从文本的每行行首全部插入字符串“NewString”:
:%s/$/newstring/
在1到20行的行尾添加 “newstring"
:1,20s/$/newstring/

在整个文件中替换

在整个文件中替换特定字符串,所用的命令如下:

:%s/old_string/new_string/g

如果仅将文件中的第1行到第10行中的“old_string”替换成“new_string”,那么使用下列命令:

:1,10s/old_string/new_string/





编辑器的多文件操作
1、多文件操作的vi启动
  #vi passwd fstab inittab
  vi编辑器将在当前的编辑屏幕中显示vi命令参数中的第一个文件,其他文件处于后台运行不显
  示的!vi编辑器在同一时刻只能编辑当前屏幕中的文件,如要编辑他文件需要进行文件切换!  
2、多文件切换
  显示多文件信息
   :args          察看多文件的排序。
  前后切换多文件
   :next          对vi中打开的多个文件进行向后切换。
   :prev          对vi中打开的多个文件进行向前切换。
   后面接上"!"可以在前后切换文件的同时丢弃对当前文件的修改内容。
  定位首文件和尾文件
   :first           对vi中打开的多个文件进行当前文件和首文件切换。
   :last            对vi中打开的多个文件进行当前文件和尾文件切换。
  快速文件切换
   ctrl+^         在两个文件之间进行切换,适用于参考对照进行的文本修改的环境下应用。
  分屏显示多个文件
   # vi -o xxx yyy zzz    水平分屏显示xxx yyy zzz 3个文件。
   # vi -O xxx yyy zzz    垂直分屏显示xxx yyy zzz 3个文件。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24668589/viewspace-702000/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24668589/viewspace-702000/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值