本文章原创首发于公众号:编程三分钟 vim 替换.撤销.缩进.查找 上一次我们掌握了移动.跳转.定位.操作(删除.复制.粘贴),基本使用vim脱离鼠标完全是可以做到的了.速记如下: 移动: h,l,j,k,w,b 跳转:G nG f/F+字母 定位:G代表尽头, $代表行尾,^代表行首,w代表下一个单词,b上一个单词,e当前单词末尾 操作:y d p 知识点 字符替换 缩进与调整文本位置(居左.居中.居右) 字符查找 字符的替换及撤销 查找和替换是编辑器中最常用的功能之一,在普通编辑器当中查找替…
Vim脱离鼠标第一步 平时不可缺少的会用到vim,但是避免不了鼠标,事实上,省略鼠标是完全可以的,没有想像中那么难,看我短短几行带大家一起省略鼠标. 对了,vim有三种模式,基本模式就是用来输入命令的,比如删除跳转等操作就是在基本模式下面:插入模式不用说:命令模式就是按Esc+:进入的模式,之间的切换很容易我就废话了.下面几乎都在基本模式操作. 基本操作 移动 h,l,j,k    左右下上 w,b    移动到下/上一个单词 快速退出 普通模式下输入Shift+zz即可保存退出vim 进入插入…
为什么黑客都不用鼠标?你听说过Linux吗? 微软和它的朋友们的如意算盘. 下面来看看微软的收入是怎么来的.首先,Windows系列操作系统,一个就是 800+RMB,每次升级又是几乎同样的价钱.Windows 旗舰版还要贵几倍,而且有用户数目限WnM制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱. 花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上 Windows 之后一般第一件事就是去下载一个 WinRar 吧,“只要100+RMB”.Windo…
解决vi/vim中粘贴会在行首多很多缩进和空格的问题 secureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器.所以当你的服务器上的vim设置为autoindent的话,在i模式下,那么它会将secureCRT传输而来的这些字符串再进行一下缩进.若你拷贝的文本中已经有表示缩进的空格或者制表符的话,它们也会被当成字符串,而被缩进.解决办法:1. 在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)2. 拷贝完成之后,输入:set nopaste…
Vim如何打开特定文件类型关联自动缩进呢?答案:将filetype indent on写入你的.vimrc文件中…
第一种方法(只能复制行): 在当前行3yy(表示复制3行,多行同理),然后鼠标移到需要粘贴的位置,按p,即可粘贴 第二种方法(无限制): 按v进入visual模式,移动光标(推荐使用hjkl,用熟后比较快),选中需要复制的字符后按yy(表示复制),然后鼠标移到需要粘贴的位置,按p,即可粘贴…
首先是剪切(删除): 剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用. 1 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了. 2 其他命令模式下剪切命令: 3 dd:剪切当前行 4 ndd:n表示大于1的数字,剪切n行 5 dw:从光标处剪切至一个单子/单词的末尾,包括空格 6 de:从光标处剪切至一个单子/单词的末尾,不包括空格 7 d$:从当前光标剪切到行末 8 d0:从当前光标位置(不包括光标位置)剪切之行首 9…
一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义缩写,它可以实时地把你输入的东西替换为另外的东西.语法格式如下: :ab [缩写] [要替换的文字] 一个通用的例子是: :ab asap as soon as possible 会把你输入的 "asap" 替换为 "as soon as possible".…
行内搜索 行内搜索,也就是在当前行内进行搜索和移动,通常都与编辑命令一起使用. fx -- 移动到下一个字符x的位置,光标停留在x字符上面 tx -- 移动到下一个字符x的位置,光标停留在x前一个字符上 Fx -- 移动到前一个字符x的位置,光标停留在x字符上面 Tx -- 移动到前一个字符x的位置,光标停留在x后一个字符上 ; -- 重复前一个搜索,向着同一方向,即原来向前就向前,原来向后就向后 , -- 重复前一个搜索,向着反方向 行内搜索通常与编辑一起使用: dfx/dtx -- 删除到下…
在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab 对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:TAB替换为空格::set ts=4:set expandtab:%retab! 空格替换为TAB::set ts=4:set noexpandtab:%retab!…