VIM编辑器入门

VIM简介

VIM是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。


VIM的使用

在介绍基本使用前,先了解下VIM的基本模式

基本模式可分为三种:命令模式、输入模式、末行模式 
命令模式:Vim启动后的默认模式,通过输入指令完成对应的编辑操作。输入模式和末行模式从命令模式进入 
输入模式:可以正常输入字符、编辑文本的状态 
末行模式:可以理解为Vim内置的命令行接口,可以进行保存退出等操作

  • 打开文件

格式:vim [OPTION]… FILE… 
选项: 
+#:打开文件后,直接让光标处于弟#行的行首 
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首 
:如果不指定文件,将会出现如下界面 
VIM编辑器入门

  • 模式转换

命令模式–>输入模式 
i:insert,在光标所在处输入 
I:在当前光标所在行的行首输入 
a:append,在光标所在处后面输入 
A:在当前光标所在行的行尾输入 
o:在当前光标所在行的下方打开一个新行 
O:在当前光标所在行的上方打开一个新行

输入模式–>命令模式 
按ESC键

命令模式–>末行模式 
键入

末行模式–>命令模式 
按ESC键后稍等或者连按两次ESC键

  • 关闭文件

末行模式下 
:q 退出 
:q! 强制退出。丢弃作出的修改 
:wq 保存退出 
: x 保存退出 
:w /PATH/TO/SOMEWHERE 表示当前文本所有内容保存到指定路径 
命令模式下 
ZZ:保存退出

  • 光标跳转

字符间跳转: 
h:左 
l:右 
j:下 
k:上 
#COMMAND:跳转由#指定个数的字符 
注:#为数字,COMMAND为上述字符

单词间跳转: 
w:下一个单词的词首 
e:当前或下一个单词的词尾 
b:当前或前一个单词的词首 
#COMMAND:由#指定一次跳转的单词数

行首行尾跳转: 
^: 跳转至行首的第一个非空白字符 
0: 跳转至行首 
$: 跳转至行尾

行间移动: 
#G:跳转至由#指定行 
G:跳转至最后一行 
1Ggg:跳转至第一行

