跳到主要内容

Linux-Vim 编辑器

· 阅读需 9 分钟

最后更新于 2016-10-28 21:02:00

在 Linux 这样的命令行操作系统中,必须有一款功能强大的编辑器支持我们快速完成文本编辑,这就是 Vi 编辑器;通过对其加强和升级,Vim 编辑器比前者更为强大,拥有更多的功能和颜色高亮的特性,是程序员在 Linux 下编码的利器。

Vim

Vim 是基于 Linux 下 Vi 编辑器的升级版,经过多年来的不断更新,功能也越来越强大,Vim 除过具备常用文本编辑器的编辑操作以及颜色高亮特性外,还支持自动补全、多行批量操作、指定跳转等等功能,其中代码颜色高亮特性更利于我们在命令行中进行信息的阅览和查看。而且,Vim 支持大多数操作系统,只是我们经常在 Linux 下使用它而已。当然,在 Linux 下还有一款很著名的编辑器 Emacs 。

Vim 太过强大,导致学习曲线也是非常陡峭的,不过作为一个工具,我们首先只要掌握它的基本操作就行了,至于其他功能待我们在使用过程中去发掘就行了。首先,我们应该知道 Vim 有三种模式,即命令模式插入模式EX 模式

  • 命令模式

    此模式是 Vim 的默认模式,我们可以做一些非输入操作,例如删除、复制等等,在此模式下可以进入插入模式和 EX 模式。

  • 插入模式

    此模式就是编辑模式,我们主要进行输入操作。

  • EX 模式

    此模式则是当我们完成编辑后,可以进行退出、保存等操作。

常用命令

接下来,就介绍一些常用的命令,通过这些命令我们可以很方便的快速完成大多数常用操作。

模式切换

# 命令模式进入插入模式
i // 在当前字符前开始编辑
a // 在当前字符后开始编辑
I // 在当前行首开始编辑(Shift + I ,或者开启大写)
A // 在当前行尾开始编辑(Shift + A ,或者开启大写)
o // 在当前行下添加新行开始编辑
O // 在当前行上添加新行开始编辑(Shift + O ,或者开启大写)

# 命令模式进入EX模式
: // (Shift + ;)

# 插入模式或EX模式返回到命令模式
Esc // 至少按一次 Esc 即可返回命令模式

命令模式

命令模式是 Vim 的核心模式,大多数强大的功能命令都需要在此模式下完成,常用的命令则有复制、删除、粘贴、移动等等。而且,只有在命令模式下才能进入插入模式或者 EX 模式。

移动光标

h  // 光标左移
j // 光标下移
k // 光标上移
l // 光标右移

fx // 移动光标到当前行的下一个 x(任意字母)处(; 重复上一个f命令)
Fx // 移动光标到当前行的上一个 x(任意字母)处(; 重复上一个F命令)
tx // 移动光标到当前行的下一个 x(任意字母)左边(; 重复上一个t命令)
Tx // 移动光标到当前行的上一个 x(任意字母)左边(; 重复上一个T命令)


w // 光标后移一个单词到词首(W 也行)
e // 光标后移一个单词到词尾(E 也行)
b // 光标前移一个单词到词首(B 也行)

* // 向下匹配当前光标所在字符串
# // 向上匹配当前光标所在字符串

^ // 光标移动到行首(数字 0 也行)
$ // 光标移动到行尾

gg // 光标移动到文件首行行首(ngg 第n行行首)
G // 光标移动到文件末行行首(nG 第n行行首)(Shift + G ,或者开启大写)

`. // 光标返回到上次编辑的位置
`a // 光标移动到书签a处

% // 光标在 ()、[]、{} 等符号之间左右移动

H // 光标移动到当前屏顶端行首
M // 光标移动到当前屏中部行首
L // 光标移动到当前屏底部行首

Ctrl + F // 向下移动一屏
Ctrl + D // 向下滚动半屏
Ctrl + B // 向上滚动一屏
Ctrl + U // 向上滚动半屏

复制、粘贴、剪切/删除

# 复制
yy // 复制光标所在整行
nyy // 复制光标所在行开始向下 n 行,例如 2yy

# 粘贴
p // 光标所在行下方添加一行并粘贴剪贴板或该行
np // 光标所在行下方添加 n 行并粘贴剪贴板或该行,例如 2p
P // 光标所在行上方添加一行并粘贴剪贴板或该行
nP // 光标所在行上方添加 n 行并粘贴剪贴板或该行,例如 2P

# 删除/剪切
dd // 删除/剪切光标所在整行,D 亦可
ndd // 删除/剪切光标所在行开始向下 n 行,nD 亦可,例如 2dd

dgg // 光标所在行到文档开头之间全部删除/剪切
dG // 光标所在行到文档结尾之间全部删除/剪切

dngg // 光标所在行到第 n 行之间全部删除/剪切,dnG 亦可,例如 d2gg

d+^ // 光标所在字符到行首之间全部删除/剪切
d+$ // 光标所在字符到行尾之间全部删除/剪切,D 亦可

dw // 删除光标所在处一个单词、符号

x // 删除光标所在字符
nx // 删除光标所在字符开始向后 n 个字符,例如 2x
nX // 删除光标所在字符开始向前 n 个字符,例如 2X

撤销、恢复

u   // 撤销

Ctrl+r // 恢复

插入模式

插入模式其实就是我们所说的编辑模式,输入模式,进行字符输入操作。在该模式下,可以按 Esc 即可退回到命令模式。

EX 模式

EX 模式可以在我们编辑完之后,进行一些保存、退出操作;也可以在我们编辑中途进行一些额外的操作。

:w  // 保存当前修改
:q // 退出
:q! // 强制退出,不保存修改
:x // 保存并退出(等价 :wq)
:set nu // 显示行号(全写 :set_number)
:set nonu // 隐藏行号(全写 :set_nonumber)
:! [命令] // 执行一个命令并显示结果
:sh // 切换到命令行,使用 Ctrl+D 切换回 vim

配置