vim常用操作

vim是一款强大的命令行编辑器。

1.进入vim

指令 操作
vim file 打开或新建文件
vim +n file 打开文件,光标定位到第n行
vim + file 打开文件,光标定位到最后一行
vim +/PATTERN file 打开文件,光标定位到第一个被PATTERN匹配到的行的行首
vim -r file 恢复上次使用vim时崩溃的文件
vim file1 file2 ... 打开多个文件

2.vim工作模式

2.1 普通模式 Normal

打开vim编辑器模式进入命令模式,命令模式下可以进行光标移动、复制、剪切、删除、粘贴、撤销等一系列文本操作。

从其它模式切换到命令模式,可以使用ESC键。

2.1.1 光标移动
指令 操作
j、k、h、l 上、下、左、右
w、nw、W、nW 下1/n个单词词首(大写时忽略符号)
control+f 向前(下)翻页
control+b 向后(上)翻页
control+d 向前翻半页
control+u 向后翻半页
gg、G 前往第一行、最后一行
ngg、nG 前往第n行
H、M、L 前往屏幕可见范围内最高行、中间行、最低行
nH、nL 前往屏幕可见范围内第n行、倒数第n行
^、$、0 行首(不含空白)、行尾、行首(含空白)
zz、zt、zb 移动屏幕,使光标所在行处于中间、顶部、底部
fx、Fx 将光标移动至本行下一个/上一个x处
control+o 将光标移动到较旧的历史位置
control+i 将光标移动到较新的历史位置
2.1.2 删除、剪切、复制

x - 按字符删除/剪切
d - 按行删除/剪切

指令 操作
x、nx 剪切光标起始处的1个、n个字符
d$ 删除/剪切光标至行末
d^ 删除/剪切光标至行首(不包括行首空白 )
d0 删除/剪切光标至行首(包括行首空白)
dw 删除/剪切光标至词尾(包括空格)
de 删除/剪切光标至词尾(不包括空格)
db 删除/剪切光标至词首
dd 删除/剪切光标所在处的行
ndd 删除/剪切光标所处的行起始的共n行
c c指令 = d指令 + i(删除 + 进入INSERT模式)
y y指令类似d指令,只不过删除/剪切动作替换为复制
"ay、"by、"cy... 复制内容到a、b、c剪切板(缓冲区))
2.1.3 替换字符
指令 操作
r、nr 将光标所在处的1个、n个字符替换成下次键盘输入的字符
2.1.4 粘贴缓冲区的内容

p(小写):缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方;
P(大写):缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方;
"ap/"aP、"bp/"bP、"cp/"cP...:从a、b、c...剪切板(缓冲区)粘贴内容;

2.1.5 缩进与格式化
指令 操作
>> 光标所在行向右缩进
<< 光标所在行向左缩进
VISUAL模式下,选取行,按= 格式化所选行,自动处理缩进
2.1.6 undo & redo
指令 操作
u、nu undo,撤销此前的1个、n个操作
U 撤销一行中的所有操作
control+r redo
2.1.7 重复执行
指令 操作
. 重复执行上一次操作

2.2 输入模式 Insert

从命令模式进入输入模式可以使用iaoIAO6个指令。

指令 操作
i insert,在光标所在处输入
a append,在光标所在处后方输入
o 在光标所在处的下方打开一个新行
I 在光标所在行的行首输入
A 在光标所在行的行尾输入
O 在光标所在处的上方打开一个新行

2.3 可视化模式 Visual

指令 操作
v 按字符选定
V VISUAL LINE 按行选定
Ctrl + v VISUAL BLOCK 按列选定
  • 进入VISUAL模式后,可以结合命令模式下的光标移动操作选定内容;
  • 选定内容后,可以再使用d(删除)、c(删除并进入INSERT模式)、y(复制)等指令。

2.4 命令模式 Command

末行模式提供了VIM内建的命令行接口,可以对文本进行查找、替换,设置vim编辑环境,保存和退出文件。

