【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](#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 ↩︎
相关推荐
Warren986 分钟前
Appium学习笔记
android·windows·spring boot·笔记·后端·学习·appium
彤银浦26 分钟前
PHP学习笔记1
笔记·学习·php
ReedFoley12 小时前
【笔记】动手学Ollama 第七章 应用案例1 搭建本地AI Copilot编程助手
人工智能·笔记·copilot
长安即是故里13 小时前
Maxwell学习笔记
笔记·学习
咸甜适中15 小时前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
笔记·学习·rust·egui
努力敲代码的小盆友15 小时前
[自用笔记]上传本地项目至github
笔记·github
It_张16 小时前
Building Systems with the ChatGPT API 使用 ChatGPT API 搭建系统(第五章学习笔记及总结)
笔记·学习·chatgpt
The_Second_Coming17 小时前
Linux 学习笔记 - 集群管理篇
linux·笔记·学习
使二颗心免于哀伤1 天前
《设计模式之禅》笔记摘录 - 17.模板方法模式
笔记·设计模式·模板方法模式
咸甜适中1 天前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十五)网格布局
笔记·学习·rust·egui