# 主题三:编辑器 (Vim)
这一节的实操性很强,需要去实践,了解全貌后使用的时候能想到。
Vim 学习步骤。
- 阅读教程。
- 坚持使用,开始效率低,后续效率高。
- 随时查阅。
20 个小时左右可以达到使用之前编辑器的效率,但是 Vim 的高效逐渐显现。不断练习形成肌肉记忆后会非常高效。
多模态编辑器,插入文字和操纵文字处于不同的模式下。避免使用鼠标。
几乎所有的 IDE 都支持 vim 插件,加上他!不断磨合最终掌握。
# 编辑模式
- 正常模式:在文件中四处移动光标进行修改
- 插入模式:插入文本
- 替换模式:替换文本
- 可视化(一般,行,块)模式:选中文本块
- 命令模式:用于执行命令
在不同模式下,键盘的字符有不同的含义。
例如正常模式下的 x 表示删除当前光标所在的字符,而在插入模式下 x 表示插入字母 x 。在可视模式下则会删除选择文块。
根据 vim 左上角可以查看当前模式,默认启动的是正常模式。大多数情况下都是处于正常模式和插入模式。
ESC 键可以从任何模式变成正常模式。
i 键可以从正常模式下进入插入模式。
R 进入替换模式。
v 进入可视(一般)模式。
V (大写)进入可视(行)模式。
Ctrl-v 进入可视(块)模式。
# 基本操作
# 插入文本
: 从正常模式进入命令模式。键入 : 后光标会跳至屏幕下方的命令行上。该模式下有很多功能。
- :q 退出,关闭窗口。
- :w 保存
- :e {文件名} 打开要编辑的文件。
- :ls 打开缓存
- :help {标题} 打开帮助文档
- :help :w 打开 :w 命令的帮助文档
- :help w 打开 w 移动的帮助文档
# Vim 的接口其实是一种编程语言
Vim 界面本身是一种编程语言。
# 移动
- 基本移动: hjkl (左, 下, 上, 右)
- 词: w (下一个词), b (词初), e (词尾)
- 行: 0 (行初), ^ (第一个非空格字符), $ (行尾)
- 屏幕: H (屏幕首行), M (屏幕中间), L (屏幕底部)
- 翻页: Ctrl-u (上翻), Ctrl-d (下翻)
- 文件: gg (文件头), G (文件尾)
- 行数: :{行数}
或者 {行数}G ({行数}为行数) - 杂项: % (找到配对,比如括号或者 /* */ 之类的注释对)
- 查找: f{字符}, t{字符}, F{字符}, T{字符}
- 查找/到 向前/向后 在本行的{字符}
- , / ; 用于导航匹配
- 搜索: /{正则表达式}, n / N 用于导航匹配
# 选择
可视化模式:
- 可视化
- 可视化行
- 可视化块
用移动命令选中。
# 编辑
- i 进入插入模式
- 但是对于操纵/编辑文本,不单想用退格键完成
- O / o 在之上/之下插入行
- d{移动命令} 删除 {移动命令}
- 例如, dw 删除词, d$ 删除到行尾, d0 删除到行头。
- c{移动命令} 改变 {移动命令}
- 例如, cw 改变词
- 比如 d{移动命令} 再 i x 删除字符 (等同于 dl) s 替换字符 (等同于 xi)
- 可视化模式 + 操作
- 选中文字, d 删除 或者 c 改变
- u 撤销,
重做 - y 复制 / "yank" (其他一些命令比如 d 也会复制)
- p 粘贴
- 更多值得学习的: 比如 ~ 改变字符的大小写
# 计数
数字 + 名词/动词 。执行若干次操作
- 3w 向前移动三个词
- 5j 向下移动5行
- 7dw 删除7个词
# 修饰语
- ci( 改变当前括号内的内容
- ci[ 改变当前方括号内的内容
- da' 删除一个单引号字符窗, 包括周围的单引号
← 主题二:Shell 脚本 主题四:数据整理 →