Vim编辑器使用详解

  • Vim编辑器使用详解

  • vim介绍

  • 为什么要学习vim

  • vim三种模式

  • vim工作模式(图解)

  • vim如何打开文件

  • vim关闭文件

  • 命令模式光标跳转

    • 字符间跳转:

    • 单词间跳转:

    • 行首行尾跳转:

    • 行间移动:

  • VIM的命令模式下的命令:

    • 字符编辑:

    • 替换命令(r, replace)

    • 删除命令:

    • 复制命令

    • 粘贴命令(p, paste): :

    • 其他相关的编辑操作:

    • 翻屏操作:

    • 查找操作:

  • VIM末行模式的操作:

    • 地址定界

    • 查找和替换

    • 练习:

  • 多文件模式:

  • 窗口分隔模式:

  • 定制vim的工作特性:

Vim编辑器使用详解

vim介绍

在Linux系统中配置应用服务,实际上就是在修改它的配置文件(配置文件可能有多 
个,其中包含不同的参数),而且日常工作中也一定免不了编写文档的事情吧,这 
些都是要通过文本编辑器来完成的。在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版。

为什么要学习vim

Vim能够得到这么多厂商与用户的认可,原因就是在Vim编辑器中有三种模式——命 
令模式、末行模式和编辑模式,分别又有多种不同的命令快捷键组合,很大的提高 
了工作效率,用习惯后会觉得非常的顺手。要想在文本操作时更加高效率,我们必 
需先搞清Vim编辑器的三种模式的操作不同与切换方法。

vim三种模式

命令模式:控制光标移动,可对文本进行删除、复制、粘贴等工作。 
输入模式:在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

1.png

末行模式:在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!

vim工作模式(图解)

2.png

记住每次运行vim编辑器后都默认是“命令模式”,需要先进入到“输入模式”后再进行编写文档的工作,而每次编辑完成需先返回到“命令模式”后再进入“末行模式”对文本的保存或退出操作。

vim如何打开文件

格式:vim [OPTION]… [FILE]…

[root@localhost ~]# vim +2 /etc/passwd //直接打开file, 光标在第二行
[root@localhost ~]# cp /etc/passwd passwd
[root@localhost ~]# echo "zabbix" >>passwd
[root@localhost ~]# vim -d /etc/passwd passwd //比较两个文件

3.png

vim关闭文件

末行模式中: 
:q 退出 
:q! 强制退出,丢弃做出的修改 
:wq 保存退出 
:x 保存退出 
命令模式 
ZZ: 保存退出 
ZQ :不保存退出

4.png

命令模式光标跳转

字符间跳转:

h: 左 l: 右 j: 下 k: 上

单词间跳转:

w :下一个单词的词首 
e :当前或下一单词的词尾 
b :当前或前一个单词的词首

行首行尾跳转:

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

行间移动:

G:最后一行 
1G, gg: 第一行

VIM的命令模式下的命令:

字符编辑:

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

替换命令(r, replace)

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

:s/root/admin/g 

删除命令:

d:删除命令, 可结合光标跳转命令使用,来实现范围删除 
例如:dw删除一个单词, dG删除当前光标所在行到最后一行 
d$: 删除到行尾 
d0:删除到行首 
dd: 删除光标所在的行 
#dd :多行删除

复制命令

y:复制, 工作命令相似d命令 
例如:yw复制一个单词 
yy:复制整行

粘贴命令(p, paste): :

p:粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正下方, 否则粘贴至光标的后面 
P:粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正上方, 否则粘贴至光标的后面

其他相关的编辑操作:

v:按字符选定 
V:按行选定 
选定后结合编辑命令使用 
u:撤销之前的编辑 
Ctrl+r:撤销之前的撤销

翻屏操作:

Ctrl+f:向文件尾部翻一屏 
Ctrl+b:向文件首部翻一屏 
Ctrl+d:向文件尾部翻半屏 
Ctrl+u:向文件首部翻半屏

查找操作:

/PATTERN:在全文搜索指定模式匹配的字符, 从光标的位置至文件尾部的顺序 
?PATTERN:在全文搜索指定模式匹配的字符, 从光标的位置至文件首部的顺序 
n:与当前命令同方向, /PATTERN为往后翻 
N:与当前命令反方向

VIM末行模式的操作:

地址定界

注释:以下命令不加:, 使用前须输入:进入末行模式 
start,end 
#:具体第#行, 例如2表示第2行 
#,#:表示第#行到第#行, 例如2,10表示第2行到第10行

:2,10s/root/admin/g 

#,+#:表示左侧的#表示起始, 加上右边#表示的行数

