vim文本编辑器是一个可定制的编辑器,而且可以很方便的自制插件,这样,你就可以把一些经常重复的操作自己编写为插件,起到提升效率的效果。vim可以解放你的右手,抛弃鼠标吧,所有的操作都由键盘完成,这样工作的准确率会非常高
根据设定可以和原始vi完全兼容
多缓冲编辑
任意个数的分割窗口(横,竖)
具备列表和字典功能的脚本语言
可以在脚本中调用 Perl, Ruby, Python, Tcl, MzScheme
单词缩写功能
动态单词补完
多次撤销和重做
对应400种以上文本文件的语法高亮
C/C++, Perl, Java, Ruby, Python 等40种以上语言的自动缩排
利用ctags的标签中跳转
崩溃后文件恢复
光标位置和打开的缓冲状态的保存 复原(session功能)
可以对两个文件进行差分,同步功能的diff模式
远程文件编辑
Omni补完(上下文相关的补完)
1、在Vim编辑器的启动界面中,每一行的左侧存在许多“~”符号,Vim编辑器使用这种方式表示这一行为空。
2、Vim编辑器有三种基本模式
命令模式(command node)
插入模式(insert node)
末行模式(last line node)
Vim启动后会直接进入命令模式,在命令模式中输入命令前缀(这些前缀可能是: \等),就等于进入末行模式。要进入插入模式,可以在命令模式下按i键,编辑器最后一行会显示“--INSERT--”表示此时正进入插入模式。在插入模式下可以编辑和修改文本内容,编辑完成后可以按Esc键退出并返回命令模式。
3、读取文件
如果要打开新文件并进行编辑,可以使用命令e。如果要读取另一个文件的内容,并追加到当前文件的末尾,可以使用命令r。
(1)例如要打开桌面上的新文件,使用如下命令:
:e /home/zhou/Desktop/a2
使用这个命令应保证编辑器中的内容已经保存。如果没有保存,使用e命令将会提示错误。
(2)如果不需要保存当前文件,强制打开新文件,可以使用如下命令:
:e /home/zhou/Desktop/a2
(3)要从另一个文件读取文本,并添加到当前文本的最后,可以使用命令r。例如读取文件a2的
内容,并追加到当前编辑文本的最后,使用如下命令:
:r /home/zhou/Desktop/a2
4、保存文件
保存文件需要在命令模式中使用命令w
(1)例如要保存当前已经编辑的文本。使用如下命令:
:w
如果保存成功,编辑器最后一行会显示提示信息
(2)如果当前正在编辑的文件没有命名,或者需要将当前文件另存到另一位置,可以在命令w后面加上路径和名称。例如要将当前文本存放到 /home/zhou/Desktop/中,并命名为xiaojuan,
用如下命令:
:w /home/zhou/Desktop/xiaojuan
表示路径时也可以使用相对路径。例如./xiaojuan表示保存到当前工作目录中,并且文件名为xiaojuan。
5、进入插入模式并插入文本
使用Vim编辑器新建一个文件a3,在终端输入命令:
vim a3
此时Vim编辑器将打开一个新的文本,并等待用户输入内容。
(1)要输入内容,还需要进入插入模式。进入插入模式除了使用快捷键i之外,还可以使用以下快捷键。
a:进入插入模式并将光标放在当前光标之后
A:进入插入模式并将光标放在当前光标所在的行尾
o:在当前光标所在的行的后面插入一个新行,进入插入模式并将光标放置在新行。
O:在当前光标所在的行的前面插入一个新行,进入插入模式并将光标放置在新行。
(2)按i键,进入vim编辑器的插入模式,就可以自由输入文本了。当用户输入完成后,可按Esc键进入命令模式。
6、删除文本
(1)删除单个字符,在插入模式中可以使用Backspace和Delete。还可以使用x删除单个字符。
(2)删除多个字符,在命令模式中,使用以下删除快捷键
dd:删除当前光标所在行。还可以使用ndd这样的形式,一次删除n行
dw:删除当前光标处的单词,包括词尾空格
de:删除当前光变出的单词
d^:删除当前光标到行首的所有字符
d$:删除当前光标到行尾的所有字符
J:将当前光标所在行和下一行合并(相当于删除行尾的换行符)
7、快速移动光标
移动光标到指定行
(1)Vim编辑器提供了显示文本行号的功能,但默认情况下这个功能没有启用,需要手动设置要显示设置行号,可以在命令模式中执行:
:set number
取消行号,可以再命令模式中执行
:set nonumber
使用鼠标移动光标,Vim编辑器也使用了鼠标支持,要使Vim编辑器支持鼠标,可以使用以下命令
:set mouse=a
此时Vim会弹出鼠标并使用鼠标进行光标定位
8、Vim编辑器的查找和替换功能
——简单查找功能
在Vim编辑器中,实现简单查找功能是“/”,从当前位置开始向下查找,其格式如下,在命令模式中输入:
/pattern
在上面的格式中,pattern为要查找的字符串.例如使用命令/home查找字符串home,Vim编辑器会从当前光标位置开始向下查找,并将光标移动到查找到的字符串的第1个字符处。
如果当前查找到的字符串不是用户需要查找的字符串,可以使用以下快捷键:
n:跳转到下一个字符串
N:跳转到上一个字符串。
在Vim编辑器中,使用命令/是从当前位置开始向下查找,还可以使用命令?执行反向查找,即从当前位置开始向上查找。基本格式为:
?pattern
要让Vim编辑器查找时忽略字符串的大小写,可以使用以下命令:
:set ignorecase
关闭忽略大小写功能:
:set noignorecase
高亮显示查找结果,在命令模式中执行:
:set hlsearch
关闭高亮显示查找结果:
:set nohlsearch
——增量查找
增量查找是指用户输入需要查找字符串的同时,Vim编辑器按用户的输入同步查找,默认情况下,Vim编辑器的增量查找功能处于关闭状态。要打开Vim编辑器的增量查找功能,可以在命令模式中执行以下命令:
:set incsearch
关闭增量查找功能:
:set noincsearch
——简单的查找替换功能
在Vim编辑器中,替换功能使用的命令是s,基本格式如下:
:s/pattern1/pattern2/
在这条命令中,pattern1是查找文本,pattern2是替换文本,/是分隔符,也可以使用:(冒号)
例如:s:the:The
该命令的功能是将光标所在行的第一个the替换为The。
使用s命令进行替换时,vim总会替换光标所在行第1个匹配到的字符串。并终止替换(不会在下一行继续查找替换)。
——区域性查找替换
(1)通常替换命令只会替换在当前行找到的第1个字符串,如果要替换当前行找到的所有字符串,(即全行替换),可以使用标记g;
:s/the/The/g
(2)也可以指定一个要替换的范围。例如要替换第1行到第10行的所有内容,使用如下命令:
:1,10s/the/The/g
(3)指定范围时,使用符号%表示所有行,用$表示文本最后一行。例如要替换第五行到最后一行的所有字符串,使用如下命令:
:5,$s/the/The/g
(4)也可以用+、-表示一个模糊的范围,例如要替换当前行以下至第10行和倒数10行内的字符串,使用如下命令:
:+10,$-10s/the/The/g
(5)如果要替换所有字符串,使用如下命令:
:%s/the/The/g
——谨慎的查找替换
执行谨慎查找替换时,需要使用标记c。例如:
:%s/the/The/gc
执行上面命令时,Vim将会高亮显示找到的字符串,并提示用户。vim询问应当那个如何处理找到的字符串,可供选择的几个选项的含义如下:
y:直接输入y执行替换,继续查找字符串
n:直接输入n跳过当前找到的字符串,继续查找字符串
a:替换所有找到的字符串,并且不询问
q:不执行替换并退出替换模式
l:执行替换并退出替换模式
Ctrl+E:向上滚屏一行
Ctrl+Y向下滚屏一行
9、编辑器中的窗口操作
——分割窗口
将Vim编辑器分割成上下两个窗口
:split
将Vim编辑器分割成左右两个窗口
:vsplit
分割新窗口并打开空白文本
:new
分割窗口并打开新文件
:new+文件名
例如 :new/etc/ssh/sshd_config
如果在打开文件时一并打开多个窗口,在不同的窗口中打开不同的文件,可以再启动Vim时使用选项o,例如执行命令:
vim -o /etc/samba/smbconf /etc/ssh/ssh_config /etc/ssh/ssh_comfig
——关闭窗口
(1)如果要关闭光标所在的窗口(如果光标不在需要关闭的窗口中,使用快捷键Ctrl+W),可以在当前窗口的命令模式中使用命令
:close
(2)如果要关闭当前窗口外的其他窗口,可以在当前窗口的命令模式中使用命令only
——控制窗口大小
(1)要控制分割窗口的大小,可以再分割窗口时加上窗口大小参数。例如分割一个只有6行的新窗口“:6split”、“6vsplit”、“6new”...
(2)如果将当前光标所在的窗口放大,可以使用快捷键Ctrl+W++
(3)如果要缩小窗口,可以使用快捷键Ctrl+W+-
——窗口中的操作
从众多窗口中退出
qall:关闭所有保存过的窗口,可速记为quit all
wall:保存所有修改过的窗口,可速记为write all
wqall:保存并退出所有窗口,可速记为write quit all
qall!:不保存强制退出所有窗口,可速记为quit all!
10、Vim编辑器的高级技巧
——复制和粘贴
Vim命令模式提供了几个复制粘贴的快捷键。
yy:复制光标所在的行到缓冲区
nyy:复制n行到缓冲区
y^:复制当前光标所在的位置到行首的内容到缓冲区
y$:复制当前光标所在的位置到行尾的内容到缓冲区
使用了以上快捷键执行复制操作以后,只要将光标移动到需要粘贴的位置,按下p键即可粘贴复制的文本。(若按下P则将缓冲区内容粘贴到当前光标之前)
——剪切和粘贴
在Vim编辑器中没有单独剪切粘贴的快捷键,但可以通过移动文本的方式实现剪切粘贴功能。
(1)移动文本时,首先需要使用dd或d快捷键将需要移动的文本删除,Vim会在删除之后将删除
的文本放入缓冲区
(2)执行删除之后,将光标移动到将要删除的位置,然后使用p键粘贴文本
(3)执行p键后,vim编辑器会将缓冲区里的内容粘贴到当前光标之后(如果使用dd快捷键删除
,则粘贴到下一行)。
——编辑多个文件
(1)使用vim命令打开多个文件,例如:
vim a1 a2 a3
(2)如果Vim打开了多个文件,可以使用以下命令查看打开的文件列表
:args
(3)如果要在打开的多个文件之间进行切换,首先要保证当前处于前台的文件已经保存,然后可以使用以下几个命令和快捷键切换前台文件。
next:将下一个文件放到前台
prev:将上一个文件放到前台
next!:不保存当前文件,将下一个文件放到前台
prev!:不保存当前文件,将上一个文件放到前台
first:将第1个文件放置到前台
last:将最后1个文件放置到前台
first!:不保存当前文件,将第1个文件放置到前台
last!:不保存当前文件,将最后1个文件放置到前台
Ctrl+6:在最近放置到前台的两个文件之间进行切换
——Visual模式
(1)使用visual模式自由选择文本
使用visual模式自由选择字符时,需要在命令模式中将光标移动到选择字符的起始位置,然后按下v键进入Visual模式。在visual模式中,可以使用移动光标的快捷键选择文本。
如果需要退出visual模式,按下Esc键。
(2)使用visual模式选择多行
使用visual模式选择多行时,需要在命令模式中将光标移动到选择字符的起始位置,然后按下v键进入Visual模式。
(3)使用visual模式选择矩形区域
在visual模式中,还可以选择一个矩形区域,这主要用于选择格式化文本。例如一个销售报表、
学生名单等。选择矩形区域时,先在命令模式中将光标移动到矩形区域的左上方角的顶点,然后
按下快捷键Ctrl+V进入visual模式。在visual模式中,使用方向键移动光标即可选择一个矩形区
域。
——在Vim编辑器中执行shell 命令
(1)在Vim编辑器中单独执行Shell命令时,需要在命令之前肩上“:!”。例如在vim编辑器中执
行“:!ls -l”命令,vim编辑器上会显示命令的输出。
(2)读取命令的输出到当前编辑的文件中,这时可以配合命令“:r”。例如“:r!ls -l”
11、定制vim编辑器及灾难恢复
定制Vim编辑器是为了已启动就能够使用自己需要的设定,例如显示行号、搜索结果高亮显示等功能。
——定制文件vimrc
定制Vim编辑器主要是通过修改定制文件的方法来实现的。Vim编辑器使用定制文件名称为.vimrc,但该文件在不同的系统中位置可能会不同。下面是Vim在不同系统中保存的定制文件的位置和名称。
UNIX:文件位置为$HOME/.vimrc
OS/2:文件位置为$HOME或$VIM,文件名通常为.vimrc或_vimrc
MS-ODS和Windows:文件位置及名称为$HOME/_vimrc或$VIM/_vimrc
在linux系统中,定制文件的路径和名称通常为$HOME/.vimrc。如果无法找到定制文件,可以使用以下命令查看帮助:
:help vimrc
——灾难恢复
使用vim编辑文本时,会自动建立一个交换文件,名称为.filename.swp。这是一个隐藏文件,其中filename为编辑的文件名称。每过一段时间,Vim会自动将更改的内容保存到交换中。Vim编辑器正常退出时,会删除这个文件,如果是非正常退出,这个文件就留在了文件系统,此时可以领用交换文件进行灾难恢复。
(1)大多数时候进行灾难恢复非常简单,只需要配合使用选项r即可。例如要恢复的文件名为a
#使用选项r恢复文件a的内容
#vim -r a
执行上述命令后,建议现将恢复后的文件重命名,对文件内容进行比较和确认后再保存。
(2)在恢复文件时,也可以指定交换文件,例如要使用名为.a.swp的交换文件进行恢复,可以使用如下命令:
#指定用于回复的交换文件的名称
#vim -r .a.swp
(3)如果要恢复的文件爱你还没有命名,可以使用如下命令:
#如果文件还未命名时,可以使用两个引号表示文件名为空
#vim -r ""
140.5M / 09-05
立即下载76.4M / 03-25
立即下载55M / 06-05
立即下载237.9M / 04-13
立即下载900.9M / 03-02
立即下载96.2M / 07-06
立即下载311.2M / 07-06
立即下载335M / 07-06
立即下载200M / 07-06
立即下载413.8M / 07-06
立即下载484.7M / 09-27
立即下载165.4M / 09-05
立即下载353.9M / 06-05
立即下载131.8M / 04-13
立即下载195.6M / 03-03
立即下载45.6M / 09-08
立即下载665.2M / 07-06
立即下载2.84G / 07-06
立即下载93M / 07-06
立即下载338.3M / 07-06
立即下载1.38G / 07-26
立即下载488.3M / 07-16
立即下载109.8M / 06-03
立即下载142M / 01-08
立即下载1.2M / 11-23
立即下载548.8M / 04-13
立即下载1.6M / 04-13
立即下载1.48G / 03-18
立即下载646.6M / 03-03
立即下载133.7M / 03-03
立即下载110.5M / 09-05
立即下载33.4M / 09-05
立即下载325.8M / 08-12
立即下载60M / 04-29
立即下载254M / 04-25
立即下载659M / 04-23
立即下载1M / 12-26
立即下载253.4M / 12-08
立即下载253M / 12-08
立即下载1.19G / 11-16
立即下载369M / 09-22
立即下载181.5M / 09-22
立即下载201.2M / 09-05
立即下载488.3M / 07-16
立即下载248.9M / 12-08
立即下载248.9M / 12-08
立即下载100.6M / 03-06
立即下载148.9M / 03-06
立即下载1.12G / 07-06
立即下载1.25G / 07-06
立即下载1.76G / 09-22
立即下载1.92G / 04-17
立即下载116.2M / 04-10
立即下载201.5M / 04-13
立即下载7.31G / 07-01
立即下载94.3M / 07-06
立即下载2.48G / 07-06
立即下载7.63G / 07-06
立即下载1M / 07-06
立即下载778.1M / 07-06
立即下载561.8M / 07-11
立即下载72M / 07-06
立即下载548.7M / 07-06
立即下载1.00G / 07-06
立即下载9.13G / 07-06
立即下载126.2M / 07-06
立即下载72M / 07-06
立即下载105.1M / 07-06
立即下载132M / 07-06
立即下载132M / 07-06
立即下载