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. margin-top百分比问题

    (1)其实margin-top和margin-bottom的百分比,一般是按容器元素的宽度而不是高度来计算的,padding同理.

  2. note 2019.12.16

    1.无序 HTML 列表: <ul> <li>Coffee</li> <li>Tea</li> <li>Milk</li& ...

  3. A1042

    洗牌,共洗k次,每次将将原先的牌洗进输入好的位置. 步骤: 1 设置次数k,输入位置数列next[55],填充初始牌序start[55]: 2 end[next[i]]=start[i]把新的牌序赋值 ...

  4. JSP上传整个文件夹

    文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...

  5. javascript之alter的坑

    1.注意在使用alert返回两数之和时,会出现0.1+0.2并不等于0.3的bug 解决方法: var f=0.1; var g=0.2; alert((parseFloat(f)*100+parse ...

  6. android 开发,视频群聊引发短信异常

    说到 NDK 开发,其实是为了有些时候为了项目需求需要调用底层的一些 C/C++ 的一些东西:另外就是为了效率更加高些. 但是很多时候能不用就不用:这个是啥原因?个人感觉有些时候是觉得麻烦,首先要配置 ...

  7. (41)freeRTOS之任务管理

    1. 简介: 在 FreeRTOS 中没有线程和进程的区别,只有一个被翻译成任务的程序,相当于进程的概念,拥有独立的栈空间. 对于实时性,可以分为 软实时.硬实时:桌面电脑的输入处理可以看做是软实时, ...

  8. RabbitMQ(Exchange交换机详解)(四)

    Exchange:接收消息,并根据路由键转发消息所绑定的队列 ClientA,B将消息投递到交换机Exchange上,通过路由关系,投递到指定的queue1或者queue2上,通过监听投递到Clien ...

  9. 插头DP讲解+[BZOJ1814]:Ural 1519 Formula 1(插头DP)

    1.什么是插头$DP$? 插头$DP$是$CDQ$大佬在$2008$年的论文中提出的,是基于状压$D$P的一种更高级的$DP$多用于处理联通问题(路径问题,简单回路问题,多回路问题,广义回路问题,生成 ...

  10. 笨办法学Python(learn python the hard way)--练习程序41

    下面是练习41,基于python3 #ex41.py 1 #打印文档字符串 print(函数名.__doc__) 2 from sys import exit 3 from random import ...