句间和段间移动: 
):下一句 
(:上一句 
}:下一段 
{:上一段 
#COMMAND:由#指定一次跳转的句数或段数

  • 命令模式的命令

字符编辑: 
x:删除光标处的字符 
#x:删除光标处起始的#个字符 
xp:交换光标所在处的字符及后面字符的位置

替换命令: 
r:替换光标所在处的字符

删除命令: 
d:删除命令。可结合光标跳转字符,实现范围删除 
例:d$删除光标所在处到行尾的字符,d^和d0表示删除光标所在处到行首的字符 
#COMMAND:例如3dl表示删除光标所在处及其右两位字符 
dd:删除光标所在的行 
#dd:多行删除 
注意:最后一次删除的内容会被保存至缓冲区

粘贴命令: 
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面 
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

复制命令 
y:复制命令,可结合光标跳转字符,实现范围复制 
:y命令使用方式与d命令相似,参照即可

修改命令: 
c:使用修改命令会触发模式转换,由命令模式–>输入模式,其功能表现为先删除,在转换为输入模式,可结合光标跳转字符使用。 
cc:删除光标所在行的字符并转换为输入模式 
C:删除光标所在处到行尾的所有字符并转换为输入模式

其它编辑操作: 
可视化模式: 
v:按字符选定 
V:按行选定 
注意:经常结合编辑命令(d,y,c)使用 
撤销此前的编辑: 
u:撤销此前的操作 
#u:撤销由#指定次数的操作 
撤销此前的撤销:Ctrl+r 
重复前一个编辑操作:. 
翻屏操作: 
Ctrl+f:向文件尾部翻一屏 
Ctrl+b:向文件首部翻一屏 
Ctrl+d:向文件尾部翻半屏 
Ctrl+u:向文件首部翻半屏 
vim自带练习教程:vimtutor

  • 末行模式的操作

注:默认已进入末行模式,以下命令就不加

地址定界 
格式:star_pos,end_pos 
#:具体第#行,例如2表示第2行 
#,#:从左侧#行表示起始,到右侧#行表示行尾 
#,+#:从左侧#表示的行起始,加上右侧#表示的行数 
.:当前行 
$:最后一行 
.,$-1:当前行到倒数第二行 
%:全文,相当于1,$ 
/pat1/,/pat2/:从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束 
使用方法:后跟一个编辑命令 
d:删除 
y:复制 
w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中 
r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容

查找 
/PATTERN:从当前光标所在处向文件尾部查找 
?PATTERN:从当前光标所在处向文件首部查找 
n:跳转到下一个与命令同方向的结果 
N:跳转到下一个与命令反方向的结果

查找并替换 
s:在末行模式下完成查找替换操作 
s/要查找的内容/替换为的内容/修饰符 
要查找的内容:可使用模式 
替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容 
修饰符: 
i:忽略大小写 
g: 全局替换 
注:默认情况下,每一行只替换第一次出现 
查找替换中的分隔符/可替换为其它字符,例如s/123/321/g可替换为s#123#321#g

多文件模式 
启动格式:vim FILE1 FILE2 FILE3 … 
next:下一个文件 
prev:前一个文件 
first:第一个文件 
last:最后一个文件 
wall:保存所有 
qall:退出所有

窗口分割模式 
启动格式:vim -o|-O FILE1 FILE2 … 
-o: 水平分割 
-O::垂直分割 
在窗口间切换:Ctrl+w,Arrow(↑↓←→) 
单文件窗口分割: 
Ctrl+w,s:split,水平分割 
Ctrl+w,v:vertical,垂直分割

  • 定制VIM的工作特性

配置文件:永久有效 
全局:/etc/vimrc 
个人:~/.vimrc(需要自行创建) 
末行模式:当前vim进程有效

(1) 行号 
显示:set number, 简写为set nu 
取消显示:set nonumber, 简写为set nonu

(2) 括号匹配 
匹配:set showmatch, 简写为set sm 
取消:set nosm

(3) 自动缩进 
启用:set ai 
禁用:set noai

(4) 高亮搜索 
启用:set hlsearch 
禁用:set nohlsearch

(5) 语法高亮 
启用:syntax on 
禁用:syntax off

(6) 忽略字符的大小写 
启用:set ic 
不忽略:set noic

获取帮助: 
:help 
:help subject

原创文章,作者:Net18-海滨,如若转载,请注明出处:http://www.178linux.com/14053

(0)
上一篇 2016-04-05 22:51
下一篇 2016-04-05 22:55

相关推荐

  • 网络N22期-第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]#egrep '^(root|fedora|user1)\>' /etc/passwd | cut -d: -f7 /bin/bash 2、找出/etc…

    Linux干货 2016-09-15
  • Linux用户及用户组管理

    马哥网络教育22期第三周练习 Linux用户及用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的…

    Linux干货 2016-09-19
  • 第四周练习

    1、复制/etc/skel目录为/home/tuser1, 要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 chmod -R 700 /home/tuser1 2、编辑/etc/group文件,添加组hadoop。 vi /etc/group hadoop:x:2017 …

    Linux干货 2017-08-04
  • nmcli及网络配置

    2017-09-10
  • 软件包管理器之二——YUM介绍及使用

    一、前言     之前我们介绍了RPM的应用(详细请查看http://www.178linux.com/archives/6383),发觉RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人…

    Linux干货 2015-07-21
  • 第五周作业

    1、显示当前系统上root、fedora、或user1用户的默认shell;          [root@yangjifeng~]# grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f…

    Linux干货 2017-09-04

评论列表(1条)

  • stanley
    stanley 2016-04-05 22:54

    写标签有助文章收录,
    markdown 火候不足,加油