vi/vim编辑器

  vi/vim是一个强大的文本编辑器,是linux/Unix上最常用的文本编辑器,它的作用是建立,编辑,显示文本文件。vi/vim没有菜单,只有命令。vim与vi相比具有颜色显示功能,并且支持许多程序语法。
  进入:vi/vim filename
 
  1.一般模式:一旦进入该文件,就是一般模式。在该模式下,可以使用“上下左右”光标,可以使用“删除字符”或者“删除整行”来处理文件内容,也可以使用“复制,粘贴”来处理文件数据。
   在一般模式下,输入“:或/或?”就可以将光标移到最下面的一行,在这个模式下,可以收缩数据,而且读取,存盘,大量删除字符,离开vi/vim,显示行号等操作都是在此模式下实现的。
 
  2.编辑模式:在一般模式下无法进行编辑操作,要等到按下“i I a  A o O r R”等字母后才会进入编辑模式。如果要回到一般模式时,则必须按下Esc键才可退出编辑模式
 
  3.命令行命令模式:
   :w  将编辑的数据写入硬盘文件中
   :w!如文件为只读时,强制写入该文件。不过,是否能真正写入与文件权限有关
   :wq 存储后离开
   :wq!强制存储后离开
   :q   离开vi
   :q! 若曾经修改过文件但不想存储,使用!为强制离开不存储
   :e! 将文件还原到最原始的状态
   ZZ   若文件没有更改则不存储离开,若文件已经更改则存储离开
   :w filename 将编辑的数据存储成另一个文件
   :r filename 在编辑的数据中读入另一个文件的数据,即将filename这个文件中的内容加到光标所在行的后面
   :set nu     显示行号,在每一行的前缀显示改行的行号
   :set nonu   取消行号
   :set autoindent 自动缩进
    {vim .vimrc 编辑这个文件将其写入就可自动显示行号}
   :! command  暂时离开vi到命令模式下执行command的显示结果
   :n1,n2 w filename  将n1到n2的内容存储成filename文件
 
  4.一般模式
 
   移动光标的方法:
  h 或者 方向键 光标向左 
  j             光标向下
  k             光标向上
  l             光标向右
  也可以“数字+h/j/k/l或者方向键”,就可以实现多次移动
   ctrl+t 屏幕向下移动一页
       +b     向上
       +d 屏幕向下移动半夜
       +u     向上
  n+空格 : 光标会向右移动这一行的n个字符
  数字0:移动到这一行的最前面的字符处
  $:移动到当前行的最前面字符处
  H:移动到屏幕的最上方的那一行
  M:移动到屏幕的中央的那一行
  L:移动到屏幕的最下方的一行
  G:移动到这个文件的最后一行
  nG(n代表数字):移动到该文件的第n行,一般配合set nu使用
  gg:移动到该文件的第一行
  n+<enter>:光标向下移动n行
 
 5.搜索,替换,删除,复制,粘贴:
  
   输入“/字符或者字符串” 可以搜索到这个字符
  “?/字符名”:从光标位置开始,向上寻找该字符名的字符串
  :n1,n2s/字符1/字符2/g(n1,n2为数字):在第n1与n2行之间寻找字符1,并将该字符替换为字符2
  :1,$s/字符1/字符2/g :在第一行和最后一行之间搜索字符1,并将该字符替换为字符2
  :1,$s/字符1/字符2/gc :在第一行和最后一行之间搜索字符1,并将该字符替换为字符2,且在替换前显示提示      符给用户确认是否需要替换
 
  x,X:向后删除一个字符
  nx(n代表数字):连续向后删除n个字符
  dd:删除光标所在的一整行
  ndd:从光标位置开始,删除向下n列
  d1G:删除光标所在位置到第一行的所以数据
  dG:删除光标所在位置到最后一行的数据
  d$:删除光标所在位置到改行的最后一个字符
  d0:删除光标所在处到改行最前面的一个字符
 
  yy:复制光标所在的那一行
  nyy:复制光标所在的向下n行
  y1G:复制光标所在行到第一行的数据
  yG:复制光标所在行到最后一行的所以数据
  y0:复制光标所在的那个字符到改行行首的所有数据
  y$:复制光标所在的那个字符到行尾的所以数据
  
  p P: p为将已复制的数据粘贴到光标的下一行。P为粘贴在光标的上一行
  J   : 将光标所在的行与下一列的数据结合成同一行
  c   :重复删除多个数据
  u   :复原前一个操作
  ctrl+r: 重做上一个操作
  . :重复前一个动作
 
 编辑模式:
  i I :i为在当前光标所在处插入文字,I为在当前所在行的第一个非空格符处开始插入,已存在的文字会向后退
  a A :a从当前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
  o O :o在当前光标所在的下一行处插入新的一行;O在当前光标所在处的上一行插入新的一行
  r R :r替换光标所在的那一个字符,R会一直替换光标所在的文字,直到按下Esc键为止此外,还可以通过vim同时编辑多个文件。
  
  此外 可以使用sed编辑器实现查找替换:
   格式:sed '模式' 对象
   如:sed '1,20 s/root/123/g' passwd | less  将1到20行的root换成123
   sed 's/file:\/\/\/mnt/cdrom\/http:\/\/192.168.2.100\/pub/'server.repo
也可以这样sed 's&file:///mnt/cdrom&http://192.168.2.100/pub&' server.repo