Vim
图片资料1. Vim 的模式2. 启动 Vim3. 文档操作4. 光标的移动
4.1 基本移动4.2 翻屏4.3 标记 5. 插入文本
5.1 基本插入5.2 改写插入 6. 剪切复制
6.1 剪切、复制、粘贴6.2 文本对象 7. 查找与替换
7.1 查找7.2 替换 8. 排版8.1 基本排版11. 快速编辑
11.1 改变大小写11.2 替换(normal 模式)11.3 撤销与重做(normal 模式)11.4 宏 13. 编程辅助
13.1 一些按键13.9 折叠 14. 命令行
14.1 命令行模式下的快捷键14.2 执行外部命令 15. 其他
15.3 在线帮助 小技巧积累
参考文章:Vim 使用笔记
该篇博客作者将 Vim 操作详细的列出来了(太多了),很多操作目前看来不常用。
本文基于该博客进行查阅和学习,列出了常用操作,以及优化博客的写作方式。
并随着深入的学习不断更新…
最近迷上了 Vim 的操作方式,有点酷!
给所有 IDE 添加了 Vim 插件,以后尽量实现敲代码不动鼠标。
强迫自己用一段时间,觉得越来越舒服,接下来需要长时间练习以提高效率。
Vimvimtutor — 进入 vim 使用内置教程,强烈建议新手学习一下该教程
图片资料 1. Vim 的模式正常模式:可以使用快捷键命令,或按 : 输入命令行插入模式:可以输入文本,在正常模式下,按 i、a、o 等都可以进入插入模式可视模式:正常模式下
按 v 可以进入可视模式。 在可视模式下,移动光标可以选择文本按 V 进入可视行模式,总是整行整行的选中CTRL + v 进入可视块模式 替换模式:正常模式下,按 R 进入 2. 启动 Vim 3. 文档操作
:f 或 CTRL + g — 显示文档名,是否修改,光标位置
:w — 保存修改
:w filename — 保存内容到新文件(v 进入可视模式选择内容后,再执行可以保存部分文件)
:wq 或 ZZ 或 :x — 保存并退出
:q[uit] 或 CTRL-W q 或 CTRL-W CTRL-Q — 退出当前窗口
:saveas filename 或 :w filename — 另存为
4. 光标的移动 4.1 基本移动以下移动都是在 normal 模式下:
配合 d 后面使用,表示删除方式,d$ — 删除光标到行尾
配合 c 后面使用,表示删除后进入插入模式,cw — 删除光标后面的一个单词的字符,进入插入模式。
配合 数字 后面使用,表示重复次数,5l 向右移动 5 位
h j k l — 左 下 上 右
+ 或 enter — 把光标移至下一行的第一个非空白字符
- — 把光标移至上一行第一个非空白字符
e — 向后移动,光标停在单词末尾;ge — 光标移动到上一个单词末尾
w — 向后移动,光标停在下一个单词开头
b — 向前移一个单词,光标停在上一个单词开头
( — 前移一句;) — 后移一句
{ — 前移一段;} — 后移一段
fc — 光标移动到同一行的下一个 c 字符处;Fc — 上一个 c 字符处
tc — 光标移动到同一行的下一个 c 字符前;Tc — 上一个 c 字符前
; — 配合 f 与 t 使用,重复一次操作, — 配合 f 与 t 使用,反向重复一次操作
0 — 移动到行首;^ — 移动到本行第一个非空白字符处
$ — 移动到行尾
n| — 光标移动到第n列
nG 或 :n — 移动到文件第n行
H — 光标移动到屏幕最顶部一行
M — 光标移动屏幕中间一行
L — 光标移动到屏幕最底端一行
gg — 到整个文件头部
G — 到整个文件尾部
4.2 翻屏CTRL + e 向下滚动一行;CTRL + y 向上滚动一行
CTRL + d 下翻半屏;CTRL + u 上翻半屏
CTRL + f 下翻一屏;CTRL + b 上翻一屏
zz — 将当前行移动到屏幕中央
zt — 将当前行移动到屏幕顶端
zb — 将当前行移动到屏幕底端
n% — 到文件 n% 的地方
4.3 标记 5. 插入文本 5.1 基本插入i — 在光标前插入;I — 在当前行第一个非空字符前插入
技巧:按 5,再按 i,输入+,按 esc,就会出现 +++++这在插入分隔线时很有效,如 30i+ a — 在光标后插入;A — 在当前行最后插入 o — 在下面新建一行插入;O — 在上面新建一行插入; :r filename ---- 在当前位置插入另一个文件的内容 :[n]r filename — 在第n行插入另一个文件的内容 :r !date 在光标处插入当前日期与时间 同理,:r !command 可以将其他 shell 命令的输出插入当前文档 c[n]w — 改写光标后1(n)个词 c[n]l — 改写光标后1(n)个字母 c[n]h — 改写光标前1(n)个字母 [n]cc 或 [n]S — 删除指定数目的行,并以输入的文本代替 [n]s — 以输入的文本代替光标之后的1(n)个字符,相当于 c[n]l 注意区分: C — 删除光标到尾部文本,并输入新文本 S — 删除光标所在行所有文本,并输入新文本 [n]x — 剪切光标右边 n 个字符,相当于 d[n]l [n]X — 剪切光标左边 n 个字符,相当于 d[n]h d — 剪切在可视模式下选中的文本 d$ or D — 剪切当前位置到行尾的内容 d0 — 剪切当前位置到行首的内容 d[n]w — 剪切1(n)个单词 d[n]l — 剪切光标右边1(n)个字符 d[n]h — 剪切光标左边1(n)个字符 [n]dd — 剪切1(n)行 daw 和 das:剪切一个词和剪切一个句子,即使光标不在词首和句首也没关系 de — 剪切当前光标位置到单词末尾 :m,nd — 剪切 m 行到 n 行的内容 y、y[n]w、y[n]h、y[n]l、y0、y$、[n]yy、:m,ny 同 d 相关操作 p — 在光标之后粘贴;P — 在光标之前粘贴 y、d、c、v 都可以跟文本对象 aw — 一个词 as — 一句 ap — 一段 ab — 一块(包含在圆括号中的) /something — 在后面的文本中查找 something ?something — 在前面的文本中查找 something n — 向后查找下一个;N — 向前查找下一个 % — 移动到匹配的 ()、{} 或 [] 上(而且能在 #if、#else、#endif 之间跳转) :s/old/new — 用 new 替换当前行第一个 old :s/old/new/g— 用 new 替换当前行所有的 old :%s/old/new/g — 用 new 替换文件中所有的 old 所有替换命令末尾加上 c,每个替换都将需要用户确认。如:%s/old/new/gc,加上 i 则忽略大小写。 :%s/old/new/gci — 全文忽略大小写将 old 替换为 new,并要求用户确认 << — 向左缩进一个 shift;>> — 向右缩进一个 shift :le — 本行文字靠左 :ce — 本行文字居中 :ri — 本行文字靠右 J — 拼接当前行和下一行 ~ — 反转光标所在字符的大小写 可视模式下:U / u — 将选中文本全部 大写 / 小写 r — 替换光标处的字符,支持汉字 R — 进入替换模式,按 ESC 回到正常模式 [n]u 或 :undo[n] — 取消一(n)个改动 :undolist — 查看撤销历史 CTRL + R — 重做最后的改动 . — 重复上一个编辑动作 qa — 开始录制宏 a(键盘操作记录) q — 停止录制 @a — 播放宏 a gd — 跳转到局部变量的定义处 % — 移动到匹配的 ()、{} 或 [] 上(而且能在 #if、#else、#endif 之间跳转) zf — 创建折叠(可以按 v 进入可视模式后使用) zd — 删除当前行的折叠 normal 模式下按 : 进入命令行模式 :! + cmd 命令 — 执行外部命令 :!! — 执行上一次的外部命令 :h — 查看帮助文档 :h + 按键 / 命令 — 查看按键 / 命令用法 :h x — 查看 x 按键用法:h :q — 查看 :q 命令用法
:help user-manual — 打开用户手册 CTRL + ] — 跳转到 tag 主题;CTRL + T 跳回 :ver — 显示版本信息 需要选中多行时:按 v 进入可视模式,然后使用 nG 将光标跳到指定行,实现多行选中 因为可视模式下无法使用 :n 实现行跳转。
5.2 改写插入
6. 剪切复制
6.1 剪切、复制、粘贴
8. 排版
8.1 基本排版



