Linux学习(三)-Vi和Vim的区别

它们都是多模编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
vim的这些优势主要体现在以下几个方面:
1、多级撤消
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
2、易用性
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
3、语法加亮
vim可以用不同的颜色来加亮你的代码。
4、可视化操作
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
5、对vi的完全兼容
除此之外vim更适合coding



Vim编辑器基本上可以分为3种模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式:可以控制光标的移动,进行文本的删除,复制等文字编辑工作;
插入模式:在这个模式下可以输入文字;
底行模式:可以保存文件或者推出Vim,同时也可以设置编程环境和一些编译工作,如列出行号.寻找字符串等;
下面这个图是三种模式的转换操作(打开文件首先进入的是命令模式)

Linux学习(三)-Vi和Vim的区别

下面是三种模式中的一些简单的操作:

命令模式:
命令模式主要使用方向键移动光标位置进行文字的编辑,下面列出了常用的操作命令及含义
上、下、左、右键盘和 h、j、k、l键分别都是移动光标方面的。
  $ -------------移至行尾
  0(零)  -----移至行首
  H   ----------移至屏幕上端
  M   ----------移至屏幕*
  L   ----------移至屏幕下端
  gg   ---------到文件第一行
  G   ----------到文件末尾
  PageDn ---------- 向下移动一页
  PageUp ---------- 向上移动一页
  d+方向键 ----------删除文字
  dd  ---------删除整行
  pp  ---------整行复制
  r  ----------修改光标所在的字符
  S  ----------删除光标所在的列,并进入输入模式
 
插入模式:
可以通过以下命令由“命令模式”进入“插入模式”
  a------------在当标后附加文本
  A------------在本行行末附加文本
  i-------------在光标前插入文本
  I-------------在本行开始插入文本
  o------------在光标下插入新行
  O-----------在光标上插入新行
  ESC--------退出“插入模式”
 
编辑模式:
编辑模式主要进行一些文字编辑辅助功能,比如字串搜索、替代、保存文件等操作。
  :q -----结束Vi程序,如果文件有过修改,先保存文件
  :q! -----强制退出Vi程序
  :wq -----保存修改并退出程序
  :set nu -----使文本每一行前出现行号
  :set nonu ------取消每一行前的行号
  :n ------------到第n行
vim编辑的文件恢复:
当我们使用vim编辑时,vim会在被编辑的文件的目录下建立一个.filename.swap文件,
你对filename文件的动作会被记录在.filename.swap文件中,如果你的系统因为某些
原因断线了,导致你编辑的文件还没有存储,可以从.filename.swap文件中恢复.