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. Codeforces 918 括号匹配 SGdp[i][j][k]

    A B C #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) ...

  2. Maven项目的一些依赖

    Maven构建的Spring项目需要哪些依赖? <!-- Spring依赖 --> <!-- 1.Spring核心依赖 --> <dependency> <g ...

  3. java(jdk8)死锁案例

    package testSynchorized; public class SynchronizedDeadLockTest { static Object src1 = new Object(); ...

  4. vueroute的router.addRoutes

    router.addRoutes(routes: Array<RouteConfig>)动态添加更多路由到路由器.参数必须是使用与routes构造函数选项相同的路径配置格式的Array .

  5. python之GUI编程-tkinter学习

    推荐几个学习网址:https://www.cnblogs.com/shwee/p/9427975.html https://cloud.tencent.com/developer/section/13 ...

  6. POJ 3691 DNA repair ( Trie图 && DP )

    题意 : 给出 n 个病毒串,最后再给出一个主串,问你最少改变主串中的多少个单词才能使得主串中不包含任何一个病毒串 分析 : 做多了AC自动机的题,就会发现这些题有些都是很套路的题目.在构建 Trie ...

  7. 洛谷p3955 图书管理员(NOIP2017 t2)

    蒟蒻的最后一篇pas题解...目前转c++ ing 回顾了一下,发现c++的string真的好繁啊(主要我这个蒟蒻太菜不会用) 还是pas的string操作简洁 做法 我这种蒟蒻不像别的dalao,懒 ...

  8. 常用的JAVA第三方工具类

    转自:https://www.jianshu.com/u/9c5cb1ee4c46 一. org.apache.commons.io.IOUtils 注解 说明 closeQuietly 关闭一个IO ...

  9. KNN算法之KD树

    KD树算法是先对数据集进行建模,然后搜索最近邻,最后一步是预测. KD树中的K指的是样本特征的维数. 一.KD树的建立 m个样本n维特征,计算n个特征的方差,取方差最大的第k维特征作为根节点.选择第k ...

  10. [CSP-S模拟测试]:砍树(数学+模拟)

    题目传送门(内部题1) 输入格式 第一行两个整数$n$,$k$,代表树苗的数量和最大看书的总长度.第二行n个整数$a_i$,代表林先森希望每棵树苗的最终高度. 输出格式 一行一个整数,代表最大可能的d ...