【Vim Masterclass 笔记01】Section 1:Course Overview + Section 2:Vim Quickstart

文章目录

  • [Section 1:Course Introduction 课程概述](#Section 1:Course Introduction 课程概述)
    • [S01L01 Course Overview 课程简介](#S01L01 Course Overview 课程简介)
    • [S01L02 Course Download 课程资源下载](#S01L02 Course Download 课程资源下载)
    • [S01L03 What Vim Is and Why You Should Learn It 何为 Vim?学来干啥?](#S01L03 What Vim Is and Why You Should Learn It 何为 Vim?学来干啥?)
      • [1 何为 Vim](#1 何为 Vim)
      • [2 为何学 Vim](#2 为何学 Vim)
  • [Section 2:Vim Quickstart 快速上手 Vim](#Section 2:Vim Quickstart 快速上手 Vim)
    • [S02L04 Modes(Vim 的模式)](#S02L04 Modes(Vim 的模式))
    • [S02L05 Vim Quickstart:Vim 快速上手](#S02L05 Vim Quickstart:Vim 快速上手)
    • [S02L06 Exercise 01 Creating and Editing a New File with Vim](#S02L06 Exercise 01 Creating and Editing a New File with Vim)
      • [1 训练目标](#1 训练目标)
      • [2 操作指令](#2 操作指令)
        • [1 创建文件](#1 创建文件)
        • [2 启用插入模式](#2 启用插入模式)
        • [3 给文件添加些文字](#3 给文件添加些文字)
        • [4 继续添加文字内容](#4 继续添加文字内容)
        • [5 保存文件](#5 保存文件)
        • [6 验证文件已保存](#6 验证文件已保存)
    • [S02L07 Exercise 01 Creating and Editing a New File with Vim - Walkthrough(练习01点评)](#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 课程简介

课程概要

  1. 快速上手:一个简单的 Vim 练习(最基础)
  2. 以 Vim 特有的方式思考问题
  3. 转换与替换(Transformations & Substitutions):从简单替换入手,进而实现在多个文件中全局替换
  4. Vim 高级功能
    1. 文本对象(Text objects)
    2. 宏(Macros)
  5. Vim 的设置与自定义配置
  6. Vim 图形界面简介

课程使用的 Vim 版本:v8.0


S01L02 Course Download 课程资源下载

通过命令行解压课程源码包:

bash 复制代码
# 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 名称由来 ------

math 复制代码
Vim = Vi + Improved

vi 其实是 visual 的缩写。

vi 已被 Vim 事实上取代。

2 为何学 Vim

  1. Vim 无处不在
  2. 功能强大(宏、寄存器、命令、重复、自动补全、文本对象、查询筛选工具、全局替换......)
  3. Vim 的知识点高度 可迁移 :将 Vim 集成到 bash 命令行、Gmail 邮箱、定制插件等
    1. 支持 Vim 快捷键的工具:AtomEclipseAbiwordKateSublime TextNotepad++XCode......
  4. 跨平台
  5. Vim 同时支持文字界面(TUI)与图形界面(GUI)
  6. 语法高亮:美观、便于调试(支持各种格式配置文件)
  7. 命令方便识记(i = insert, q = quit, d = delete)
  8. Vim 更像一门语言(d3w: delete 3 words)
  9. 文档极其全面(Vim is thoroughly documented)
  10. 有趣

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 种:

  1. Normal
  2. Visual
  3. Select
  4. Insert
  5. Command-line / Cmdline
  6. Ex
  7. 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 确认:

bash 复制代码
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 即可:

bash 复制代码
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 的历史命令,但总要切到中间修改注释信息,时间一长感觉不太高效。如果有个自定义命令,把提交注释放到最后,就会方便很多:

shell 复制代码
$ git diyCmd 'some comment'

于是尝试用 git 别名:(acpaddcommitpush 的缩写)

shell 复制代码
$ git config --global alias.acp '!git add * && git commit -m \"$1\" && git push'

但这样配置后,前两个命令能正常运行,但 git push 始终会把我的注释内容理解成要推送的目标分支。为了让 git push 忽略最后的注释,再尝试:

shell 复制代码
$ git config --global alias.acp '!git add * && git commit -m \"$1\" && git push # '

就是说,让后面的参数在执行时变成一段 shell 脚本注释。经测试,果然能行。以后类似的情况都能应对了。

其实这个别名的第一版是问的 ChatGPT,但 git push 报错后,ChatGPT 分析原因为"Git 不支持在别名中直接传递参数",建议我通过 .bat 批处理任务实现。试了几次,好歹调通了:

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 的脚本:

shell 复制代码
# git-acp.ps1
param(
    [string]$Comment = ""
)
cd "$(pwd)"
git add *
git commit -m "diy commit: $Comment"
git push

感觉越来越跑偏了......本来加个 <空格>#<空格> 就解决的,被 ChatGPT 这么一带就搞错大方向了。可见提高效率的关键还是在于自己的思考和积累。


  1. 本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:vimclass/Exercise-01-CreatingandEditingaNewFilewithVim.pdf ↩︎
相关推荐
AomanHao1 小时前
【阅读笔记】基于FPGA的红外图像二阶牛顿插值算法的实现
图像处理·笔记·算法·fpga开发·插值·超分
星迹日2 小时前
数据结构:ArrayList与顺序表
java·数据结构·经验分享·笔记·顺序表
終不似少年遊*2 小时前
数据结构之线性表
数据结构·笔记·python·算法·线性表
世事如云有卷舒2 小时前
《Rust权威指南》学习笔记(二)
笔记·学习·rust
开心的一只小青蛙3 小时前
DCMM数据能力成熟度评估模型--学习笔记(2)
笔记·学习·dcmm·数据管理能力成熟度评估模型
两笼包子一碗馄饨3 小时前
【软考网工笔记】计算机基础理论与安全——网络安全
笔记·安全·web安全
宇寒风暖3 小时前
软件工程大复习(七)面向对象设计
笔记·学习·软件工程·uml
qincjun3 小时前
Qt笔记:网络编程Tcp
网络·笔记·qt
swan4164 小时前
SCAU期末笔记 - 数据库系统概念往年试卷解析
数据库·笔记·mysql·数据库系统·数据库系统概念
冷雨夜中漫步8 小时前
领域驱动设计(4)—绑定模型与实现
java·开发语言·笔记·后端·设计模式