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 对于已保存的文件,可以使用 ...
随机推荐
- java oop 单列 双列 集合, 迭代器 的使用和说明
一.集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定, ...
- web设计_9_CSS常用布局,响应式
一个完整的页面和其中的组件该如何具备灵活性. 怎么样利用CSS来实现无论屏幕.窗口以及字体的大小如何变化,都可以自由扩展和收缩的分栏式页面. 要决定使用流动布局.弹性布局还是固定宽度的布局,得由项目的 ...
- Linux学习笔记07之shell
shell从广义上分为两类: GUI:GNOME KDE XFACE等 CLI:sh csh bash shell启动:当用户登录完成后,系统会自动启动shelll程序 进程:应用程序的副本,用PID ...
- C# 委托(delegate)、泛型委托和Lambda表达式
目录 # 什么是委托 # 委托声明.实例化和调用 1.声明 2.委托的实例化 3.委托实例的调用 4.委托完整的简单示例 #泛型委托 1.Func委托 2.Action委托 3.Predicate委托 ...
- 基于Docker的GitLab搭建
今天写一些Docker搭建GitLab,好久没有写博客园了,今天又回来了,为了学习技术? 建议使用Linux内核系统,或者虚拟机,首先安装docker环境(菜鸟教程) 一.下载镜像文件 如果慢的话,可 ...
- ipad pro 为什么不行
TalkingData公布的数据显示,iPad Pro在中国发行首月的销量仅为49 300台,而此前iPad Air 2发行首月后销量曾高达55.7万台.那么到底是什么原因,让这个被寄予厚望的iPad ...
- iOS的录屏功能
iOS的录屏功能其实没什么好说的,因为网上的教程很多,但是网上的Demo无一例外几乎都有一个bug,那就是iPad上会出现闪退,这也体现了国内的教程文档的一个特点,就是抄袭,教程几乎千篇一律,bug也 ...
- 以图搜图之模型篇: 基于 InceptionV3 的模型 finetune
在以图搜图的过程中,需要以来模型提取特征,通过特征之间的欧式距离来找到相似的图形. 本次我们主要讲诉以图搜图模型创建的方法. 图片预处理方法,看这里:https://keras.io/zh/prepr ...
- spark sql/hive小文件问题
针对hive on mapreduce 1:我们可以通过一些配置项来使Hive在执行结束后对结果文件进行合并: 参数详细内容可参考官网:https://cwiki.apache.org/conflue ...
- Redis集群环境下的键值空间监听事件实现方案
一直想记录工作中遇到的问题和解决的方法,奈何没有找到一方乐土,最近经常反思,是否需要记录平时的点滴,后台还是决定下定决心记录一些,以便以后用到的时候找不着,实现这样的一个功能主要也是业务所需要的. 需 ...