Vim 编辑器是一个基于命令行的工具,是传奇编辑器 vi 的增强版。尽管图形界面的富文本编辑有很多,但是熟悉 Vim 对于每一位 Linux 的使用者都能有所帮助——无论你是经验丰富的系统管理员,还是刚上手树莓派的新手用户。

这个轻量级的编辑器是个非常强大的工具。在有经验的使用者手中,它能完成不可思议的任务。除了常规的文本编辑功能以外,它还支持一些进阶特性。例如,基于正则表达式的搜索和替换、编码转换,以及语法高亮、代码折叠等的编程特性。

使用 Vim 时有一个非常重要的一点需要注意,那就是按键的功能取决于编辑器当前的“模式”。例如,在“普通模式”输入字母j时,光标会向下移动一行。而当你在“插入模式”下输入字符,则只是正常的文字录入。

下面就是速查表,以便于你充分利用 Vim。

基本操作

快捷键 功能
Esc 从当前模式转换到“普通模式”。所有的键对应到命令。
i “插入模式”用于插入文字。回归按键的本职工作。
: “命令行模式” Vim 希望你输入类似于保存该文档命令的地方。

方向键

快捷键 功能
h 光标向左移动一个字符
j 或 Ctrl + J 光标向下移动一行
k 或 Ctrl + P 光标向上移动一行
l 光标向右移动一个字符
0 (数字 0)移动光标至本行开头
$ 移动光标至本行末尾
^ 移动光标至本行第一个非空字符处
w 向前移动一个词 (上一个字母和数字组成的词之后)
W 向前移动一个词 (以空格分隔的词)
5w 向前移动五个词
b 向后移动一个词 (下一个字母和数字组成的词之前)
B 向后移动一个词 (以空格分隔的词)
5b 向后移动五个词
G 移动至文件末尾
gg 移动至文件开头

浏览文档

快捷键 功能
( 跳转到上一句
) 跳转到下一句
{ 跳转到上一段
} 跳转到下一段
[[ 跳转到上一部分
]] 跳转到下一部分
[] 跳转到上一部分的末尾
][ 跳转到上一部分的开头

插入文本

快捷键 功能
a 在光标后插入文本
A 在行末插入文本
i 在光标前插入文本
o (小写字母 o)在光标下方新开一行
O (大写字母 O)在光标上方新开一行

特殊插入

快捷键 功能
:r [filename] 在光标下方插入文件 [filename] 的内容
:r ![command] 执行命令 [command] ,并将输出插入至光标下方

删除文本

快捷键 功能
x 删除光标处字符
dw 删除一个词
d0 删至行首
d$ 删至行末
d) 删至句末
dgg 删至文件开头
dG 删至文件末尾
dd 删除该行
3dd 删除三行

简单替换文本

快捷键 功能
r{text} 将光标处的字符替换成 {text}
R 进入覆写模式,输入的字符将替换原有的字符

复制/粘贴文本

