0. 前言

1. 按下 Esc, 进入编辑模式

(1) 定位

命令 释义
^ 将粗光标定位到行首
b 1) 将粗光标定位到所在“单词”首位
2) 若已经在词首,则跳到上一个(若有)词的词首
3) 这里的“单词”并非严格意义的单词,变量名也算;遇到标点符号也会被分割
e 1) 将粗光标定位到所在“单词”末尾
2) 若已经在词尾,则跳到下一个(若有)词的词尾
w 将粗光标定位到下一个(若有)“单词”的词首

(2) 删除

1) 不进入插入模式的删除

命令 释义
d0 1) 0 为数字
2) 在粗光标所在行,删除粗光标之前的所有字符
d^ 同上面的 d0
d$ 在粗光标所在行,将粗光标前移一个字符,然后删除粗光标之后的所有字符
db 在粗光标所属“单词”中
1) 若粗光标不在词首,则删除粗光标之前的所有字符,粗光标选中的字符不变
2) 若粗光标在词首,则向左删除至前一个“单词”的词首,粗光标选中的字符不变
de 在粗光标所属“单词”中
1) 若粗光标不在词尾,则删除粗光标选中处及其后的所有字符,
粗光标跳到原词末尾的右边一格
2) 若粗光标在词尾,则从粗光标选中字符开始向右删除至后一个“单词”的词尾,
粗光标跳到被完整删除的”单词“的右边一格
dw 从粗光标选中处开始向后删至下一个”单词“的词首(不包括词首)
dh 删除粗光标左边的一个字符(若有),粗光标选中的字符不变
X X 为大写,效果同上面的 dh
dl 1) l 是 L 的的小写
2) 若粗光标不在行尾,则删除粗光标选中的字符,粗光标跳到原字符的右边一格
3) 若粗光标在行尾,则删除粗光标选中的字符后,粗光标跳到新的行尾
x x 为小写,效果同 del键与上面的 dl
dj 删除粗光标所在行及其下一行,粗光标跳到原行的下下行行首
dk 删除粗光标所在行及其上一行,粗光标跳到原行的下一行行首
dgg 删除从全篇开头到粗光标所行的所有内容,粗光标跳到原行的下一行行首
dG 删除从粗光标所行到全篇结尾的所有内容,粗光标跳到原行的上一行行首

2) 进入插入模式的删除

命令 释义
s 1) s 为小写
2) 删除粗光标所选中的字符,并进入插入模式
S 1) S 为大写
2) 清空粗光标所在行,并进入插入模式
3) 进入插入模式的光标留在该行
C 1) C 为大写
2) 在粗光标所在行,从粗光标选中字符开始删至行尾,并进入插入模式
c$ c 为小写(此表从这一行开始,下方的 c 均为小写),效果同上面的 C
c0 相当于执行 d0 后,进入插入模式
c^ 效果同上面的 c0
cb 相当于执行 db 后,进入插入模式
ce 相当于执行 de 后,进入插入模式
cw 相当于执行 dw 后,进入插入模式
ch 相当于执行 dh 后,进入插入模式
cl 相当于执行 dl 后,进入插入模式
cj 删除粗光标所在行,清空其下一行并进入插入模式,光标跳到原行的下一行行首
ck 删除粗光标所在行,清空其上一行并进入插入模式,光标跳到原行的上一行行首
cc 清空粗光标所在行并进入插入模式

3. 10 个特殊字符

.*[]^%/?~$

  • 在使用搜索命令时,若遇到以上 10 个特殊字符,需在前加上转义字符 \

  • 上回说到的搜索命令为 /String,其实,使用 ?String 也行

4. 在 gVim 下执行命令

(1) 执行 Shell 命令

:! ls / # 使用 ls

:w filename # 文件另存为,新文件名为 filename

(2) 局部内容另存为

  1. 按组合键 ctrl + v 进入可是模式
  2. 使用方向键选择内容
  3. 按组合键 shift + : 进入命令模式
  4. 输入 w filename 进行另存为,新文件名为 filename
  5. 若上一步输入 w! filename,意为强制覆盖

(3) 合并文件

:r filename # 将 filename 这个文件中的内容添加到当前文件中

(4) 打开多个文件

  1. 在命令行下
  2. 需要设置好 gVim 的环境变量
  3. 进入目标文件夹
  4. 输入 vim -o filename1 filename2 ...,其中 o 为小写字母,文件垂直分布
  5. 输入 vim -O filename1 filename2 ...,其中 O 为大写字母,文件水平分布
  6. ctrl + w + w 可以在各文件中切换
  7. 用普通方法,如 :q:wqq!:wq!ZZ 等可以一个一个地退出
  8. :wqa:qa! 可以一起退出

5. 致谢

  • 几年前的某个暑假,在网上搜到“小甲鱼”老师《VIM 快速入门》”公开课
  • 虽然不是计算机专业,但因为好奇听了课并做了笔记。现在翻出了当时做的笔记,整理了这篇随笔
  • 在此感谢“小甲鱼”老师
  • 我在网上找到了当时的课程,在此附上地址:VIM 快速入门

[Vim] 03 凡人进阶的更多相关文章

  1. [Vim] 01 凡人操作

    历史评价 编辑器之神 一个凡人的自我修养 成神是不可能成神的,只能是先入个门,然后一点一点学 Vim 官网 三种模式 插入模式(注意看光标) 命令模式(注意看光标) 编辑模式(注意看光标) 其实还有一 ...

  2. 03: django进阶篇

    1.1 cookie 1.cookie简介 1. cookie实质就是客户端硬盘中存放的键值对,利用这个特性可以用来做用户验证 2. 比如:{“username”: “dachengzi”} #再次访 ...

  3. 打造适合自己的vim编辑器方法总结

    vim使用方法总结 说明:这是打造适合自己的vim编辑器的进阶方法,关于vim基础知识,请自行百度.也可参考文章末尾推荐blog网址 如果觉得自己打造vim编辑器麻烦,可以从github上面克隆一个, ...

  4. 一段奇妙的vim编辑器之旅

    一.背景 对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询. ...

  5. 随处可编辑的编辑器之神VIM

    据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...

  6. 看漫画就能学SQL,简直太cool了

    对于SQl, 很多人学不会的原因是从一开始就没明白,学这东西能干啥,学会了能有什么用.甚至有些人不知道'SQL'应该怎么读,以至于一开始兴致勃勃,但是学到一半放弃了. 注意:'sql'真的不能读成'烧 ...

  7. 第3篇K8S集群部署

      一.利用ansible部署kubernetes准备: 集群介绍 本系列文档致力于提供快速部署高可用k8s集群的工具,并且也努力成为k8s实践.使用的参考书:基于二进制方式部署和利用ansible- ...

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

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

  9. 【T-SQL进阶】03.执行计划之旅-1

    到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. T- ...

随机推荐

  1. GUI学习之十五——QAbstractSpinBox学习总结

    QAbstractSpinBox是一个抽象类,是将所有步长调节器的通用的功能抽象出了一个父类.虽然QAbstractSpinBox是一个抽象类,但是可以直接实例化使用.QAbstractSpinBox ...

  2. DDD领域驱动设计初探(五):AutoMapper使用

    前言:前篇搭建了下WCF的代码,就提到了DTO的概念,对于为什么要有这么一个DTO的对象,上章可能对于这点不太详尽,在此不厌其烦再来提提它的作用: 从安全上面考虑,领域Model都带有领域业务,让Cl ...

  3. 微信公众号接口类(PHP版本)

    [项目需求] 通过微信提供的接口,实现微信公众号与后端的应用程序数据交互.消息响应等功能. [项目疑难点] 理解接口工作方式,统一接口API,响应速度.安全性等   [代码举例]   WeixinAp ...

  4. java: Set类及子类:TreeSet有序子类,HashSet无序子类:重复元素

    Set类及子类: TreeSet有序子类: HashSet无序(散列)子类 HashSet子类的内容是没有顺序的,单个元素也不会重复的(对象除外). Set<String> allSet ...

  5. hihocoder 1582 : Territorial Dispute (计算几何)(2017 北京网络赛E)

    题目链接 题意:给出n个点.用两种颜色来给每个点染色.问能否存在一种染色方式,使不同颜色的点不能被划分到一条直线的两侧. 题解:求个凸包(其实只考虑四个点就行.但因为有板子,所以感觉这样写更休闲一些. ...

  6. 调整数组顺序使奇数位于偶数前面(python)

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 方法1:冒泡  O( ...

  7. Bugku 杂项 又一张图片,还单纯吗

    又一张图片,还单纯吗 下载后,用binwalk打开图片 使用foremost 2.png进行分离 得到图片 关于foremost foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d ...

  8. 倍增求LCA算法详解

    算法介绍: 看到lca问题(不知道lca是什么自(bang)行(ni)百度),不难想到暴力的方法: 先把两点处理到同一深度,再让两点一个一个祖先往上找,直到找到一个相同的祖先: 这么暴力的话,时间复杂 ...

  9. SpringCloud 教程 (三)高可用的服务注册中心

    一.准备工作 Eureka can be made even more resilient and available by running multiple instances and asking ...

  10. 使用xshell远程连接Linux

    Linux系统对于程序员来说并不陌生,对IT技术员来说是一个很好的开发平台,因此掌握Linux系统的操作对于一个程序员来说非常有用.而对于习惯使用windows的人来说直接在Linux系统下进行操作感 ...