vim命令入门解析

简介: 我们假设你已经了解了 Vim 的几种常用的工作模式(正常模式、插入模式、命令模式等),如果你还不了解,请先阅读 这里。现在就让我们一起来学习一下 Vim 语吧。


我们假设你已经了解了 Vim 的几种常用的工作模式(正常模式、插入模式、命令模式等),如果你还不了解,请先阅读 这里。现在就让我们一起来学习一下 Vim 语吧。


动词

动词代表了我们打算对文本进行什么样的操作。例如:

  • d 表示

    删除delete
  • r 表示

    替换replace
  • c 表示

    修改change
  • y 表示

    复制yank
  • v 表示

    选取visual select

名词

名词代表了我们即将处理的文本。Vim 中有一个专门的术语叫做文本对象text object,下面是一些文本对象的示例:

  • w 表示一个

    单词word
  • s 表示一个

    句子sentence
  • p 表示一个

    段落paragraph
  • t 表示一个 HTML

    标签tag
  • 引号或者各种括号所包含的文本称作一个文本块。

介词

介词界定了待编辑文本的范围或者位置。例如:

  • i 表示

    “在...之内”inside
  • a 表示

    “环绕...”around
  • t 表示

    “到...位置前”to
  • f 表示

    “到...位置上”forward

下面是几个有关范围的示意图,你们感受一下:


Prepositions

组词为句

有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。文本编辑命令的基本语法如下:

  1. 动词 介词 名词

下面是一些例子(如果熟悉了上面的概念,你将会看到这些例子非常容易理解),请亲自在 Vim 中试验一番。

  1. #删除一个段落:deleteinside paragraph

  2. dip

  3. #选取一个句子: visual select inside sentence

  4. vis

  5. #修改一个单词: change inside word

  6. ciw

  7. #修改一个单词: change around word

  8. caw

  9. #删除文本直到字符“x”(不包括字符“x”):deleteto x

  10. dtx

  11. #删除文本直到字符“x”(包括字符“x”):deleteforward x

  12. dfx

数词

数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。引入数词之后,文本编辑命令的语法就升级成了下面这样:

  1. 动词 介词/数词 名词

下面是几个例子:

  1. #修改三个单词:change three words

  2. c3w

  3. #删除两个单词:deletetwo words

  4. d2w

另外,数词也可以修饰动词,表示将操作执行 n 次。于是,我们又有了下面的语法:

  1. 数词 动词 名词

请看示例:

  1. #两次删除单词(等价于删除两个单词): twicedeleteword

  2. 2dw

  3. #三次删除字符(等价于删除三个字符):three timesdeletecharacter

  4. 3x

怎么样,是不是很容易理解?


相关文章
|
11月前
|
XML 存储 Java
Vim操作指令全解析
Vim是Linux环境中高效文本编辑的强大工具,支持多种模式(普通、插入、可视、命令行)以实现灵活操作。本文全面解析Vim的基础移动、编辑指令,搜索替换功能,窗口分屏技巧,寄存器与宏使用,以及高级文本对象操作和批量处理方法。同时,提供实用配置建议和插件推荐(如NERDTree、vim-airline),帮助用户提升效率。学习资源包括内置教程`vimtutor`及官方文档,助您从新手成长为Vim高手。
633 7
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
Web App开发 移动开发 前端开发
React音频播放器样式自定义全解析:从入门到避坑指南
在React中使用HTML5原生<audio>标签时,开发者常面临视觉一致性缺失、样式定制局限和交互体验割裂等问题。通过隐藏原生控件并构建自定义UI层,可以实现完全可控的播放器视觉风格,避免状态不同步等典型问题。结合事件监听、进度条拖拽、浏览器兼容性处理及性能优化技巧,可构建高性能、可维护的音频组件,满足跨平台需求。建议优先使用成熟音频库(如react-player),仅在深度定制需求时采用原生方案。
520 12
|
Java 关系型数据库 数据库连接
Javaweb之Mybatis入门程序的详细解析
本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。
304 11
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
428 20
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
713 11
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
机器学习/深度学习 数据采集 数据挖掘
Python编程语言的魅力:从入门到进阶的全方位解析
Python编程语言的魅力:从入门到进阶的全方位解析

推荐镜像

更多
  • DNS