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 向下翻半页

vim之快捷键的更多相关文章

  1. vim使用快捷键

    vim使用快捷键 索引 1. 关于Vim 1.1 Vim的几种模式 2. 启动Vim 3. 文档操作 4. 光标的移动 4.1 基本移动 4.2 翻屏 4.3 标记 5. 插入文本 5.1 基本插入 ...

  2. Vim命令快捷键(网摘)

    Vim命令快捷键(网摘) 原文出处:[?---->home]

  3. 一些常用的vim编辑器快捷键:

    一些常用的vim编辑器快捷键: h」.「j」.「k」.「l」,分别控制光标左.下.上.右移一格. 按「ctrl」+「b」:屏幕往“后”移动一页. 按「ctrl」+「f」:屏幕往“前”移动一页. 按「c ...

  4. VIM常用快捷键(转载)

    移动光标 h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标点或单词分割 ...

  5. Mac下Vim编辑快捷键小结(移动光标)

    Mac下Vim编辑快捷键小结(移动光标) 1.移动到行尾"$",移动到行首"0"(数字),移动到行首第一个字符处"^" 2.移动到段首&qu ...

  6. [转贴] VIM 常用快捷键 --一直记不住

    vim 常用快捷键  原帖地址: https://www.cnblogs.com/tianyajuanke/archive/2012/04/25/2470002.html 1.vim ~/.vimrc ...

  7. vim的快捷键

    vim的快捷键 (〇)3中模式之间的切换 默认在命令模式. i键,从命令模式,进入插入模式. 冒号(:)键,从命令模式,进入末行模式. Esc键,从插入模式.末行模式,进入命令模式. (一)命令模式下 ...

  8. [转帖]VIM常用快捷键

    VIM常用快捷键 https://www.cnblogs.com/markleaf/p/7808817.html 快捷键能够显著的提高工作效率 一.移动光标 h,j,k,l 上,下,左,右ctrl-e ...

  9. vs 中 vim vax 快捷键

    高效率移动 在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样.很多新手都会一直呆在插入模式里面,因为这样易于使用.但VIM的强大之处在于 ...

  10. day3、Linux快捷键及vim命令快捷键

    Linux命令行快捷键 快捷键: tab键  自动补全路径 目录  名字,  自动不全命令 快捷键: ctrl +l(小写) 清屏 . ctrl +c 取消当前操作 快捷键: ctrl +d(小写) ...

随机推荐

  1. 在编译内核之前到底应该使用make mrproper,make distclean,make clean中的哪个命令呢?

    1. 先找到描述这三个命令的相关信息 在内核目录下使用make help命令可以获取相关信息,信息如下: Cleaning targets: clean - Remove most generated ...

  2. 最新create-react-native-app搭建rn教程

    一.前置条件: 1.nodeJS环境 2.npm 3.yarn 二.安装及项目初始化 1.安装脚手架 npm install -g create-react-native-app 2.用脚手架初始化创 ...

  3. js-xlsx

    XLSX.read(data, {type: type}); type主要取值如下: base64: 以base64方式读取: binary: BinaryString格式(byte n is dat ...

  4. nginx.conf 配置 (反向代理,负载均衡,fastdfs model)

    #user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_l ...

  5. Elasticsearch技术解析与实战--shard&replica机制

    序言 1.shard&replica机制 (1)index包含多个shard (2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力 (3)增 ...

  6. [PySpark] RDD programming on a large file

    重难点 一.parallelize 方法 一般来说,Spark会尝试根据集群的状况,来自动设定slices的数目.然而,你也可以通过传递给parallelize的第二个参数来进行手动设置. data_ ...

  7. C语言JS引擎

    基础知识 SpiderMonkey 简介 和其他的 JavaScript 引擎一样,SpiderMonkey 不直接提供像 DOM 这样的对象,而是提供解析,执行 JavaSccript 代码,垃圾回 ...

  8. 20190925 - macOS 的包管理工具

    众所周知,macOS 的包管理工具有 MacPorts 和 Homebrew,后者似乎更受欢迎,但前者但包数量更多. 喜欢手冲咖啡,看到 brew 这个词有好感,但可能部分由于网络的问题,部分因为 b ...

  9. 【HTML】常用的标签学习

    HTML(HyperText Markup Language )又称超文本标记语言,与一般文本文件不同的是它是由各种标签或标记组成 <标签名></标签名> .所以html的学习 ...

  10. python之理解装饰器

    装饰器是修改其他函数的函数.好处是可以让你的函数更简洁. 一步步理解这个概念: 一.一切皆对象. def hi(name="yasoob"): return "hi &q ...