:2,+9s/admin/root/g  

.:表示当前行 
$:表示最后一行 
.,$-1:表示当前行到倒数第2行 
%:表示全文, 相当于1,$

:%s/admin/root/g

/pat1/,/pat2/:从第一个被匹配的pat1行开始,到第一个被匹配的pat2的行结束

:/admin/,/ftp/s/admin/root/g

使用方法:

后跟一个编辑命令 
d:删除 
y:复制 
w /path/to/somewhere:将范围内的行另存到指定文件 
r /path/to/somewhere:在指定位置插入指定文件的所有内容

查找和替换

地址定界s/要查找的内容/替换的内容/修饰符 
例如:替换全文的abc为123 %s/abc/123/gi 
要查找的内容:可使用模式匹配 
替换为的内容:不可使用模式, 但可以使用\1,\2等后向引用, 还可以使用&符号引用在前面找到的内容

修饰符: 
i:忽略大小写 
g:全局替换 
查找替换的分隔符可替换为其他字符

例如::s/abc/123/g可替换成 :s@abc@123@g

练习:

1、复制/etc/grub2.cfg 至/tmp目录, 用查找替换命令删除/tmp/grub2.cfg文件中的行首的空白字符

%s/^[[:space:]]//

2、复制 /etc/rc.d/init.d/functions文件至/tmp目录, 用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号

%s/^[[:space:]]/#&/

多文件模式:

vim FILE1 FILE2 FILE3...

在末行模式下输入以下命令: 
:n 切换到下一个文件 
:N 切换到上一个文件 
wall保存所有文件 
qall 退出所有

窗口分隔模式:

vim -o|-O FILE1 FILE2...

-o:水平分隔 
-O:垂直分隔 
在窗口间切换:Ctrl+w+上下左右 
单文件窗口分隔: 
Ctrl+w,s split 水平分隔 
Ctrl+w,v vertical 垂直分隔 
如下垂直分隔

5.png

定制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 简写 set noh

(5) 语法高亮

启用:syntax on 
禁用:syntax off

(6) 忽略字符大小写

启用:set ic 
禁用:set noic

(7) 获取帮助:

:help 
:help subject

原创文章,作者:M20_he,如若转载,请注明出处:http://www.178linux.com/43674

(0)
M20_heM20_he
上一篇 2016-09-06
下一篇 2016-09-06

相关推荐

  • 文件管理命令及文件名通配

    Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理类的命令 mkdir 用法: mkdir [选项]… 目录… 选项:  -p 递归创建多个目录 实例: [root@centos7 ~]# mkdir -p /tmp/jerry/2016/…

    Linux干货 2016-11-06
  • Linux下搭建路由器

    客户端1:CentOS6.9 客户端2:CentOS7.3 路由器:router1(CentOS7.3)、router2(CentOS7.3) r router3(CentOS7.3) 1 准备工作 为了避免干扰,最好建立独立的网络。 打开VMvare的虚拟网络编辑器,点击添加网络按钮,添加VMnet11并且将左下角使用“本地DHCP服务将IP地址分配给虚拟…

    Linux干货 2017-08-20
  • SRPM具体使用过程

    SRPM 简介:SRAM是Source RPM的意思,就是RPM的源代码的意思,这个SRPM就是没有经过编译的源代码。如果我们想要安装一个SRPM软件,那么就必须: 先将该软件以RPM管理的方式编译,将SRPM编译成为RPM文件 然后将编译完成的RPM文件安装到Linux系统中。 一.程序包编译: 程序包编译安装: Application-VERSION-r…

    Linux干货 2016-08-24
  • linux文件基本权限、默认权限、隐藏权限和ACL权限

    基本权限    文件属性rwx     每个文件当用ls -l查看时,都会显示文件的详细属性信息,其中在排在首位的共有10位字符信息     例如 -rw-r–rw-. 1 root root …….. 共有10位,第一位代表的是文件的类型,后边9位表示的是文件的…

    Linux干货 2016-08-04
  • 系统基础之AWK详解

    GUN awk 文本处理三工具:grup,sed,awk     grep,egrep,fgrep:文本过滤工具     sed:行编辑器         模式空间,保持空间   …

    Linux干货 2016-09-21
  • nfs 共享实验

    nfs全称为:network file system    网络文件系统 在Linux里可以理解为将一个文件夹变成共享文件夹,让其他用户都可以访问。而访问的主机其本地磁盘是没有存储文件的 创建方法如下 :     准备两台机器,一台当 client  另一台当server    &nbsp…

    Linux干货 2017-06-07