分享

vi 用法

 波菜叶 2012-03-25
   vi一共有三种模式:命令模式(conmand mode),输入模式(input mode)和末行模式(last line mode)
                                                     esc键                                                   i a o
 
 
 
光标移动 
  
 ESC进入Command模式后 
  j 向下移动一行
  k 向上移动一行
  h 向左移动一个字符
  l 向右移动一个字符
  ctrl+b 向上移动一屏
  ctrl+f 向下移动一屏
  向上箭头 向上移动
  向下箭头 向下移动
  向左箭头 向左移动
  向右箭头 向右移动
 
 
我们编辑一个文件时,对于 j、k、l和h键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行。
  /# +Enter #为查找的内容 
 
 
插入模式(文本的插入)
  
  i 在光标之插入
  a 在光标之插入
  I 在光标所在行的行首插入
  A 在光标所在行的行末插入
  o 在光标所在的行的下面插入一行
  O 在光标所在的行的上面插入一行
  s 用输入的文本替换光标所在字符
  S 用输入的文本替换光标所在行 
 
  文本内容的删除操作;
  
  x 一个字符
  #x    删除几个字符,#表示数字,              比如3x
  dw 删除一个单词
  #dw 删除几个单词,#用数字表示,          比如3dw表示删除三个单词
  dd 删除一行;
  #dd 删除多个行,#代表数字,                  比如3dd 表示删除光标行及光标的下两行
  d$ 删除光标到行尾的内容
 
J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起
 
 
退出保存
  在命令模式下按 shift+: 文本底端出现冒号
  :w 保存;
  :w filename 另存为filename;
  :wq! 保存退出;
  :wq! filename 注:以filename为文件名保存后退出;
  :q! 不保存退出;
  :x 应该是保存并退出 ,功能和:wq!相同
  撤销操作
  u命令取消最近一次的操作,可以使用多次来恢复原有的操作[1]?
  U取消所有操作
  Ctrl+R可以恢复对使用u命令的操作 (对u命令的恢复)
 
 
复制操作 
 
  yy命令复制当前整行的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
  y$复制光标所在位置到行尾内容到缓存区
  y^复制光标所在位置到行首内容到缓存区
  #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词
  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
  查找和替换
  vi的查找和替换功能主要在末行模式完成:
  至上而下的查找
  / 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work
  至下而上的查找
  ?要查找的字符窜 例如:/ work
 
 
替换
 
 :s/old/new用new替换行中首次出现的old
  : s/old/new/g 用new替换行中所有出现的old
  :#,# s/old/new/g用new替换从第#行到第#行中出现的old
  :% s/old/new/g用new替换整篇中出现的old
  如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc
  恢复文件
   vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:
  O只读打开,不改变文件内容
  E继续编辑文件,不恢复.swp文件保存的内容
  R将恢复上次编辑以后未保存文件内容
  Q退出vi
  D删除.swp文件
  或者使用vi -r 文件名来恢复未保存的内容

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多