vim 从嫌弃到依赖(13)——motion 进阶
在最开始的时候我们介绍了一些vim中的motion
包括如何在字符间、单词间、行间以及多行间移动。·但是motion
中的内容可远不止我们介绍的这些,平时用到的也远不止之间介绍的那些。
之所以没有一次介绍完,主要是不想搞那么复杂,一次性全都介绍完那么篇幅会显得很长,而且显的很复杂。vim入门最重要的一步就是用起来,如果初学者因为看到入门类的文章出现一堆不知道什么意思的操作命令,肯定会被吓跑的,也就无法体会到vim的魅力了。像这种进阶类的内容我想将它们放到后面,等各位小伙伴能熟练使用vim完成编辑任务之后再来考虑通过进阶内容进一步提高使用效率。
vim屏幕行与实际行
vim中有一个wrap
设置,表示一行文本超过多少行就会自动折行,这样就不会出现在一个屏幕上显示不全的问题了。在最开始配置neovim
的基础配置的时候已经展示过该如何启用wrap
设置,这里就不再演示了
在启用自动折行的设置后,如果一行文本字符数超过设置的值会自动折行。在屏幕上显示为多行。当我们开启了显示行号的设置之后很容易区分。实际行在vim中只显示一个行号,而在屏幕上会显示多行。
我们知道行间移动使用的是j、k
, 他们是在实际行之间移动,如果想要在屏幕行间移动,可以使用 gj、gk
。一般针对行相关的操作,只需要在前面加上g
就可以改成在屏幕行之间的操作。例如g0
是移动光标到屏幕行行首。g$
移动到屏幕行行尾。他们与普通的行移动motion
用法类似,即可以配合数字表示重复,也可以配合operator
来执行相应的操作。
单词与字串
在vim中一个单词由字母、数字、下划线或者其他非空白字符组成,单词间以空白字符分割。而字串是由非空白字符序列组成。这个感觉可能很抽象,但是多多联系和尝试应该就很容易明白了。
字串间的移动使用大写的W
, B
。下面来看一个例子
e.g. there's a nvim config file in "~/.config/nvim/init.lua"
我自己总结如下:
- 区别单词应该以字母、数字、其他非空白字符进行分类
- 字串仅仅以空白字符为区分
- 同一类型的字符序列组成的部分作为一个单词。
例如上述句子由字母、空白字符和其他非空白字符(. ' ~ /
)组成, e.g.
后面是一个空白字符,因此它被划分为一个字串,而它自身经历了字母、非空字符、字母、非空字符的序列,所以vim将他们划分为了4个单词。
如果这样比较麻烦,那就简单的记住:字串比单词要长,不需要细粒度的移动,可以用字串间移动。
本次就说到这里了,各位可以配合一下最开始的几篇文章,配合使用,巩固一下motion相关使用。
vim 从嫌弃到依赖(13)——motion 进阶的更多相关文章
- 十三. Python基础(13)--生成器进阶
十三. Python基础(13)--生成器进阶 1 ● send()方法 generator.send(value) Resumes the execution, and "sends&qu ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)
史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版 下 ...
- Vim技能修炼教程(3) - 语法高亮进阶
语法高亮进阶 首先我们复习一下上节学到的三个命令: * syntax match用于定义正则表达式和规则的对应 * highlight default定义配色方案 * highlight link将正 ...
- 史上最全Vim快捷键键位图(入门到进阶)
经典版 下面这个键位图应该是大家最常看见的经典版了. 对应的简体中文版 其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图. 入门版 基本操作的入门版. 进阶版 增强版 下图是 ...
- NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法
个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...
- apollo规划控制视频-13 motion planning with autonomous driving
- VIM插件攻略
工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...
- duilib进阶教程 -- 总结 (17)
整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完 ...
- ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc
vim + ctags $ ctags #给同一个目录下的所有文件建立tags 这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件.如果tags文件不在当前目录下,能在命令模 ...
随机推荐
- Axure 标记元件
快照:可以用来表示控件的截图功能 箭头:有了连线,基本很少用它 便签:相关于便利贴,写些说明.备注, 标记:标记好数字,对应数字的标记做解释说明
- 注册中心/配置管理 —— SpringCloud Consul
Consul 概述 Consul 是一个可以提供服务发现,健康检查,多数据中心,key/Value 存储的分布式服务框架,用于实现分布式系统的发现与配置.Cousul 使用 Go 语言实现,因此天然具 ...
- 手把手教你在 Windows 环境中搭建 MQTT 服务器
前言 前些天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 .NET 程序接收数据等等,今天分享一下如何搭建 MQTT 服务器. MQTT 协议 ...
- BBS项目(三):侧边栏筛选功能 文章详情页搭建 点赞点踩功能 文章根评论功能
目录 复习与补充 侧边栏筛选功能 文章详情页搭建 点赞点踩样式搭建 点赞点踩功能完善 文章评论前期准备 文章根评论业务逻辑 练习 复习与补充 admin后台管理复习: admin.py文件中注册模型表 ...
- 【cJSON】轻量级的C语言JSON解析器
C++ 进阶版:[CJsonObject]C++ JSON 解析器使用教程 1. JSON与cJSON JSON -- 轻量级的数据格式 JSON 全称 JavaScript Object Notat ...
- Mac | HomeBrew 安装 & 配置 MySQL
这个是我最新并且一直推崇的方法: 1.安装:brew install mysql 2.开启mysql:mysql.server start 3.使用mysql的配置脚本:/usr/local/opt/ ...
- UVA 156 Ananagrams STL应用
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&prob ...
- 0x02 基本算法-枚举、模拟、递推
递归实现指数型枚举 int _, n, m, k, x, y; vector<int> vec; void calc(int x) { if (x == n + 1) { for (int ...
- 7 Englishi 词根
1.跟直播,跟复习课,完成作业 2. 基础差加餐,听录播 3.如何听课 4.单词学习反复多次 如何记笔记 语块的汉语意思 单词的记忆方式和固定表达 俩种方式记忆单词 语块关联记忆 基础词根词缀(6节课 ...
- CSS : 使用 z-index 的前提
使用 z-index 前 , 需要将元素 定位设置为 position : relative .