1. vim的三种常用模式
Vim一般有三种模式:一般模式、编辑模式和命令模式。
1.1 一般模式
当使用vim filename编辑文件时,默认进入该文件的一般模式。在这个模式下,你可以做的操作有:上下移动光标、删除某个字符、删除某行以及复制或粘贴一行或者多行。下面我们先复制一个文件,然后使用Vim打开该文件,如下所示:
[root@localhost ~]# cp /etc/sudo.conf /tmp/1.txt //文档的内容较多
[root@localhost ~]# vim /tmp/1.txt
首先复制一个文件到/tmp/目录下,并改名为1.txt。然后使用Vim工具编辑它,按回车后进入文件1.txt,该模式就是一般模式。在该模式下,我们可以移动光标的位置,操作方法如下所示:
按键 | 作用 |
h或向左的方向键 | 光标向左移动一个字符 |
l或向右的方向键 | 光标向右移动一个字符 |
k或向上的方向键 | 光标向上移动一个字符 |
j或向下的方向键 | 光标向下移动一个字符 |
Ctrl+B | 文本界面向前翻一页 |
Ctrl+F | 文本界面向后翻一页 |
数字0或者Shift+6 | 移动到本行行首 |
Shift+4 | 移动到本行行尾 |
gg | 移动到首行 |
G | 移动到行尾 |
nG(n是任意数字) | 移动到n行 |
在一般模式下,我们还可以实现字符或字符串的复制、删除、粘贴等操作,操作方法如下所示:
按键 | 作用 |
x和X | x表示向后删除一个字符,X表示向前删除一个字符 |
nX | 向后删除n个字符 |
dd | 删除/剪切光标所在的那一行 |
ndd | 删除/剪切光标所在行之后的n行 |
yy | 复制光标所在行 |
p | 从光标所在行开始,向下粘贴已经复制或粘贴的内容 |
P | 从光标所在行开始,向上粘贴已经复制或粘贴的内容 |
nyy | 从光标所在行开始,向下复制n行 |
u | 还原上一步操作 |
v | 按v后移动光标会选中指定字符,然后实现复制、粘贴等操作 |
1.2 编辑模式
在一般模式下不可以修改某一个字符,如果要修改字符,只能进入编辑模式。从一般模式进入编辑模式,只需按i、I、a、A、o、O、r和R中的某一个键即可。当进入编辑模式时,在屏幕的尾行会显示INSERT或REPLACE的字样(如果你的Centos支持中文,则会显示“插入”)。从编辑模式回到一般模式,只需按ESC键即可。具体行为对照表如下:
按键 | 作用 |
i | 在当前字符前插入 |
I | 在光标所在行的行首插入 |
a | 在当前字符后插入 |
A | 在光标所在行的行尾插入 |
o | 在当前行的下一行插入新的一行 |
O | 在当前行的上一行插入新的一行 |
1.3 命令模式
在一般模式下,输入:或者/即可进入命令模式。在该模式下,我们可以搜索某个字符或字符串,也可以实现保存、替换、退出、显示行号等操作,如下表所示:
/word | 在光标之后查找一个字符串word,按n向后继续搜索 |
?word | 在光标之前査找一个字符串word,按n向前继续捜索 |
:nl,n2s/wordl/word2/g | 在nl和n2行之间査找woidl并替换为woni2,不加g则只替换每行的第一个worth |
:1,$s/wordl/word2/g | 将文档中所有的woidl替换为word2,不加g则只替换每行的第一个wordl |
:w | 保存文本 |
:q | 退出Vim |
:w! | 强制保存,在root用户下,即使文本只读也可以完成保存 |
:q! | 强制退出,所有改动不生效 |
:wq | 保存并退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
2. vim的实践
下面展示在一个空白文档中写入有一段文字,然后保存。
输入vim 2.txt,直接按回车,进入一般模式,如下所示:
[root@localhost ~]# vim 2.txt
然后按i键进入编辑模式,在窗口的左下角会显示“-插入-”或者H-INSERT-",这说明已进入 插入模式,允许编辑文档。
This is a test file.
And this is the first time to using "vim".
It's easy to use "vim".
I like to using it, do you like it?
编辑后,按Esc键,窗口左下角显示的“-插入或者"-INSERT-”消失,然后输入“:wq”,直 接按回车保存刚才输入的文字。如图3-1所示:
图3-1
此时我们可以查看test.txt文档的内容,如下所示:
[root@localhost ~]# cat 2.txt
This is a test file.
And this is the first time to using "vim".
It's easy to use "vim".
I like to using it, do you like it?
Vim为全键盘操作的编辑器,在各模式下都有很多功能键。