文章目录
- Section 1:Course Introduction 课程概述
- S01L01 Course Overview 课程简介
- 课程概要
- S01L02 Course Download 课程资源下载
- S01L03 What Vim Is and Why You Should Learn It 何为 Vim?学来干啥?
- 1 何为 Vim
- 2 为何学 Vim
- Section 2:Vim Quickstart 快速上手 Vim
- S02L04 Modes(Vim 的模式)
- S02L05 Vim Quickstart:Vim 快速上手
- S02L06 Exercise 01 Creating and Editing a New File with Vim
- 1 训练目标
- 2 操作指令
- 1 创建文件
- 2 启用插入模式
- 3 给文件添加些文字
- 4 继续添加文字内容
- 5 保存文件
- 6 验证文件已保存
- S02L07 Exercise 01 Creating and Editing a New File with Vim - Walkthrough(练习01点评)
【写在前面】
从这一篇开始,我将陆续把 Udemy 上的《Vim Masterclass》的学习笔记整理出来放到对应的专栏中,一来可以巩固所学方便查找,二来对于有 Vim 学习需求的朋友也可以作为参考快速上手。在我看来,Vim 就像榴莲,爱之者为其疯狂,恨之者避恐不及。为了解放生产力,花点时间琢磨一下 Vim 还是很有必要的。
Section 1:Course Introduction 课程概述
S01L01 Course Overview 课程简介
课程概要
- 快速上手:一个简单的 Vim 练习(最基础)
- 以 Vim 特有的方式思考问题
- 转换与替换(Transformations & Substitutions):从简单替换入手,进而实现在多个文件中全局替换
- Vim 高级功能
- 文本对象(Text objects)
- 宏(Macros)
- Vim 的设置与自定义配置
- Vim 图形界面简介
课程使用的 Vim 版本:
v8.0
S01L02 Course Download 课程资源下载
通过命令行解压课程源码包:
# unzip -d <path> zipFile
$ unzip -d vimclass vimclass.zip
解压时,目标文件夹若不存在,则会自动创建。
源码包:已上传 CSDN 下载频道,也可从百度网盘下载:vimclass.zip,提取码:i4ya
S01L03 What Vim Is and Why You Should Learn It 何为 Vim?学来干啥?
1 何为 Vim
Vim
是一款高级文本编辑器。
Vim
名称由来 ——
Vim = Vi + Improved
vi
其实是 visual
的缩写。
vi
已被 Vim
事实上取代。
2 为何学 Vim
Vim
无处不在- 功能强大(宏、寄存器、命令、重复、自动补全、文本对象、查询筛选工具、全局替换……)
Vim
的知识点高度 可迁移:将Vim
集成到bash
命令行、Gmail 邮箱、定制插件等- 支持
Vim
快捷键的工具:Atom
、Eclipse
、Abiword
、Kate
、Sublime Text
、Notepad++
、XCode
……
- 支持
- 跨平台
Vim
同时支持文字界面(TUI)与图形界面(GUI)- 语法高亮:美观、便于调试(支持各种格式配置文件)
- 命令方便识记(
i
= insert,q
= quit,d
= delete) - Vim 更像一门语言(
d3w
: delete 3 words) - 文档极其全面(Vim is thoroughly documented)
- 有趣
Section 2:Vim Quickstart 快速上手 Vim
S02L04 Modes(Vim 的模式)
Vim 三大模式:
Normal / Command mode
:正常模式(命令模式)Insert mode
:插入模式Command-line / cmdline / line mode
:命令行模式(单行模式)
说明
实测时,通过查看内置帮助文档(使用
:help intro
)得知,Ubuntu 上的 Vim 版本为8.1.2269
。此时支持的 Vim 基本模式已增至 7 种:
Normal
Visual
Select
Insert
Command-line / Cmdline
Ex
Terminal-Job
S02L05 Vim Quickstart:Vim 快速上手
打开一个命令行会话:
- Mac OS:Spotlight ➡️ “terminal” ➡️ “vim”
- Windows:搜索栏 ➡️ “commandline”(“命令提示符”) ➡️ “vim”
Vim 的关闭::q!Enter
进入输入模式:(正常模式下)i
退出输入模式:Esc
保存并退出 Vim:(正常模式下):wqEnter
w
:write,写入、保存q
:quit,退出
S02L06 Exercise 01 Creating and Editing a New File with Vim
1 训练目标
- 练习用
Vim
创建文件、编辑文件。 - 练习
Vim
三大模式的切换:常规模式(normal mode
)、插入模式(insert mode
)、命令行模式(commandline / cmdline / line mode
)
练习过程中,您将使用 Vim
创建一个新文件,并输入一些内容,最后保存。1
2 操作指令
1 创建文件
先在本地打开一个命令行会话,再用 Vim 编辑一个名为 myday.txt
的新文件。在命令行输入 vim myday.txt
,按回车键 Enter 确认:
vim myday.txt
2 启用插入模式
这样就打开了一个新文件,并处在 Vim 的常规模式(normal mode)下。按下小写的 I 键进入插入模式(insert mode)
3 给文件添加些文字
接下来输入一些内容。比如写几句话来描述您一天的开始。输入过程中如果写错了,可以用退格键 Backspace 进行更正。
4 继续添加文字内容
继续向文件添加文本,输入三件让您心怀感激的事物。写完后,按 Esc 键返回常规模式。
5 保存文件
接着保存您的变更内容。这需要在常规模式下进行。若不确定是否在常规模式,可以再按一次 Esc 键进行确认。下一步,输入 :wq
+ Enter 保存文件并退出 Vim
。
6 验证文件已保存
您可以通过查看文件内容来确认是否已经保存成功。比如使用 Vim 编辑器打开该文件:输入 vim myday.txt
+ Enter 即可:
vim myday.txt
这样就能看到您输入并保存到文件中的内容。由于未做任何修改,也没有什么需要保存的变更内容,直接使用 :q!
+ Enter 键退出即可。
S02L07 Exercise 01 Creating and Editing a New File with Vim - Walkthrough(练习01点评)
本节为 L06 的讲解课(walkthrough)。
要求:必须动手练习。
:q!
中的 !
表示放弃更改。
Git 命令 DIY
提交 git 的版本通常很固定:
git add *; git commit -m 'some comments'; git push
,虽然 Windows Terminal 中可以配置 PowerShell 的历史命令,但总要切到中间修改注释信息,时间一长感觉不太高效。如果有个自定义命令,把提交注释放到最后,就会方便很多:$ git diyCmd 'some comment'
于是尝试用 git 别名:(
acp
即add
、commit
、push
的缩写)$ git config --global alias.acp '!git add * && git commit -m \"$1\" && git push'
但这样配置后,前两个命令能正常运行,但
git push
始终会把我的注释内容理解成要推送的目标分支。为了让git push
忽略最后的注释,再尝试:$ git config --global alias.acp '!git add * && git commit -m \"$1\" && git push # '
就是说,让后面的参数在执行时变成一段
shell
脚本注释。经测试,果然能行。以后类似的情况都能应对了。其实这个别名的第一版是问的 ChatGPT,但
git push
报错后,ChatGPT 分析原因为“Git 不支持在别名中直接传递参数”,建议我通过.bat
批处理任务实现。试了几次,好歹调通了:# file path: {GIT_HOME}\cmd\git-acp.bat @echo off git add * git commit -m %1 git push
但这样写效率很低:又要创建文件,又要配置环境变量,运行的格式还必须是
git-acp 'some comment'
,后面要修改命令更麻烦,没法使用 git 的内置命令。这样写还不如写成 PowerShell 的脚本:# git-acp.ps1 param([string]$Comment = "" ) cd "$(pwd)" git add * git commit -m "diy commit: $Comment" git push
感觉越来越跑偏了……本来加个
<空格>#<空格>
就解决的,被 ChatGPT 这么一带就搞错大方向了。可见提高效率的关键还是在于自己的思考和积累。
本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:
vimclass/Exercise-01-CreatingandEditingaNewFilewithVim.pdf
↩︎