[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- ...
随机推荐
- 特殊字符(包括emoji)梳理和UTF8编码解码原理(转)
转自:https://www.jianshu.com/p/57c27d67a8a8 背景知识 emoji表情符号,是20世纪90年代由NTT Docomo栗田穣崇(Shigetaka Kurit)创建 ...
- Django【第3篇】:Django之模板语法
Django框架之第三篇模板语法(重要!!!) 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: ...
- DUBBO原理、应用与面经总结
研读dubbo源码已经有一段时间了,dubbo中有非常多优秀的设计模式和示例代码值得学习,但是dubbo的调用层级和方法链都较为繁杂,如果不对源码思路进行梳理则很容易忘却,因此总结一篇研读心得,从阅读 ...
- 两个jquery编写插件实例
(1) 封装基于jq弹窗插件 相信码友们对于$.fn.extexd();$.extend()以及$.fn.custom和$.custom都有一定的了解:我阐述一下我自己对于$.fn.custom和 ...
- hadoop2.7伪分布式搭建
0.配置主机名 hostnamectl set-hostname spark1 1.上传hadoop-2.7.1.tar.gz文件并解压 tar -xvf hadoop-2.7.1.tar.gz 2. ...
- RN组件的生命周期
来自:http://www.devio.org/tags/#React%20Native
- Redis实战(十一)Redis面试题
序言 单线程的redis为什么这么快? 1.纯内存操作不需要进行磁盘的 IO 2.单线程操作避免了频繁上下文切换 3.采用非阻塞的多路I/O复用模型 什么是路I/O复用模型? 核心是监听socket, ...
- [design pattern](1) Strategy
引言 最近,在学习设计模式相关的知识.本博客主要想讲一讲策略模式,这也是我学习的第一个模式.写下这篇博客,主要想记录下个人的一点理解,也是想通过写博客的方式来加深对与Strategy的一点理解.以下的 ...
- 从Mybatis中#和$的区别到SQL预编译
#和$的区别 Mybatis中参数传递可以通过#和$设置.它们的区别是什么呢? # Mybatis在解析SQL语句时,sql语句中的参数会被预编译为占位符问号? $ Mybatis在解析SQL语句时, ...
- Oracle JET(二)Oracle JET使用
Oracle JET 开发分为 Web 应用程序开发和移动应用程序开发(WebApp). Oracle JET Web 应用程序开发入门: 使用方法三种: 使用 Oracle JET Yeoman 生 ...