[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- ...
随机推荐
- margin-top百分比问题
(1)其实margin-top和margin-bottom的百分比,一般是按容器元素的宽度而不是高度来计算的,padding同理.
- note 2019.12.16
1.无序 HTML 列表: <ul> <li>Coffee</li> <li>Tea</li> <li>Milk</li& ...
- A1042
洗牌,共洗k次,每次将将原先的牌洗进输入好的位置. 步骤: 1 设置次数k,输入位置数列next[55],填充初始牌序start[55]: 2 end[next[i]]=start[i]把新的牌序赋值 ...
- JSP上传整个文件夹
文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...
- javascript之alter的坑
1.注意在使用alert返回两数之和时,会出现0.1+0.2并不等于0.3的bug 解决方法: var f=0.1; var g=0.2; alert((parseFloat(f)*100+parse ...
- android 开发,视频群聊引发短信异常
说到 NDK 开发,其实是为了有些时候为了项目需求需要调用底层的一些 C/C++ 的一些东西:另外就是为了效率更加高些. 但是很多时候能不用就不用:这个是啥原因?个人感觉有些时候是觉得麻烦,首先要配置 ...
- (41)freeRTOS之任务管理
1. 简介: 在 FreeRTOS 中没有线程和进程的区别,只有一个被翻译成任务的程序,相当于进程的概念,拥有独立的栈空间. 对于实时性,可以分为 软实时.硬实时:桌面电脑的输入处理可以看做是软实时, ...
- RabbitMQ(Exchange交换机详解)(四)
Exchange:接收消息,并根据路由键转发消息所绑定的队列 ClientA,B将消息投递到交换机Exchange上,通过路由关系,投递到指定的queue1或者queue2上,通过监听投递到Clien ...
- 插头DP讲解+[BZOJ1814]:Ural 1519 Formula 1(插头DP)
1.什么是插头$DP$? 插头$DP$是$CDQ$大佬在$2008$年的论文中提出的,是基于状压$D$P的一种更高级的$DP$多用于处理联通问题(路径问题,简单回路问题,多回路问题,广义回路问题,生成 ...
- 笨办法学Python(learn python the hard way)--练习程序41
下面是练习41,基于python3 #ex41.py 1 #打印文档字符串 print(函数名.__doc__) 2 from sys import exit 3 from random import ...