原文url:http://blog.csdn.net/xiajun07061225/article/details/7039413
@我们为什么一定要学习vim呢?有以下几个原因:
(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。
(2)很多软件的编辑接口都会主动调用vi。
(3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。
(4)程序简单,编辑速度快。
1,vim编辑器的三种模式:一般模式、编辑模式和命令行模式。
* 从一般模式切换到编辑模式可以按下i、I、o、O、a、A
* 按下Esc键可以回到一般模式。
* 在一般模式中输入:和/和?三个中的任意一个可以将光标移到最下面的一行。进入编辑器的命令行模式。在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。
---需要注意的是,编辑模式与命令行模式之间是不能互相切换的。
2,下面列出平时用的最多的vi命令:
1),移动光标的方法:
[Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。
[Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。
0或功能键[Home]:移动到这一行的最前面字符处。
$或功能键[End]:移动到这一行的最后面字符处。
G:移动到这个文件的最后一行。
gg:移动到这个文件的第一行,相当于1G.
N[Enter]:N为数字,光标向下移动N行。
2),查找和替换:
/word:向下寻找一个名称为word的字符串。
?word:向上寻找一个名称为word的字符串。
:n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.
:1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.
:1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。
3),删除、复制和粘贴:
x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。
dd:删除光标所在的一整行。
ndd:删除光标所在的向下n行。
yy:复制光标所在的一行。
nyy:复制光标所在的向下n行。
p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。
u:复原前一个操作。
[Ctrl]+r:重做上一个操作。
.:小数点,重复前一个操作。
4),一般模式切换到编辑模式:
i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
o,O:进入插入模式。o为在下一行插入。O为在上一行插入。
r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。
5),一般模式切换到命令行:
:w:将编辑的数据写入到硬盘中。后边跟文件名.后缀名。注意,保存路径是终端命令行中的当前路径。
:q:离开vi。后面加:q!为强制离开。
:wq:保存后离开。:wq!为强制保存后离开。
按下i过后在光标处进入插入模式,跟stl的insert一样。
3,目前主要的编辑器都有恢复功能,vim也不例外。vim是通过“保存”文件来挽回数据的。
每当我们在用vim编辑时,vim都会自动在被编辑的文件的目录下面再新建一个名为filename.swap的文件。这就是一个暂存文件,我们对文件 filename所做的操作都会被记录到这个文件当中。如果系统意外崩溃,导致文件没有正常保存,那么这个暂存文件就会发挥作用。
我们在vim的一般模式下按下Ctrl+z组合键,vim就会被丢到后台执行。回到命令提示符环境后,我们模拟将vim的工作不正常中断。
4,vim必备的配置信息:
---vim程序文件和配置文件存放目录:
Linux: /usr/share/vim/vimrc
Windows: c:\program files\vim\vimrc
---注意,/etc下也有这个文件,更改效果同上。
-
set nocompatible "去掉有关vi一致性模式,避免以前版本的bug和局限
-
set nu! "显示行号
-
set guifont=Luxi/ Mono/ 9 " 设置字体,字体名称和字号
-
filetype on "检测文件的类型
-
set history=1000 "记录历史的行数
-
set background=dark "背景使用黑色
-
syntax on "语法高亮度显示
-
set autoindent "vim使用自动对齐,也就是把当前行的对齐格式应用到下一行(自动缩进)
-
set cindent "(cindent是特别针对 C语言语法自动缩进)
-
set smartindent "依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写上有用
-
set tabstop=4 "设置tab键为4个空格
-
set shiftwidth =4 "设置当行之间交错时使用4个空格
-
set ai! " 设置自动缩进
-
set showmatch "设置匹配模式,类似当输入一个左括号时会匹配相应的右括号,即输入完右括号,光标跳转到左括号上。
-
set guioptions-=T "去除vim的GUI版本中得toolbar
-
set vb t_vb= "当vim进行编辑时,如果命令错误,会发出警报,该设置去掉警报
-
set ruler "在编辑过程中,在右下角显示光标位置的状态行
-
set nohls "默认情况下,寻找匹配是高亮度显示,该设置关闭高亮显示
-
set incsearch "在程序中查询一单词,自动匹配单词的位置;如查询desk单词,当输到/d时,会自动找到第一个d开头的单词,当输入到/de时,会自动找到第一个以 ds开头的单词,以此类推,进行查找;当找到要匹配的单词时,别忘记回车
-
set backspace=2 " 设置退格键可用
-
修改一个文件后,自动进行备份,备份的文件名为原文件名加“~”后缀
-
if has("vms")
-
set nobackup
-
else
-
set backup
-
endif
后边是自动备份文件
如果设置完成后,发现功能没有起作用,检查一下系统下是否安装了vim-enhanced包,查询命令为:
$rpm -q vim-enhanced
注意:如果设置好以上设置后,VIM没有作出相应的动作,那么请你把你的VIM升级到最新版,一般只要在终端输入以下命令即可:sudo apt-get install vim
---下面是vimrc配置文件,修改后的效果如下: