Vim 使用指南


Vi 编辑器由 Bill Joy 在 1976 年编码实现。Vim ( Vi Improved ) 编辑器由 Bram Moolenaar 在 1991 年开发并发布,是 Vi 编辑器的改进版。Vim 编辑器支持 Linux / Mac OS X / Windows 系统,是一款功能强大、灵活高效的文本文件编辑工具。

1 启动 Vim

Windows 系统可安装Git,打开 Git Bash 并运行如下命令来启动 Vim。
Mac OS X 系统可打开终端并运行如下命令来启动 Vim。

vim              启动
vim [filename]   启动并加载文件
                 filename 是要编辑的文件名,如文件不存在,则创建一个新文件

2 编辑模式

Vim 编辑器有四种编辑模式,分别是:

  • 普通模式 ( normal-mode )
  • 插入模式 ( insert-mode )
  • 命令模式 ( command-mode )
  • 可视模式 ( visual-mode )

2.1 普通模式 ( normal-mode )

运行 Vim 后,即进入普通模式,任意输入一个字符后即进入插入模式。在其他模式下时,可通过 Esc 键返回普通模式。

2.1.1 移动光标

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

ctrl+f             在文件中前移一页(相当于 page down)
ctrl+b             在文件中后移一页(相当于 page up)

0                  移动到当前行的段头
$                  移动到当前行的段尾 
gg                 移动到第一行的段首  
G                  移动到最后一行的段首
ta                 移动到本段第一个a前一个字符处
Ta                 移动到本段第一个a后一个字符处
fa                 移动到到下一个为a的字符处
3fa                在当前行查找第三个出现的 a
Fa                 移动到下一个为a的字符处
nG或ngg            移动到到第n段的段首
w                  移动到下一个单词开头  
b                  移动到上一个单词开头  
e                  移动到下一个单词的结尾  
^                  移动到第一个非空字符的位置  
g_                 移到本行最后一个非空字符的位置
%                  移动到匹配括号移动,如:%(,%[, %{
*                  当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处
#                  当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处
(/)                移动到 前/后句 的开始
{/}                跳转到 当前/下一个 段落的开始

在屏幕中找到需要的一页时,可以用下面的命令快速移动光标:

H   将光标移到屏幕上的起始行
nH  将光标移到屏幕上的第n行
M   将光标移到屏幕中间
L   将光标移到屏幕最后一行
nL  将光标移到屏幕倒数第n行

2.1.2 搜索匹配

/str1   正向搜索字符串 str1
n       继续搜索,找出 str1 字符串下次出现的位置
N       继续搜索,找出 str1 字符串上一次出现的位置
?str2   反向搜索字符串 str2 

Vim 中执行搜索匹配可结合 正则表达式 来搜索。

2.1.3 替换和删除

Vim常规的删除命令是 dx (前者删除 行 ,后者删除 字符 ),例如:

rc                 用 c 替换光标所指向的当前字符
nrc                用 c 替换光标所指向的前 n 个字符
5rA                用 A 替换光标所指向的前 5 个字符
x                  删除光标所指向的当前字符
nx                 删除光标所指向的前 n 个字符
3x                 删除光标所指向的前 3 个字符
dw                 删除光标右侧的字
ndw                删除光标右侧的 n 个字
3dw                删除光标右侧的 3 个字
db                 删除光标左侧的字
ndb                删除光标左侧的 n 个字
5db                删除光标左侧的 5 个字
dd                 删除光标所在行,并去除空隙
ndd                删除(剪切) n 行内容,并去除空隙
3dd                删除(剪切) 3 行内容,并去除空隙

d$                从当前光标起删除字符直到行的结束
d0                从当前光标起删除字符直到行的开始
J                 删除本行的回车符(CR),并和下一行合并

Vim常规的替换命令有 cs ,替换命令执行后,通常会由 编辑模式 进入 插入模式

s                用输入的正文替换光标所指向的字符
S                删除当前行,并进入编辑模式
ns               用输入的正文替换光标右侧 n 个字符
nS               删除当前行在内的 n 行,并进入编辑模式
cw               用输入的正文替换光标右侧的字
cW               用输入的正文替换从光标到行尾的所有字符(同 c$ )
ncw              用输入的正文替换光标右侧的 n 个字
cb               用输入的正文替换光标左侧的字
ncb              用输入的正文替换光标左侧的 n 个字
cd               用输入的正文替换光标的所在行
ncd              用输入的正文替换光标下面的 n 行
c$               用输入的正文替换从光标开始到本行末尾的所有字符
c0               用输入的正文替换从本行开头到光标的所有字符

2.1.4 复制粘贴

yy              复制当前行到内存缓冲区
nyy             复制 n 行内容到内存缓冲区
5yy             复制 5 行内容到内存缓冲区
“+y             复制 1 行到操作系统的粘贴板
“+nyy           复制 n 行到操作系统的粘贴板

p               小写字母 p,将缓冲区的内容粘贴到光标的后面
P               大写字母 P,将缓冲区的内容粘贴到光标的前面

2.1.5 撤销和重复

u               撤消前一条命令的结果
.               重复最后一条修改正文的命令

2.2 插入模式 ( insert-mode )

在正常模式下执行下列命令即进入插入模式。

a   从光标后插入
A   从当前光标所在行末尾插入
i   从光标所在处插入
I   从当前光标所在行行首插入
o   在光标所在行的下一行增添新行
O   在光标所在行的上一行增添新行

2.3 命令模式 ( command-mode )

在普通模式下输入:,即进入命令模式,又称为末行模式。用户输入的内容均显示在屏幕的最后一行,按回车键来执行命令。

2.3.1 打开文件

:e path_to_file/filename   打开文件

2.3.2 保存、退出

:w                   保存文件
:w file_temp         将文件另存为 file_temp
:wq                  保存并退出
ZZ                   保存并退出 (在普通模式下)

: q                  在未作修改的情况下退出
:q!                  不保存强制退出
ZQ                   不保存强制退出(在普通模式下)

说明:w 是 write 的缩写, q 是 quit 的缩写

2.3.3 恢复文件

当 Vim 意外退出时,可使用恢复命令 :recover 来恢复文件,也可以在启动Vim时用 -r 选项。

2.3.4 选项设置

:set option       设置选项 option

autoindent        设置该选项,则正文自动缩进
ignorecase        设置该选项,则忽略规则表达式中大小写字母的区别
number            设置该选项,则显示正文行号
ruler             设置该选项,则在屏幕底部显示光标所在行、列的位置
tabstop           设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8
mk                将选项保存在当前目录的 .exrc 文件中

2.4 可视模式 ( visual-mode )

Vim 的可视模式用于选中一块文本区域并在其上操作。3种不同的可视模式:

  • 字符可视化模式
  • 行可视化模式
  • 块可视化模式
v        进入字符可视化模式
V        进入行可视化模式
Ctrl+v  进入块可视化模式
gv        重选上次的高亮选区
o         切换高亮选区活动端
Esc       进入普通模式
I 或 A    进入插入模式

在可视模式下,很多普通模式的命令也完成相同的功能,例如 h、j、k、l、f{char}、;、,、n/N。每次移动光标,都会改变高亮选区的边界。

你可能感兴趣的:(Vim 使用指南)