快捷键 功能
yy 复制当前行至存储缓冲区
["x]yy 复制当前行至寄存器 x
p 在当前行之后粘贴存储缓冲区中的内容
P 在当前行之前粘贴存储缓冲区中的内容
["x]p 在当前行之后粘贴寄存器 x 中的内容
["x]P 在当前行之前粘贴寄存器 x 中的内容

撤销/重做操作

快捷键 功能
u 撤销最后的操作
Ctrl+r 重做最后撤销的操作

搜索和替换

快捷键 功能
/search_text 检索文档,在文档后面的部分搜索 search_text
?search_text 检索文档,在文档前面的部分搜索 search_text
n 移动到后一个检索结果
N 移动到前一个检索结果
:%s/original/replacement 检索第一个 “original” 字符串并将其替换成 “replacement”
:%s/original/replacement/g 检索并将所有的 “original” 替换为 “replacement”
:%s/original/replacement/gc 检索出所有的 “original” 字符串,但在替换成 “replacement” 前,先询问是否替换
:#,#s/old/new #,#代表收尾行号

书签

快捷键 功能
m {a-zA-Z} 在当前光标位置设置书签,书签名可用一个大小写字母({a-zA-Z})
:marks 列出所有书签
{a-zA-Z} 跳转到书签 {a-zA-Z}

选择文本

快捷键 功能
v 进入逐字可视模式
V 进入逐行可视模式
Esc 退出可视模式

改动选中文本

快捷键 功能
~ 切换大小写
d 删除一个词
c 变更
y 复制
> 右移
< 左移
! 通过外部命令进行过滤

保存并退出

快捷键 功能
:q 退出 Vim,如果文件已被修改,将退出失败
:w 保存文件
:w new_name 用 new_name 作为文件名保存文件
:wq 保存文件并退出 Vim
:q! 退出 Vim,不保存文件改动
ZZ 退出 Vim,如果文件被改动过,保存改动内容
ZQ 与 :q! 相同,退出 Vim,不保存文件改动

文件操作

命令 说明
:e + filename 打开新文件
:r + filename 读取文件并插入到当前文件

选项设置

命令 说明
:set ic 忽略大小写
:set is 部分匹配(like)
:set hls 高亮匹配
:set nu 显示行号

分屏启动vim

命令 说明
vim -on file1 file2... 水平分屏
vim -On file1 file2... 垂直分屏

关闭分屏

命令 说明
Ctrl + w  c 关闭当前窗口(如果是最后一个,无法关闭)
Ctrl + w q 关闭当前窗口(如果是最后一个,则退出vim)

分屏

命令 说明
Ctrl + w s 上下分屏
Ctrl + w v 左右分屏
:sp filename 左右分屏,且打开一个新的文件
:vsp filename 上下分屏,且打开一个新的文件

切换分屏(光标切换)

命令 说明
Ctrl + w l 右边
Ctrl + w h 左边
Ctrl + w j 上边
Ctrl + w k 下边

分屏尺寸调整

TIPS: (上下分屏生效)

命令 说明
Ctrl + w = 所有屏一样高度
Ctrl + w + 增加高度
Ctrl + w - 减少高度

翻页

命令 说明
Ctrl + e 向下滚动一行
Ctrl + y 向上滚动一行
Ctrl + f 向下翻一页
Ctrl + b 向上翻一页
Ctrl + u 向上翻半页
Ctrl + d 向下翻半页

最新文章

  1. GPS 气压计高度测量
  2. C#在winform中调用系统控制台输出
  3. https 页面中引入 http 资源的解决方式
  4. 应用PHPCMS V9轻松完成WAP手机网站搭建全教程
  5. 编译android源码官方教程(5)编译完之后刷机、编译fastboot
  6. 《foreach循环示例》
  7. jquery mobile页面跳转后,必须重新刷新页面js方可有效
  8. JS实现点击按钮,自增输入框个数
  9. IOS UIView 之属性篇
  10. linux下制作共享库.a和 .so
  11. spring @Scheduled 执行2次
  12. Jenkins获取git tags代码
  13. JQuery实战---初识JQuery+入门实例
  14. dubbo框架初步学习
  15. 开启gtid导入报错
  16. [C++ Primer Plus] 第5章、循环和关系表达式(一)程序清单——指针自加减优先级
  17. webpack用 babel将ES6转译ES5
  18. C# 图书整理
  19. 一步一步学EF系列一【最简单的一个实例】
  20. Spark高级数据分析&#183; 6LSA

热门文章

  1. Handler注意事项
  2. 关于域名解析|A记录|CNAME等
  3. Jmeter 时间函数
  4. Fiddler抓取https设置详解(图文)
  5. 数学建模python matlab 编程(椭圆声学原理画图证明,解析几何)
  6. pandas的用法
  7. Metasploit入门教程
  8. 检测网站的JS报错
  9. Nginx配置缓存服务器
  10. 人渣给我笔记本网络适配器里加的的“bluetooth设备(个人局域网)”,卸载不掉