在最开始的时候我们介绍了一些vim中的motion 包括如何在字符间、单词间、行间以及多行间移动。·但是motion中的内容可远不止我们介绍的这些,平时用到的也远不止之间介绍的那些。

之所以没有一次介绍完,主要是不想搞那么复杂,一次性全都介绍完那么篇幅会显得很长,而且显的很复杂。vim入门最重要的一步就是用起来,如果初学者因为看到入门类的文章出现一堆不知道什么意思的操作命令,肯定会被吓跑的,也就无法体会到vim的魅力了。像这种进阶类的内容我想将它们放到后面,等各位小伙伴能熟练使用vim完成编辑任务之后再来考虑通过进阶内容进一步提高使用效率。

vim屏幕行与实际行

vim中有一个wrap 设置,表示一行文本超过多少行就会自动折行,这样就不会出现在一个屏幕上显示不全的问题了。在最开始配置neovim 的基础配置的时候已经展示过该如何启用wrap 设置,这里就不再演示了

在启用自动折行的设置后,如果一行文本字符数超过设置的值会自动折行。在屏幕上显示为多行。当我们开启了显示行号的设置之后很容易区分。实际行在vim中只显示一个行号,而在屏幕上会显示多行。

我们知道行间移动使用的是j、k, 他们是在实际行之间移动,如果想要在屏幕行间移动,可以使用 gj、gk。一般针对行相关的操作,只需要在前面加上g 就可以改成在屏幕行之间的操作。例如g0 是移动光标到屏幕行行首。g$ 移动到屏幕行行尾。他们与普通的行移动motion 用法类似,即可以配合数字表示重复,也可以配合operator 来执行相应的操作。

单词与字串

在vim中一个单词由字母、数字、下划线或者其他非空白字符组成,单词间以空白字符分割。而字串是由非空白字符序列组成。这个感觉可能很抽象,但是多多联系和尝试应该就很容易明白了。

字串间的移动使用大写的WB。下面来看一个例子

  1. e.g. there's a nvim config file in "~/.config/nvim/init.lua"



我自己总结如下:

  1. 区别单词应该以字母、数字、其他非空白字符进行分类
  2. 字串仅仅以空白字符为区分
  3. 同一类型的字符序列组成的部分作为一个单词。

例如上述句子由字母、空白字符和其他非空白字符(. ' ~ /)组成, e.g. 后面是一个空白字符,因此它被划分为一个字串,而它自身经历了字母、非空字符、字母、非空字符的序列,所以vim将他们划分为了4个单词。

如果这样比较麻烦,那就简单的记住:字串比单词要长,不需要细粒度的移动,可以用字串间移动。

本次就说到这里了,各位可以配合一下最开始的几篇文章,配合使用,巩固一下motion相关使用。

vim 从嫌弃到依赖(13)——motion 进阶的更多相关文章

  1. 十三. Python基础(13)--生成器进阶

    十三. Python基础(13)--生成器进阶 1 ● send()方法 generator.send(value) Resumes the execution, and "sends&qu ...

  2. [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...

  3. [No00004F]史上最全Vim快捷键键位图(入门到进阶)

    史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版        下 ...

  4. Vim技能修炼教程(3) - 语法高亮进阶

    语法高亮进阶 首先我们复习一下上节学到的三个命令: * syntax match用于定义正则表达式和规则的对应 * highlight default定义配色方案 * highlight link将正 ...

  5. 史上最全Vim快捷键键位图(入门到进阶)

    经典版 下面这个键位图应该是大家最常看见的经典版了. 对应的简体中文版 其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图. 入门版 基本操作的入门版. 进阶版 增强版 下图是 ...

  6. NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法

    个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...

  7. apollo规划控制视频-13 motion planning with autonomous driving

  8. VIM插件攻略

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...

  9. duilib进阶教程 -- 总结 (17)

    整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完 ...

  10. ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc

    vim + ctags $ ctags #给同一个目录下的所有文件建立tags 这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件.如果tags文件不在当前目录下,能在命令模 ...

随机推荐

  1. 阿里OSS文件访问变成下载

    将 ECS 挂载 OSS 多Bucket ,进行文件存储后,发现PDF.图片在浏览器中访问URL,变成了下载,页不是预览. 1. 解决办法,文件类型 application/octet-stream  ...

  2. AliSSR 语音超分算法:让在线会议语音更明亮更自然

    超分让在线会议语音更明亮,在线会议已成为日常工作中较为普遍的沟通交流方式,接入会议的方式也呈现多样化,比如电脑入会.手机入会又或是电话入会. 雪雅.曜辰|作者 众所周知,高采样率且高带宽的音频信号富含 ...

  3. Spark Final-Examination Note

    重点 4567,Special 4,5 3道编程题,分值 35(基本书上,不超纲) 选填各 20分,简答 5 题/25分,编程题 3题/35分. 简答题参考每章课后习题 第 1 章简答题 1. 请阐述 ...

  4. AcWing 第 13 场周赛  补题记录

    比赛链接:Here AcWing 3811. 排列 签到题, 先输出 \(n\) 然后输出 \(1\sim n -1\) 即可 AcWing 3812. 机器人走迷宫 不会什么特别高级的方法 qaq, ...

  5. POJ 1015 Jury Compromise (完全背包)

    题目大意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n 个人作为陪审团的候选人,然后再从这n 个人中选m 人组成陪审团.选m 人的办法是:控方和辩 ...

  6. ios-class-guard - iOS代码混淆与加固实践

    ​ 目录 ios-class-guard - iOS代码混淆与加固实践 摘要 引言 一.class-dump 二.ios-class-guard 混淆原理 三.ios-class-guard 混淆结果 ...

  7. poj 3246 简单线段树

    线段树还真有点难写... #include <iostream> #include <cstdio> #include <cstring> #include < ...

  8. 大数相乘 a*b

    //zznu 1562//用数组模拟乘法计算的过程 #include<iostream> #include<stdio.h> #include<string.h> ...

  9. Jackson 使用 @JsonFormat 注解进行时间格式化

    本文为博主原创,未经允许不得转载: 最近帮同事定位了一个现网问题,记录一下: 项目中对所有请求的参数都进行了 Jackson 序列化,在接收请求的实体类字段上使用 @JsonFormat 注解,该注解 ...

  10. Feign拦截器和解码器

    一.业务需求 在Spring Cloud的项目中,A服务使用Feign调用B服务的某个接口,如果需要传递全局认证token或参数,在方法参数里面加相应字段的方式显然是不可取的. 首先想到的是AOP方式 ...