【Vim Masterclass 笔记02】第3章:Vim 核心知识 + L08:Vim 核心浏览命令 + L09:Vim 核心浏览命令同步练习

news2025/1/3 17:32:02

文章目录

  • Section 3:Vim Essentials(Vim 核心知识)
    • S03L08 Essential Navigation Commands
      • 1 光标的上下左右移动
      • 2 上 / 下翻页
      • 3 基于单词前移
      • 4 基于单词后移
      • 5 重新定位视图中的文本(页面重绘)
      • 6 定位到所在行的行首
      • 7 光标定位到某行
      • 8 查看当前行统计信息
    • S03L09 Exercise 02 Essential Navigation Commands
      • 1 目标
      • 2 具体操作
        • 1. 打开 nav.txt 文件
        • 2. 练习光标逐行或逐个字符移动
        • 3 按页移动光标练习
        • 4 按单词移动光标练习
        • 5 练习将光标移动到指定的行上
        • 6 自主练习
        • 7 退出 vim

Section 3:Vim Essentials(Vim 核心知识)


S03L08 Essential Navigation Commands

本节练习 Vim 浏览内容的基本操作。

1 光标的上下左右移动

图 8.1 Vim 控制光标上下左右的键盘操作

【图 8.1 Vim 控制光标上下左右的键盘操作】

即便键盘上的四个方向键失灵,HJKL 依然有效。应当熟悉 Vim 控制方向的方式,双手不离主键盘。

记忆法:H在最左边,L最右,J似鱼钩,剩下K则向上

abcd

2 上 / 下翻页

上一页:Ctrl + FForward)

下一页:Ctrl + BBackward)

3 基于单词前移

Vim 支持的文本对象(text object):单词(words)、句子(sentences)、段落(paragraphs)、块(blocks)……

按单词前移:

  • w:按单词逐个前移,标点也算一个独立的单词;
  • W:按单词逐个前移,标点不算独立的单词,予以忽略。改用 空白 作单词分隔符;

Vim 中的单词:即一个 非空的字符序列

4 基于单词后移

类比前移:

  • b:按单词逐个后移,标点也算一个独立的单词;此时空白、标点都算分隔符;
  • B:按单词逐个后移,标点不算独立的单词,予以忽略。改用 空白 作单词分隔符;

5 重新定位视图中的文本(页面重绘)

页面重绘:z + Enter

作用:将光标所在行调整至页面偏上的位置(具体偏上多少可以手动配置)。

6 定位到所在行的行首

  • 0:此时 缩进也算内容,光标移动到当前行第 1 列;
  • ^:此时 缩进不算内容,光标移动到当前行第 1 个非空字符;(类似正则表达式)

7 光标定位到某行

  • gg:前跟行号则到指定行;单独使用则定位到 第一行
  • G:前跟行号则到指定行;单独使用则定位到 最后一行
  • :LineNumberEnter:命令行模式下,冒号+目标行号,回车即定位到指定行

例如:

  • 定位到 末尾行G:$Enter(联想正则表达式)
  • 定位到 首行gg1gg:1Enter 甚至是 0gg:0Enter(类比 :$<Enter>,唯独不能用 :^<Enter>)(其实可能也表示 0 无效)

8 查看当前行统计信息

组合键:Ctrlg

图 8.2 组合键【Ctrl + g】用法示例

【图 8.2 组合键【Ctrl + g】用法示例】

缺点:不能实时刷新结果,需手动重算。

改进:命令模式下启用 ruler:set rulerEnter

实测效果:(支持状态信息实时更新)

图 8.3 命令模式下启用 ruler 展示状态信息

【图 8.3 命令模式下启用 ruler 展示状态信息】

此时再用 Ctrl + G,则显示:

图 8.4 启用 ruler 后的状态栏效果验证

【图 8.4 启用 ruler 后的状态栏效果验证】

禁用 ruler:set norulerEnter

拓展

Vim 命令模式中的配置项,激活与禁用都有固定格式——

  • 启用::set [option_name]
  • 禁用::set no[option_name]
  • 切换::set [option_name]!(开/关,取反操作,逻辑非)

S03L09 Exercise 02 Essential Navigation Commands

1 目标

练习光标在文件内的各种移动定位操作 1

2 具体操作

1. 打开 nav.txt 文件

打开本地命令行,用 vim 打开 nav.txt 文件:

cd Downloads
cd vimclass
vim nav.txt
2. 练习光标逐行或逐个字符移动

图 9.1 控制光标上下左右移动的键盘操作

【图 9.1 控制光标上下左右移动的键盘操作】

J2 10 次来让光标下移 10 行。此时光标位于下面这行:

You can also press and hold a navigation key so that it repeats.

K 键 4 次上移 4 行,光标则移至下面这行的起始位置:

To move to the right, press "l".

L 键 8 次移动到单词 “to.” 上、

再按 J 键 2 次移动到如下这行:

To move to the left, press "h".

注意观察光标是怎么保持在同一列上的(即光标相对该行左端的距离与之前一致)。

然后连续按 H 键,将光标移动到行首。

最后,按住 K 键,将光标移动到文件的起始位置。

