[Vim] 03 凡人进阶
目录
0. 前言
- 上回 [Vim] 01 凡人操作 已经提及的,本次略过
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) 局部内容另存为
- 按组合键
ctrl + v进入可是模式 - 使用方向键选择内容
- 按组合键
shift + :进入命令模式 - 输入
w filename进行另存为,新文件名为 filename - 若上一步输入
w! filename,意为强制覆盖
(3) 合并文件
:r filename # 将 filename 这个文件中的内容添加到当前文件中
(4) 打开多个文件
- 在命令行下
- 需要设置好 gVim 的环境变量
- 进入目标文件夹
- 输入
vim -o filename1 filename2 ...,其中 o 为小写字母,文件垂直分布 - 输入
vim -O filename1 filename2 ...,其中 O 为大写字母,文件水平分布 - 用
ctrl + w + w可以在各文件中切换 - 用普通方法,如
:q、:wq、q!、:wq!、ZZ等可以一个一个地退出 - 用
:wqa、:qa!可以一起退出
5. 致谢
- 几年前的某个暑假,在网上搜到“小甲鱼”老师的《VIM 快速入门》”公开课
- 虽然不是计算机专业,但因为好奇听了课并做了笔记。现在翻出了当时做的笔记,整理了这篇随笔
- 在此感谢“小甲鱼”老师
- 我在网上找到了当时的课程,在此附上地址:VIM 快速入门
[Vim] 03 凡人进阶的更多相关文章
- [Vim] 01 凡人操作
历史评价 编辑器之神 一个凡人的自我修养 成神是不可能成神的,只能是先入个门,然后一点一点学 Vim 官网 三种模式 插入模式(注意看光标) 命令模式(注意看光标) 编辑模式(注意看光标) 其实还有一 ...
- 03: django进阶篇
1.1 cookie 1.cookie简介 1. cookie实质就是客户端硬盘中存放的键值对,利用这个特性可以用来做用户验证 2. 比如:{“username”: “dachengzi”} #再次访 ...
- 打造适合自己的vim编辑器方法总结
vim使用方法总结 说明:这是打造适合自己的vim编辑器的进阶方法,关于vim基础知识,请自行百度.也可参考文章末尾推荐blog网址 如果觉得自己打造vim编辑器麻烦,可以从github上面克隆一个, ...
- 一段奇妙的vim编辑器之旅
一.背景 对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询. ...
- 随处可编辑的编辑器之神VIM
据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...
- 看漫画就能学SQL,简直太cool了
对于SQl, 很多人学不会的原因是从一开始就没明白,学这东西能干啥,学会了能有什么用.甚至有些人不知道'SQL'应该怎么读,以至于一开始兴致勃勃,但是学到一半放弃了. 注意:'sql'真的不能读成'烧 ...
- 第3篇K8S集群部署
一.利用ansible部署kubernetes准备: 集群介绍 本系列文档致力于提供快速部署高可用k8s集群的工具,并且也努力成为k8s实践.使用的参考书:基于二进制方式部署和利用ansible- ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)
史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版 下 ...
- 【T-SQL进阶】03.执行计划之旅-1
到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. T- ...
随机推荐
- Educational Codeforces Round 55 (Rated for Div. 2) C. Multi-Subject Competition (实现,贪心,排序)
C. Multi-Subject Competition time limit per test2 seconds memory limit per test256 megabytes inputst ...
- Django【第14篇】:Django之Form组件补充
补充 一.定义的规则 class TeacherForm(Form): #必须继承Form # 创建字段,本质上是正则表达式 username = fields.CharField( required ...
- 字符编码 python2与python3的区别
目录 1. 字符编码 2. 文本编辑器存储信息的过程 3. 编码: 1. 编码的历史 2. gb2312和gbk的区别 3. 编码和解码 4. python解释器 解释代码的流程 1. 读取文本到解释 ...
- Ldap 从入门到放弃(一)
OpenLDAP 2.4版本 快速入门 本文内容是自己通过官网文档.网络和相关书籍学习和理解并整理成文档,其中有错误或者疑问请在文章下方留言. 一.Introduction to OpenLDAP D ...
- Day_04-数组,元组,列表
# for i in range(5): # for j in range(5): # print(i,j) # import re # def rm(): # a = ' 1 2 3 4 5 ' # ...
- Vue框架基础概要
Vue.js是什么? Vue.js(读音 /vjuː/,类似于 view 的读音)是一套构建用户界面(user interface)的渐进式框架.与其他重量级框架不同的是,Vue 从根本上采用最小成本 ...
- Linux内核设计与实现 总结笔记(第十五章)进程地址空间
一.地址空间 进程地址空间由进程可寻址的虚拟内存组成,内核允许进程使用这种虚拟内存中的地址. 每个进程都有一个32位或64位的平坦地址空间,空间的具体大小取决于体系结构.“平坦”指的是地址空间范围是一 ...
- RabbitMQ消息如何100%投递成功(六)
消息如何保障100%的投递成功? 什么是生产端的可靠性投递? 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(Broker)确认应答 完善的消息进行补偿机制(如网络问题没有返回确认应答 ...
- CTO爆料:2019程序员最需要了解的行业前沿技术是什么?
安森,个推CTO 毕业于浙江大学,现全面负责个推技术选型.研发创新.运维管理等工作,已带领团队开发出针对移动互联网.金融风控等行业的多项前沿数据智能解决方案. 曾任MSN中国首席架构师,拥有十余年资深 ...
- angular项目开发
第 1 步:安装 Angular CLI 你可以使用 Angular CLI 来创建项目.生成应用和库代码,以及执行各种持续开发任务,比如测试.打包和部署. 全局安装 Angular CLI. 要使用 ...