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。每次移动光标,都会改变高亮选区的边界。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 3,113评论 0 3
  • dpkg 学习 安装mysql apt-get install mysql-server-5.6 apt-get ...
    sharonji阅读 427评论 0 0
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,713评论 3 48
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,046评论 9 467
  • 我不知道你知不知道,如果穿鞋的时间超过20个小时,人的脚就会肿起来,脚踝像麻木的水萝卜,而脚像注了水的猪手。 当我...
    c0nleyinnn阅读 151评论 0 0