Vim高手,从来不用鼠标2——替换、撤销、缩进、查找
本文章原创首发于公众号:编程三分钟
vim 替换、撤销、缩进、查找
上一次我们掌握了移动、跳转、定位、操作(删除、复制、粘贴),基本使用vim脱离鼠标完全是可以做到的了。速记如下:
移动: h,l,j,k,w,b
跳转:G nG f/F+字母
定位:G代表尽头, $代表行尾,^代表行首,w代表下一个单词,b上一个单词,e当前单词末尾
操作:y d p
知识点
- 字符替换
- 缩进与调整文本位置(居左、居中、居右)
- 字符查找
字符的替换及撤销
查找和替换是编辑器中最常用的功能之一,在普通编辑器当中查找替换时,你可能需要先移动鼠标在菜单中点击查找的功能,输入查找内容,再点击确认查找。而在vim中,所有的操作只需要敲击几下键盘就行了,手不用离开键盘区域,速度自然会快很多很多。
替换和撤销(Undo)
替换和Undo命令都是针对普通模式下的操作,这次用到三个字母,r/R,c/C,u/U
r+<待替换字母> 将游标所在的一个字母替换为其他字母(如下#替换成i)

当然了,一个一个替换甚是麻烦,不妨使用R连续替换
R 连续替换,直到按下Esc

cw 删除一个单词,并进入插入模式

C 删除从游标处开始到当前行尾,并进入插入模式

u 撤销一次操作(如下,粘贴了Internet单词三次,按u三次,撤销粘贴操作)

U(大写) 无论当前行修改了多少次,撤销当前行的所有修改

Ctrl+r redo,即撤销undo的操作(如下,删除一个单词,写入123,之后交替u和Ctrl+r,可以观察到重复撤销123输入,再恢复123输入)

快速缩进
快速缩进在编辑代码时极其有用,快速调整代码缩进非常的爽,缩进操作均在普通模式下有效
使用命令进行快速调整缩进操作
>> 整行将向右缩进

<< 整行向左回退

设置缩进字符数
命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数 (可以简写成sw,下面我都用简写)
获取目前的设定值
:set shiftwidth?

设置缩进为n个字符
:set shiftwidth=n

输入 ESC 回到普通模式,再次尝试 >> 看缩进量是否变化

调整文本位置
命令行模式下输入:le(left)命令使本行内容靠左
:le
命令行模式下输入:ce(center)命令使本行内容居中
:ce
命令行模式下输入:ri(right)命令使本行文本靠右
:ri

查找
快速查找
普通模式下输入 / 然后键入需要查找的字符串 按回车后就会进行查找。 输入n 和 N 可以继续查找。 n是查找下一个内容,N查找上一个内容。

? 与/ 功能相同,只不过?是向上而 / 是向下查找。 :noh退出查找模式

高级查找
普通模式下输入\*寻找游标所在处的单词
普通模式下输入\#同上,但 \#是向前(上)找,\*则是向后(下)找

以上查找n,N 的继续查找命令依然可以用
小结
这一节学习了替换,撤销操作及快速查找,其中替换和文档内快速查找的功能十分实用,希望能够熟练掌握。
速记如下:
替换:r+<待替换字母>,R
删除并插入:cw、C
撤销:u、U、ctrl+r
调整文本位置::le、:ce、:ri
查找:\文本、?文本、n、N

Vim高手,从来不用鼠标2——替换、撤销、缩进、查找的更多相关文章
- Vim高手,从来不用鼠标
Vim脱离鼠标第一步 平时不可缺少的会用到vim,但是避免不了鼠标,事实上,省略鼠标是完全可以的,没有想像中那么难,看我短短几行带大家一起省略鼠标. 对了,vim有三种模式,基本模式就是用来输入命令的 ...
- 为什么黑客都不用鼠标?你听说过Linux吗?
为什么黑客都不用鼠标?你听说过Linux吗? 微软和它的朋友们的如意算盘. 下面来看看微软的收入是怎么来的.首先,Windows系列操作系统,一个就是 800+RMB,每次升级又是几乎同样的价钱.Wi ...
- 解决vi/vim中粘贴会在行首多很多缩进和空格的问题
解决vi/vim中粘贴会在行首多很多缩进和空格的问题 secureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器.所以当你的服务器上的vim设置为autoindent的话,在i模式下,那 ...
- Vim使用技巧:特定文件类型关联缩进
Vim如何打开特定文件类型关联自动缩进呢?答案:将filetype indent on写入你的.vimrc文件中
- vim不用鼠标复制粘贴
第一种方法(只能复制行): 在当前行3yy(表示复制3行,多行同理),然后鼠标移到需要粘贴的位置,按p,即可粘贴 第二种方法(无限制): 按v进入visual模式,移动光标(推荐使用hjkl,用熟后比 ...
- vim基本命令之剪切复制粘贴替换
首先是剪切(删除): 剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用. 1 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了 ...
- 【vim】缩写 :ab [缩写] [要替换的文字]
一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义缩写,它可以实时地把你输入的东西替换为另外的东西.语法格式如下: :ab [缩写] [要替换的文字] 一个通用的例子是: :ab asap a ...
- Vim进阶技术:搜索和替换
行内搜索 行内搜索,也就是在当前行内进行搜索和移动,通常都与编辑命令一起使用. fx -- 移动到下一个字符x的位置,光标停留在x字符上面 tx -- 移动到下一个字符x的位置,光标停留在x前一个字符 ...
- VIM中空格和TAB的替换
在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4 (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab 对于已保存的文件,可以使用 ...
随机推荐
- Docker 容器基本操作[Docker 系列-2]
Docker 入门及安装[Docker 系列-1] 镜像就像是一个安装程序,而容器则是程序运行时的一个状态. 查看容器 查看容器 启动 docker 后,使用 docker ps 命令可以查看当前正 ...
- 【OpenCV-ANN神经网络自动驾驶】树莓派OpenCV神经网络自动驾驶小车【源码+实物】
没错!这个是我的毕业设计!!! 整个电子信息学院唯一一个优秀毕业设计 拿到这里炫耀了 实物如下: 电脑端显示效果: 自动驾驶实现过程: 1. 收集图像数据.建立局域网,让主机和Raspberry Pi ...
- Java----面向对象(继承&多态)
一.继承 什么是继承 ? 让类与类之间产生了子父类关系 ; 继承的好处是: 提高代码的复用性和维护性 java中继承的特点是: 只支持单继承.不支持多继承,但是可以多层继承; 四种权限修饰符是 : p ...
- JavaSE(一)Java程序的三个基本规则-组织形式,编译运行,命名规则
一.Java程序的组织形式 Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位. J ...
- sed流编辑器
一.前言 (一).sed 工作流程 sed 是一种在线的.非交互式的流编辑器,它一次处理一行内容.处理时,把当做前处理的行存储在临时缓存区中,成为“模式空间”(pattern space),接着用se ...
- 本地NTP服务器与客户端配置
1. NTP 简介 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议. 在集群中,为了保证各节点之间的时间一致,我们通常需要配置本地的 NT ...
- 状压DP概念 及例题(洛谷 P1896 互不侵犯)
状压DP 就是状态压缩DP.所谓状态压缩,就是将一些复杂的状态压缩起来,一般来说是压缩为一个二进制数,用01来表示某一元素的状态. 比如一排灯泡(5个) 我们可以用一串二进制01串来表示他们的状态 1 ...
- 集成Ribbon的客户端调用工具——Feign
什么是Feign? 客户端调用工具 Ribbon+RestTemplate Feign Feign特性: Feign本身包含Ribbon Fegin是一个采用基于接口的注解的声明式客户端调用工具,更加 ...
- java并发系列 - 第29天:高并发中常见的限流方式
这是java高并发系列第29篇. 环境:jdk1.8. 本文内容 介绍常见的限流算法 通过控制最大并发数来进行限流 通过漏桶算法来进行限流 通过令牌桶算法来进行限流 限流工具类RateLimiter ...
- ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程
前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...