# 关于 vim

vim 是很多 linux 发行版本自带的编辑软件(如果是 vi ,建议升级到 vim ,强大很多)。熟练使用 vim 可以完全抛弃鼠标来进行任何编辑。一旦习惯了 vimmarkdown 写笔记,你一定会上瘾的。
当然它的学习成本也不低,如果是初学 vim ,运行 vimtutor 是一个聪明的决定,如果你需要中文的 vimtutor ,那就运行 vimtutor zh
因为 vim 的命令大全非常多,非常劝退,我掌握的也百不足一,但我认为已经够用了,这篇记录了我认为比较常用的命令。
本文参考 vim 使用笔记,进行大量删减,想学的更全的可以去看原文。

# vim 的模式

vim 是有几种模式的,在不同模式下,同样的操作可能会带来不同的结果,搞清楚模式非常重要!

  • 正常模式:用 vim 打开一个文档之后,默认就是这个模式,在此模式下,可以使用快捷键或者使用 : 输入命令行
  • 插入模式:在正常模式下,按 iao 等都可以进入插入模式。在插入模式下,可以输入文本
  • 可视模式:正常模式下按 v 可以进入可视模式, 在可视模式下,移动光标可以选择文本。按 V 进入可视行模式, 进行整行整行的选中。 ctrl+v 进入可视块模式。
  • 替换模式:正常模式下,按 R 进入(ps:我几乎没用过 orz)

# 光标的移动

初学者可以使用 进行移动,跳过这一节的学习。
但是这样操作会挪动右手离开输入区域,来回会降低效率。所以后期如果熟练了其他操作,可以来此处学习其他移动来提高效率。
注意,所有操作均是正常模式下的命令

# 基本移动

命令说明
hlkj
w前移一个单词,光标停在下一个单词开头
W移动下一个单词开头,但忽略一些标点
b后移一个单词,光标停在上一个单词开头
B移动到上一个单词开头,忽略一些标点
0移动到行首
$移动到行尾
gg到文件头部
G到文件尾部

# 翻屏

命令说明
ctrl+f下翻一屏
ctrl+b上翻一屏
zz将当前行移动到屏幕中央

# 标记

可以提高效率,初学者可以放到后面再学

命令说明
m{a-z}标记光标所在位置,局部标记,只用于当前文件
m{A-Z}标记光标所在位置,全局标记。标记之后,退出 Vim, 重新启动,标记仍然有效
:marks显示所有标记
`{a-z}移动到标记位置

# 插入文本

# 基本插入

初学这里可以只记 i 可以进入插入,其他的可以暂时不记,影响不大

命令说明
i在光标前插入 PS: 按 8,再按 i,进入插入模式,输入 =, 按 esc 进入命令模式,就会出现 8 个 =
I在当前行第一个非空字符前插入
a在光标后插入
A在当前行最后插入
o光标后一行插入
O光标前一行插入

# 改写

这里我常用的只有一个 s ,可以配合 v 选中后进行修改。
s 相当于 x (删除)+ i (插入)两步的合并。

# 常用文本操作的实现

vim 中的删除就是剪切,务必注意按键的大小写区别。

# 复制

文本操作实现方式
复制行中部分文本v 进行选中,选中后按 y 即完成复制
快速复制某行正常模式 ,双击 y 可以快速复制光标所在行
多行复制使用 V 选中,按 y 进行复制

# 剪切和删除

文本操作实现方式
删除或者剪切行中部分文本v 选中, x 进行删除或剪切
删除或剪切某行正常模式 下,双击 d
多行删除或者剪切使用 V 选中,按 d 进行删除或者剪切 (这里其实也可以用 x 删除)

# 粘贴

正常模式 下,按 p 会在光标后进行粘贴, P 在光标前粘贴

# 查找

  • 正常模式 下, /thing , 代表搜索光标后的 thing
  • 正常模式 下, ?thing , 代表搜索光标前的 thing
  • n 向后搜索下一个,按 N 向前搜索下一个

# 替换

  • 正常模式下:n1,n2s/old/new/g : 用 new 替换文件 n1 行到 n2 行所有的 old。
  • 正常模式下:%s/old/new/g : 用 new 替换文件中所有的 old。

# 撤回以及取消撤回

  • 撤回: 正常模式下 ,按 u ,可以多次按 u 撤回更多步
  • 手抖撤回多了,想回退到撤回前怎么办: ctrl+r

# 其他

  • 补全: ctrl+n 或者 ctrl+p , 如果有多个选项, ctrl+n 代表向后选择, ctrl+p 代表向前选择
  • 重复操作:部分操作可以通过按 . 进行重复操作

# 排版

命令说明
>>向右缩进一个 shiftwidth , 可以用: set shiftwidth=4 设置长度
<<向左缩进一个 shiftwidth

# 文档操作

仅介绍操作文档的我常用的基本操作。
所有命令需在 正常模式下进行 ,注意区分 大小写 ,vim 所有按键操作均对 大小写 敏感,请务必注意 大小写

命令说明
:w保存修改
:wqZZ:x保存并退出
:q退出,若强制退出为 :q!
:e#ctrl+^回到刚才编辑的文件,很实用
:f filename改变编辑的文件名,这时再保存相当于另存为
:saveas newfilename另存为
:Sex水平分割一个窗口,浏览文件系统,用于多文件操作
Explore 或者 Ex打开文件浏览器

# 多文件操作

多文件时可以通过切换文件实现文件间的查看以及复制粘贴

# 多标签编辑多文件

# 以多标签的形式打开 a.md 和 b.md
vim -p a.md b.md
  • 切换标签: :tabn : 切换到下一个标签; :tabp : 切换到上一个标签,也可用 ctrl+shift+↑ctrl+shift+↓ 代替
  • 移动标签: :tabm[n] , 代表将文件移到第 [n] 个标签之后,[n] 代表数字,比如 :tabm0 代表移到第一个标签
  • 关闭标签: :tabc[lose] -- 关闭当前的标签页; :tabo[nly] -- 关闭其它的标签页; :qall -- 关闭全部标签

# 分屏编辑

# 水平分割窗口,同时打开 file1 和 file2
vim -o file1 file2
# 垂直分割窗口,同时打开 file1 和 file2
vim -O file1 file2
  • 切换窗口: ctrl+ w w , 注意是按着 ctrl 双击 w , ctrl+ w p 代表切换到前一个窗口
  • 关闭窗口: :qall -- 关闭全部窗口
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

木 白 微信支付

微信支付

木 白 支付宝

支付宝

木 白 贝宝

贝宝