3 按页移动光标练习

Ctrl + F 下翻一页。

Ctrl + B 上翻一页。

按住 Ctrl,并不断按下 F 键抵达文件的末尾位置。页面下翻的次数会根据当前屏幕尺寸的不同而有所浮动。切记:文件中的波浪符 ~ 表示该行已超出该文件末尾(the tildes represents lines beyond the end of the file)。

最终效果大致如下(具体也要视当前屏幕尺寸而定)。注意那些波浪符号:


This training is being provided by LinuxTrainingAcademy.com.
~
~
~
~
~
~
~
~

向上翻页则通过按住 Ctrl 键并按下 B 实现。

4 按单词移动光标练习

将光标移至下面这行。一个简单的做法是按住 K 键不放,直到光标抵达该行;要是走过了,再按 J 键回到这行:

  Far far away, behind the wild mountains, far from the countries Vokalia and

按小写的 W 键 4 次。光标移至该行的第一个逗号(,)位置;再按 W 5 次,则移至该行第二个逗号(,)位置。

按小写的 B 键 8 次,回到本句第一个单词(Far)。注意,此时逗号也被视为一个单词。

再按大写的 W 键 3 次,向前移至单词 “behind” 处。注意,其间光标不会在逗号处停留;再按大写的 W 键 4 次,则前移至单词 “far” 处。

想要返回本行中的第一个单词,需要反复按大写的 B 键 7 次。

5 练习将光标移动到指定的行上

键入 GG 移至文件首行。

按下大写的 G 键移至文件最后一行。

再键入 1GG 回到文件首行。注意该操作是否与 GG 保持一致。然后键入 29GG 移至第 29 行。

也可以用大写的 G 键定位到具体某行,如按下 3ShiftG

接着再用命令行模式移至第 44 行。键入 :44Enter。然后键入 :$Enter 移至最后一行。

要确认光标已在最后一行,键入 CtrlG 来显示当前文件的相关信息(状态栏应该可以看到 100% 字样)

6 自主练习

如果您愿意的话,可以用本节所学知识在文件中任意导航,体会其中的乐趣。

7 退出 vim

完成本节文件内容导航练习后,按 :q!Enter 键退出。


  1. 本节练习另附精美排版 PDF 格式,阅读体验更佳,详见:vimclass/Exercise-02-EssentialNavigationCommands.pdf ↩︎

  2. 默认情况下,所有单个字母的按键格式均为该字母的小写形式;若为大写,会单独添加 Shift 键来区分。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2268928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker学习记录-部署若依springcloud项目

使用docker compse部署RuoYi v3.6.4 一、打包代码 Java代码 打包前需要将127.0.0.1改成宿主机ip&#xff0c; 使用docker部署的nacos&#xff0c;应该是要改成ruoyi-nacos&#xff08;docker中的服务容器名&#xff09;。 使用idea window系统可能没有sh命令&#xff0c;不能…

Unity 实现Canvas显示3D物体

新建一个UI相机&#xff0c;选择渲染层为UI 将主相机的渲染层去掉UI层 、 将Canvas的RenderMode设置为Screen Space - Camera,将RenderCamera设置为UI相机 新建3D物体的UI父物体&#xff0c;并将3D物体的层级设置为UI层 适当的放缩3DObjParent&#xff0c;让3D物体能显示出来…

【spring】参数校验Validation

前言 在实际开发中&#xff0c;我们无法保证客户端传来的请求都是合法的。比如一些要求必传的参数没有传递&#xff0c;传来的参数长度不符合要求等&#xff0c;这种时候如果放任不管&#xff0c;继续执行后续业务逻辑&#xff0c;很有可能就会出现意想不到的bug。 有人可能会…

STM32 SPI读取SD卡

七个响应类型&#xff1a; R1 Response (Normal Response): R1响应是最基本的响应&#xff0c;包含一个字节的状态位&#xff0c;用于指示命令是否成功执行。常用。最高位为0。最低位为1表示是空闲状态。其他位是各种错误提示。 R1b Response (Normal with Busy): 类似于R1&a…

【Solidity】入门指南:智能合约开发基础

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Solidity入门指南&#xff1a;智能合约开发基础引言1. 开发环境搭建1.1 Remix I…

EasyExcel(读取操作和填充操作)

文章目录 1.准备Read.xlsx&#xff08;具有两个sheet&#xff09;2.读取第一个sheet中的数据1.模板2.方法3.结果 3.读取所有sheet中的数据1.模板2.方法3.结果 EasyExcel填充1.简单填充1.准备 Fill01.xlsx2.无模版3.方法4.结果 2.列表填充1.准备 Fill02.xlsx2.模板3.方法4.结果 …

OCR实践-问卷表格统计

前言 书接上文 OCR实践—PaddleOCROCR实践-Table-Transformer 本项目代码已开源 放在 Github上&#xff0c;欢迎参考使用&#xff0c;Star https://github.com/caibucai22/TableAnalysisTool 主要功能说明&#xff1a;对手动拍照的问卷图片进行统计分数&#xff08;对应分数…

BOE(京东方)“向新2025”年终媒体智享会落地深圳

