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. 2019 ACM/ICPC 全国邀请赛(西安)J And And And (树DP+贡献计算)

    Then n - 1n−1 lines follow. ii-th line contains two integers f_{a_i}(1 \le f_{a_i} < i)fai​​(1≤fa ...

  2. Hadoop之MapReduce 本机windows模式运行

    hadoop在windows本机运行 (1)在 windows环境下编译好的hadoop放到没有中文和空格的路径下 (2)编译好的hadoop内的hadoop.all文件要放到windows机器的wi ...

  3. 唤醒 App

    一.Deep Link 1.什么是 Deep Link? Deep Link 是 App 的深度连接,当单击链接或编程请求调用Web URI意图时,Android系统按顺序依次尝试以下每一个操作,直到 ...

  4. mysql PRIMARY KEY约束 语法

    mysql PRIMARY KEY约束 语法 作用:PRIMARY KEY 约束唯一标识数据库表中的每条记录. 环形直线电机 说明:主键必须包含唯一的值.主键列不能包含 NULL 值.每个表都应该有一 ...

  5. Web防止button按钮点击多次

    BtnPass.Attributes.Add("onclick", "javascript:if(document.getElementById('IsSubmited' ...

  6. Comet OJ - Contest #7 D 机器学习题 斜率优化 + 未调完

    Code: #include <cstdio> #include <algorithm> #include <cstring> #define setIO(s) f ...

  7. 「树形结构 / 树形DP」总结

    Codeforces 686 D. Kay and Snowflake 要求$O(n)$求出以每个节点为根的重心. 考虑对于一个根节点$u$,其重心一定在[各个子树的重心到$u$]这条链上.这样就能够 ...

  8. android 小游戏 ---- 数独(二)

    > 首先创建一个自己的View类   -->继承SurfaceView并实现SurfaceHolder.Callback接口    --> SurfaceView.getHolder ...

  9. 动态GI

    在Engine/Config 目录中找到ConsoleVariables.ini并打开,在其中加入 r.LightPropagationVolume = 1 ,保存,重启引擎 如果场景中有Post P ...

  10. 在命令行运行java代码

    因为尝试将运行结果通过管道命令保存,所以尝试在命令行(不借助lde来运行java代码,结果折腾了半天) 仿照的是eclipse创建文件目录的方式 最终解决方法是: #/bin/bash root_di ...