首页 > Java > VIM常用命令

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

全文完,如果本文对您有所帮助,请花 1 秒钟帮忙点击一下广告,谢谢。

作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/312
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
分类: Java 标签: ,
  1. 本文目前尚无任何评论.

请输入正确的验证码