VIM常用命令
上个周苹果公司悍然发布了新版mac,消灭了功能键,包括ESC,终于使下面这个段子成为了事实:问,如何生成一段随机数?答:让一个非开发人员退出vim。哈哈,现在开发人员是不是也可以产生随机字符串了?发现自己作为一个vim党,竟然对很多vim常用的命令都不知道,今天就记一下笔记,让自己这个vim党称呼实至名归。
首先要说明的是,基本的vim命令像A、I、O进入编辑模式,ESC进入命令模式,“:”进入末行模式,以及常用的什么dd,yy,p等都认为大家已经熟练掌握,就不说了。
1. 替换字符
:%s/oldchar/newchar/g
这个命令同样可以解决:
注1. 在windows记事本下的文件放到Linux下时,行末多出来一个^M,这个问题,直接把oldchar换成\r,newchar传承空就可以了。
注2. 在windows记事本下的文件放到Linux下时,行末多出来一个^@,这个问题,直接把oldchar换成先摁ctrl+v,然后摁ctrl+2,newchar传承空就可以了。
注3. 在windows记事本下的文件放到Linux下时,行末多出来一个^A,这个问题,直接把oldchar换成先摁ctrl+v,然后摁ctrl+A,newchar传承空就可以了。
注4. oldchar也可以用正则表达式,之前一直不知道怎么在每一行的行末加东西,其实如此简单而已。
2. 加密文件
进入末行模式,然后输入大写的X,然后输入密码,保存退出即可,这样的话今后每次打开都需要输入密码才行,否则就是一堆乱码。
3. undo和redo
这个比较简单,undo直接摁u,redo是ctrl+r
4. 简单的移动光标
0 数字零,到行头 ^ 到本行第一个不是blank字符的位置 $ 到本行行尾 g_ 到本行最后一个不是blank字符的位置 /pattern 搜索 pattern 的字符串,如果搜索出多个匹配,可按n键到下一个 . (小数点) 可以重复上一次的命令 N<command> 重复某个命令N次 :N 到第N行 gg 到第一行。(陈皓注:相当于1G,或 :1) G 到最后一行
5. 块操作: ctrl-v
块操作,典型的操作: 0、ctrl-v、ctrl-d、I、ESC
^ 到行头 ctrl-v 开始块操作 ctrl-d 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的) I 插入,然后输入 ESC 来为每一行生效。
6. 自动提示
在输入模式下,你可以输入一个词的开头,然后按 ctrl-p或是ctrl-n,自动补齐功能就出现了
7. 可视化选择: v,V,ctrl-v
ctrl-v,我们可以使用 v 和 V。一但被选好了,你可以做下面的事: J 把所有的行连接起来(变成一行) < 或 > 左右缩进 = 自动给缩进
8. 窗口分屏浏览
:He 在下边分屏浏览目录 :He! 在上分屏浏览目录 :Ve 在左边分屏间浏览目录 :Ve! 要在右边则是
9. 多页签(tab page)
在末行模式下,输入:
:tabnew 文件名
注1. 文件名需要全路径;
注2. 文件名可以使用tab键,自动补全
当然也可以用:
:Te 这个比较好记
10.读取Shell命令相关
:r!date 插入日期
上面这个命令,:r 是:read的缩写,!是表明要运行一个shell命令,意思是我要把shell命令的输出读到vim里来。
11. 字符相关
guu 把一行的文字变成全小写,或是Vu gUU 把一行的文件变成全大写,或是VU
12. 浏览代码
浏览目录的命令很简单:(你也可以直接vim一个目录)
:E 注意,是大写
然后在你看到的界面中,你可以用 j, k 键上下移动,然后回车,进入一个目录,或是找开一个文件。你也可以用下面这一堆命令:
– 到上级目录 D 删除文件(大写) R 改文件名(大写) s 对文件排序(小写) x 执行文件
当然,打开的文件会把现有已打开的文件给冲掉——也就是说你只看到了一个文件。
如果你要改变当前浏览的目录,或是查看当前浏览的目录,你可以使用和shell一样的命令:
:cd <dir> – 改变当前目录 :pwd – 查看当前目录
13. vim的终级插件
CentOS下:yum erase emacs Ubuntu下:apt-get remove emacs
2017-03-16补充:
14 文本字符串次数统计
例如统计bridgeli出现的次数
:%s/bridgeli//gn
作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/312
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
近期评论