vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器。看了不少关于vi的资料,终于得到这个总结。
首先,记住vi编辑器的两个模式:1、命令模式 2、编辑模式
  在一个UNIX/Linux的shell命令或者一个以斜杠(/)、问号(?)或冒号(:)开始的vi命令后面用户需要键入回车键,而要切换到vi命令模式需要按Esc键。注意,以冒号(:)或者斜杠(/) 开始的vi命令会显示在屏幕底部,但其他命令都不会显示在屏幕上。
 
  打开、写入和关闭文件(使用Enter键)
  vi file       打开文件名为file的文件(UNIX shell命令)
  :w        将工作缓冲区的变化写入默认文件中
  :w file       将工作缓冲区的变化写入名为file的文件中
  :q         退出vi编辑器
  :wq        将工作缓冲区的变化写入文件并退出
  :q!        不将工作缓冲区的变化写入文件并退出vi编辑器
 
  插入文本(vi命令模式下使用)
  a        在当前光标位置的右边添加文本
  i        在当前光标的左边插入文本
  A        在当前行的末尾添加文本
  I        在当前行的开始出添加文本
  O        在当前行的上面新建一行
  o        在当前行的下面新建一行
   R        替换(覆盖)当前光标位置以及以后的若干文本
  J         连接光标所在行以及下一行,成为一行
  
  移动光标
  上下左右方向键     向箭头所示方向移动光标一个位置
  h            向左
  j            向下
  k            向上
  l            向右
  空格键          向右
  Backspace        向左
  Enter          向下移动到下一行的行首
  -(连字符键)      向上移动到上一行的行首
 
  纠正错误(vi命令模式下使用)
  x        删除一个字符
  dd        删除当前行
  ndd       上除当前行在内的n行
  u        撤销上一次操作(最后一步)
  U        撤销对当前行的所有操作
 
  拼写检查(UNIX shell命令)
  spell file       显示问及那file中找到的拼写错误
  ispell file       显示问及那file中找到的拼写错误
 
  搜索(vi命令模式下使用)
  /word      向前搜索第一个出现的word
  /         继续向前搜索下一个word
  ?word      向后搜索第一个出现的word
  ?        继续向后搜索下一个word  
 
  跳跃到指定行(vi命令模式使用)
  n+      向前(向下)跳跃n行
  n-      向后(向上)跳跃n行
  nG      跳跃到行号为n的行,G为Go
  G      跳跃到文件的底部
 
  设置行号(vi命令模式下使用)
  :set nu      在屏幕上显示行号
  :set nonu     取消行号
 
  复制和粘贴(vi命令模式下使用)
  "knyy      复制n行到缓冲区"k
  "kp       将缓冲区"k的内容粘贴到当前行的下面
  
  全局替换文本(vi命令模式下使用)
  :%s/old/new/g      用new替换文件中的所有old。s为substitution,替换的意思。g为global。
 
  编辑另一个文件(vi命令模式下使用)
  :e otherfile      编辑文件名为otherfile的文件
 
  为命令行编辑制定一个编辑器(UNIX shell命令)
  bindkey -v      指定vi编辑器(用于 tcsh)
  VISUAL=vi      指定vi编辑器(用于 ksh)
  set -o vi       指定vi编辑器(用于 bash)
 
  缓冲区:  
  前面讲过,vi编辑器设计上是对工作缓冲区的文件副本进行编辑。在使用vi编辑器的时候,用户还可以访问其他缓冲区。总共有36个缓冲区。
  ◆ 未命名缓冲区
  ◆ 已命名缓冲区 "a、"b、"c、……、 "z
  ◆   已编号缓冲区 "1、"2、"3、……、 "9
  未命名缓冲区有时也叫做一般缓冲区。在修改文本时,旧文本并没有被立刻删除。vi将旧文本放在未命名缓冲区直到用户删除修改更多的文本。这样就可以实现撤  销,具体命令为 u。因为vi只有一个未命名缓冲区,所以只能撤销一次。
 
  命令模式和编辑模式的切换:
   如果不清楚当前所在的模式,可以连续按2次Esc键盘,主机会发出警报声,这样就肯定进入了命令模式。在命令模式下面,输入a A i I O o R都会进入编辑模式。所输入的这单个字符不会显示,也不会插入到文件中。

本文出自 “Eric Chen” 博客,请务必保留此出处http://skycyc23.blog.51cto.com/231267/352596

教你学会Linux/Unix下的vi文本编辑器的更多相关文章

  1. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...

  2. 【Linux】linux/unix下telnet提示Escape character is '^]'的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

  3. linux/unix下telnet提示Escape character is '^]'的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

  4. Linux学习笔记 (三)Vi文本编辑器

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  5. 轻松学习之Linux教程四 神器vi程序编辑器攻略

    本系列文章由@超人爱因斯坦出品,转载请注明出处.           文章链接:          http://hpw123.net/a/Linux/Linuxjichu/2014/1026/93. ...

  6. 小白学Linux(五)--VI/VIM编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...

  7. Linux命令行下的vim文本编辑器

    Linux命令行下的vim文本编辑器 下面这个网站的地址讲解的非成分清楚!!!! http://blog.csdn.net/niushuai666/article/details/7275406 学习 ...

  8. 初识Linux(五)--VI/VIM编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...

  9. Linux vi文本编辑器

    vi文本编辑器 1.最基本用法 vi  somefile.4 1/ 首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容 2/ 按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是 ...

随机推荐

  1. NYOJ8——一种排序

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3  描述:现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数: ...

  2. 考拉定时任务框架kSchedule

    此文已由作者杨凯明授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.背景 目前项目中使用的定时任务框架存在下面这些问题 没有统一的定时任务管理平台 目前项目中使用定时任务的 ...

  3. E20170415-ms

    opaque adj 不透明的 n 不透明 adapter n 配适器

  4. hdoj5698

    果然以前不想搞的东西,今天他妈全来了,我要爆炸,除了说操....真是欲哭无泪啊..... //这道题目卡在逆元了.... //利用逆元计算1/(n!(m-n)!) //对于正整数a,m如果有ax≡1( ...

  5. bzoj 2648: SJY摆棋子【KD-tree】

    其实理论上cdq更优 核心是依次取x值.y值的mid作为当前节点,向两边递归建立二叉树,树上维护size:子树大小:mx[0/1]:子树内最大x/y:mn[0/1]:子树内最小x/y:d[0/1]:这 ...

  6. nginx缓存过期

    1 原理 在默认下,请求过的内容会接受304,而从本地缓存调用.这是通过client向server发送请求,给出ETag,server确认ETag未变,则不返回内容,client调用本地缓存. 而ex ...

  7. _bzoj1257 [CQOI2007]余数之和sum【小技巧】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1257 最近刚做了一道莫比乌斯的题,需要用到这种方法. 应该让k / i相等的一连串k % i ...

  8. Appium + Python自动化 - 元素定位uiautomatorviewer

    元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常 ...

  9. 167 Two Sum II - Input array is sorted 两数之和 II - 输入有序数组

    给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数.函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2.请注意,返回的下标值(i ...

  10. python中函数参数

    默认参数注意点 优点:灵活,当没有指定与形参对应的实参时就会使用默认参数 缺陷: 例子: >>> def h(m, l=[]):                    #默认参数时列 ...