12月27日,BOE(京东方)“向新 2025”年终媒体智享会的收官之站在创新之都深圳圆满举行,为这场为期两周、横跨三地的年度科技盛会画上了完美句号。活动期间,全面回顾了 BOE(京东方)2024年在多个关键领域取得的卓越成绩,深入剖析其在六大维度构建的“向新”发展格局,精彩呈现了以“…

Kinova在开源家庭服务机器人TidyBot++研究里大展身手

在科技日新月异的今天&#xff0c;机器人技术在家庭场景中的应用逐渐成为现实&#xff0c;改变着我们的生活方式。今天&#xff0c;我们将深入探讨一篇关于家用机器人研究的论文&#xff0c;剖析其中的创新成果&#xff0c; 论文引用链接&#xff1a;http://tidybot2.github.i…

LCE软机器人登场!热场光控下的多模态运动传奇?

大家好&#xff01;今天来了解一项液晶弹性体&#xff08;LCE&#xff09;软机器人研究——《Multimodal Autonomous Locomotion of Liquid Crystal Elastomer Soft Robot》发表于《Advanced Science》。在机器人技术不断演进的进程中&#xff0c;软机器人虽有潜力但面临诸多挑…

爆改RagFlow

爆改RagFlow 一、Rag理论概述二、Ragflow解析参数说明三、♥ RagFlow源码解析核心代码流程梳理1、OCR识别2、版面分析3、parser功能3.1 PdfParser3.1.1 首先&#xff0c;初始化3.1.2 **pdf转图片** [来自工业界的知识库 RAG 服务(二)&#xff0c;RagFlow 源码全流程深度解析](h…

centos7 免安装mysql5.7及配置(支持多个mysql)

一&#xff09; 下载免安装包&#xff1a; mysql下载地址: https://dev.mysql.com/downloads/mysql/下载时&#xff0c;选择以前5.7版本&#xff1a; image 下载第一个TAR压缩包&#xff1a; image 二&#xff09; 定义安装路径并解压安装包 1、假设需要把MySQL放到 /usr/local…

潇洒郎:部署Dify, 安装Ollama,Ollama下载模型,Dify配置模型

Ollama 1、安装ollama Windows版本下载&#xff1a;2024WindowsOllama最新0.5.4版本资源-CSDN文库, 下载速度超快&#xff0c;官网太慢了 双击安装&#xff0c;安装成功后&#xff0c;托盘区有Ollama图标 右键View logs打开目录 C:\Users\Administrator\AppData\Local\Oll…

Axure10

如果还是不行就将字体图标安装在控制面板–字体下 打开原型了之后&#xff0c;icon没有 一定要将字体库放到–》控制面板\外观和个性化\字体 里面

一维、线性卡尔曼滤波的例程(MATLAB)

这段 MATLAB 代码实现了一维线性卡尔曼滤波器的基本功能,用于估计在存在噪声的情况下目标状态的真实值 文章目录 一维线性卡尔曼滤波代码运行代码介绍1. **初始化部分**2. **数据生成**3. **卡尔曼滤波器实现**4. **结果可视化**5. **统计输出**源代码总结一维线性卡尔曼滤波 …

虚拟化 | Proxmox VE 8.x 开源的虚拟化平台快速上手指南

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x00 简介说明 前言简述 描述:作为一个爱折腾的IT打工佬,时刻以学习各类新技术新知识为目标,这不正好有一台部署了VMware vSphere ESXi 虚拟化环境的服务器,由于正好安装其系统的磁盘有坏道,经常导致使用 ESXi 异…

在 Windows 11 下的 WSL - Ubuntu 24.04 中安装 CUDA 的记录

#记录工作 以下是基于CUDA官网给定命令在 Windows 11 下的 WSL - Ubuntu 24.04 中安装 CUDA 的记录&#xff1a; 一、准备工作 确保你的 Windows 11 系统已经成功启用 WSL 功能&#xff0c;并且已经安装了 Ubuntu 24.04 操作系统。同时&#xff0c;确保系统处于联网状态&#…

《机器学习》——KNN算法

文章目录 KNN算法简介KNN算法——sklearnsklearn是什么&#xff1f;sklearn 安装sklearn 用法 KNN算法 ——距离公式KNN算法——实例分类问题完整代码——分类问题 回归问题完整代码 ——回归问题 KNN算法简介 一、KNN介绍 全称是k-nearest neighbors&#xff0c;通过寻找k个距…

《向量数据库指南》——Milvus Cloud 2.5:Sparse-BM25引领全文检索新时代

Milvus Cloud BM25:重塑全文检索的未来 在最新的Milvus Cloud 2.5版本中,我们自豪地引入了“全新”的全文检索能力,这一创新不仅巩固了Milvus Cloud在向量数据库领域的领先地位,更为用户提供了前所未有的灵活性和效率。作为大禹智库的向量数据库高级研究员,以及《向量数据…

HTML——23. 锚点和空链接二

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>其它页面锚链接</title></head><body><!--跳转到其它页面具体位置锚链接--><!--1.目标页面具体位置要设置锚点--><!--2.用a标签中的href属…