购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 vim编辑器

1.7.1 模式

vim最令人混淆的特征之一是它拥有3种模式。

1 命令模式

命令模式是vim的默认模式,即进入vim后默认在该模式下,执行编辑命令,如复制、粘贴、查找、替换及删除等操作。无论当前vim处于什么模式下,按下Esc键总是回到命令模式。

2 插入模式

在插入模式下才可以输入文本,从命令模式进入插入模式有很多命令可供选择。

3 底行模式

在命令模式下,使用“:”命令进入该模式。在底行模式下可以进行设置vim的命令,如显示、关闭行号等,也可以执行保存、退出vim等命令。

如图1.1所示为3种工作模式的关系图。

图1.1 vim编辑器修改3种模式的关系图

1.7.2 常用命令

1 进入插入模式

a 从光标后面开始添加文本

A 从光标所在行的末尾开始添加文本

i 从光标前面开始插入文本

I 从光标所在行的开始处插入文本

o 在目前光标所在的下一行处插入新的一行

O 在目前光标所在处的上一行插入新的一行

s 删除光标所在字符,并进入编辑模式

S 删除光标所在的行,并进入编辑模式

r 输入字符,取代光标所在的那一个字符

R 一直取代光标所在的字符,直到按下ESC键为止

2 删除与复制粘贴

x删除光标处的字符

dd删除光标所在的整行

ndd删除光标所在行及下面的n行

D或d$ 删除光标到行尾的文本,常用于删除注释语句

d^或d0 删除光标到行首的文本

nyy 从光标所在行开始向下复制n行(n不写,代表1次,下同)

np 从当前光标所在行下面粘贴n次

3 光标的移动

可以通过键盘上的4个方向键,以及Home,End,Page Up,Page Down键移动光标,在此不必多说。但效率更高的方式是使用主键盘区的h、j、k、l按键。

h 或 向左方向键(←) → 光标向左移动一个字符

j 或 向下方向鍵(↓) → 光标向下移动一个字符

k 或 向上方向鍵(↑) → 光标向上移动一个字符

l 或 向右方向鍵(→) → 光标向右移动一个字符

w光标往后移一个字

b光标往前移一个字

^光标移动到行首

$光标移动到行尾

Ctrl+F 向下翻一页 forward

Ctrl+B向上翻一页 back

Ctrl+D 向下翻半页 down

Ctrl+U 向上翻半页 up

gg光标定位到文档头

G光标定位到文档尾

H光标定位到当前页首

L光标定位到当前页的最后一行的行首

[n]+光标向后移动n行,[n]表示一个整数

[n]-光标向前移动n行,[n]表示一个整数

[n]G光标定位到第n行行首,[n]表示一个整数

4 查找

/[str] 查找字符串str,[str]表示要查找的字符串,回车后会加亮显示所有找到的字符串,接着 命令n移动到下一个找到的字符串,命令N移动到上一个找到的字符串

5 块操作

v可视化块选择状态,选中块之后,可以对块进行删除(d)、复制(y)、剪切(x)

yy复制光标所在的整行

[n]yy从光标开始往下复制n行,[n]表示一个整数

p将复制后的文本粘贴到光标处

u撤销上次操作

Ctrl + R 恢复上次操作

6 命令模式常用命令

:set number 不显示行号

:set nonumber显示行号

:q在未修改文档的情况下退出

:q!不保存退出

:w保存

:wq 保存并退出

7 部分替换(只能替换光标之所在的行)

:s/[src]/[dst] /i忽略大小写 /g全部匹配

如s/hello/world/ig表示替换一行。

:3,6 s/[src]/[dst]/ig(3-6行中找)

如:3,6 s/hello/world。

8 全部替换

:%s/[src]/[dst]/g将文档中所有src的字符串替换为dst字符串

:%s/^ //g将文档每一行行首的空格去掉

9 其他

:help查看该命令的帮助提示

:%!xxd十六进制模式

:%!xxd -r返回文本模式

如果在编辑过程中不小心按了Ctrl+S组合键,vi会处于僵死状态,按Ctrl+Q组合键可以恢复。

进行切换:用Ctrl+W组合键,然后再按W键即可切换。

在命令模式中输入gg=G:可以全文件代码自动对齐。

1.7.3 配置文件

在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。刚开始使用可能会很不习惯,其实这是可以通过修改vim的配置文件来设置vim的特性的。

为了更好地在vim下进行工作,需要手动设置一个配置文件:.vimrc。

在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:

设置完后,执行:wq命令进行保存退出即可。

下面给出一个例子,其中列出了经常用到的设置。

去掉讨厌的有关vim一致性模式,避免以前版本的一些bug和局限:set nocompatible。

显示行号:set number。

检测文件的类型:filetype on。

记录历史的行数:set history=1000。

语法高亮度显示:syntax on。

下面两行在进行编写代码时,在格式对齐上很有用。

第一行,vim使用自动对齐,也就是把当前行的对齐格式应用到下一行。

第二行,依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写很有用。

第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格。

设置匹配模式,类似当输入一个左括号时会匹配相应的右括号。

去除vim的GUI版本中的toolbar。

当vim进行编辑时,如果命令错误,会发出一个响声,该设置去掉响声。

在编辑过程中,在右下角显示光标位置的状态行。

默认情况下,寻找匹配是高亮度显示的,该设置关闭高亮显示。

查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一个以b开头的单词,当输入到/bo时,会自动找到第一个以bo开头的单词,以此类推,进行查找时,使用此设置会快速地找到答案,当你找到要匹配的单词时,别忘记回车:set incsearch。

修改一个文件后,自动进行备份,备份的文件名为原文件名加“~”后缀。

如果去除注释后,一个完整的.vimrc配置信息如下所示。 agNc4509szNC3ozKaUiaMpiFoMmLbAhWXPvNc7iOnn6p2Oz03VZduv7O869otocO

点击中间区域
呼出菜单
上一章
目录
下一章
×