2.4.1 退出vim
指令 操作
:q 直接退出
:q! 强制退出
:wq 保存并退出
:wq! 强制保存并退出
2.4.2 末行命令限定
  • 末行命令限定即在限定命令在指定的行执行,也可以单独使用来移动光标。
指令 操作
:n 特定的第n行,例如:5即第5行
:. 当前行
:$ 最后一行
:m,n 从第m行到第n行
:% 全文,同:1,$
:/pattern/ 从光标所在处起始向文件尾部第一次被模式所匹配到的行
:/pat1/,/pat2/ 从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行
2.4.3 查找
  • 查找到匹配结果后,可以使用n将光标移到下一个匹配项,N移到上一个匹配项
指令 操作
/PATTERN 从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串
?PATTERN 从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串
:/str 正向搜索,将光标移动到下方第一个包含str的行
:?str 反向搜索,将光标移动到上方第一个包含str的行
2.4.4 替换 s
  • 命令后选项:g 单行内所有匹配项、 i 忽略大小写、c 确认是否替换
  • 关键词 old 替换为 new
  • 分隔符/可以换成其它非常用字符,如@#等
指令 操作
:s/old/new 将光标所在行第一个 old 替换为 new
:s/old/new/g 将光标所在行所有 old 替换为 new
:%s/old/new/gc 全文执行替换,询问是否替换
:3,10s/old/new/gic 将第3行到第10行内容替换,忽略大小写,且每个询问是否替换
2.4.5 获取帮助
指令 操作
:help 查看帮助全文
:help subject 查看特定帮助
2.4.6 其它操作
指令 操作
:noh 取消高亮
2.4.7 执行shell命令
指令 操作
:!commond 末行模式下还可以不退出vim
2.4.8 设置vim工作特性
  • 在末行模式下的设定,仅对当前vim进程有效;如果希望永久有效,可以修改/etc/vimrc(全局)、~/.vimrc(个人)。
指令 操作
:set number, set nu 显示行号
:set nomber, set nonu 隐藏行号
:set ai 启用自动缩进
:set noai 禁用自动缩进
:set hlsearch 启用搜索高亮
:set nohlsearch 禁用搜索高亮
:syntax on 启用语法高亮
:syntax off 禁用语法高亮
:set ic 启用忽略字符大小写
:set noic 禁用忽略字符大小写

3.多文件操作

vim FILE1 FILE2 ...

在文件间切换:

:next  下一个
:prev  上一个
:first   第一个 
:last   最后一个 

退出所有文件:

:wqall 保存所有文件并退出;
:wall  保存所有文件
:qall  退出所有文件

4.多窗口操作

vim除了可以同时编辑多个文件,还可以以多个窗口打开文件

指令 操作
vim -o file1 file2 file3 ... 横向分隔窗口打开多个文件
vim -O file1 file2 file3 ... 纵向分隔窗口打开多个文件
vim -p file1 file2 file3 ... 以tab标签页的方式打开多个文件
:e file 在vim窗口中打开新的文件
:new file 纵向分割窗口并打开新文件,不指定文件时打开空白文件
:vnew file 横向分割窗口并打开新文件,不指定文件时打开空白文件
:tabe、:tabnew 在新的tab页打开文件
gt、gT 在tab页之间进行切换
control+w, w/h/j/k/l 在分割的窗口切换
control+w, s/v 将当前窗口的文件分割显示

vim自带的练习教程:vimtutor

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

推荐阅读更多精彩内容

  • 一.vi的基本概念文本编辑器有很多,图形模式下有gedit、kwrite等编辑器,文本模式下的编辑器有vi、vim...
    一线码农阅读 698评论 0 0
  • vim是由vi发展来的一个强大的文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用...
    dxldeng阅读 662评论 0 1
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    西多的大叔阅读 299评论 0 0
  •  vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类:行...
    尛尛大尹阅读 273评论 0 0
  • vim定义 vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方面编程的功能特别丰富,在程序员中被...
    饥人谷_sunny阅读 924评论 0 1