Vim/Vi
![](/icons/54359yi.gif)
直是Unix/Linux系统上最流行
![](/icons/54359de.gif)
文本编辑器
![](/icons/54359dou.gif)
从2001年接触UNIX至今
![](/icons/54359dou.gif)
Vim/Vi始终是我修改系统文件、编写简单
![](/icons/54359chengxu.gif)
![](/icons/54359de.gif)
首选编辑器
![](/icons/54359dou.gif)
是居家旅行必备的工具
![](/icons/54359dou2.gif)
如何提升它
![](/icons/54359de.gif)
编写速度
![](/icons/54359dou.gif)
本文着重介绍了
![](/icons/54359yi.gif)
些使用窍门技巧供大家参考
![](/icons/54359dou2.gif)
值得
![](/icons/54359yi.gif)
提
![](/icons/54359de.gif)
是Vim是慈善软件Software(CharityWare)
![](/icons/54359dou.gif)
如有赞助或评比得奖
![](/icons/54359dou.gif)
所得将全部救助乌干达孤儿
![](/icons/54359dou.gif)
软件Software使用是免费
![](/icons/54359de.gif)
![](/icons/54359dou.gif)
欢迎手头有点闲钱
![](/icons/54359de.gif)
使用者捐款赞助
![](/icons/54359dou.gif)
如果没银子也没关系
![](/icons/54359dou.gif)
至少当有评比活动时(有奖金可拿
![](/icons/54359de.gif)
那种)
![](/icons/54359dou2.gif)
应用窍门技巧
![](/icons/54359yi.gif)
:快速注释
1、连续行注释
使用Vim/Vi编辑shell脚本
![](/icons/54359dou.gif)
在进行调试
![](/icons/54359de.gif)
时候
![](/icons/54359dou.gif)
需要进行多行
![](/icons/54359de.gif)
注释
![](/icons/54359dou.gif)
每次都要先切换到插入模式
![](/icons/54359dou.gif)
在行首输入注释符“#”
![](/icons/54359dou.gif)
再退回命令模式
![](/icons/54359dou.gif)
非常麻烦
![](/icons/54359dou2.gif)
其实如果要注释连续行
![](/icons/54359dou.gif)
可在命令模式下执行
![](/icons/54359dou.gif)
格式如下:
:起始行,终止行s/要替换
![](/icons/54359zifu.gif)
/替换为新
![](/icons/54359zifu.gif)
/g
如需注释第1行到第20行
![](/icons/54359dou.gif)
可以执行:
:1,20s/^/#/g
其中“^”表示在行首插入
![](/icons/54359dou.gif)
“#”为要插入
![](/icons/54359de.gif)
![](/icons/54359zifu.gif)
![](/icons/54359dou.gif)
“g”表示执行替换时不确认
![](/icons/54359dou.gif)
若希望每行交互询问是否执行
![](/icons/54359dou.gif)
可将“g”改为“c”
![](/icons/54359dou2.gif)
如果编辑PHP脚本
![](/icons/54359dou.gif)
注释要稍微麻烦
![](/icons/54359yi.gif)
点
![](/icons/54359dou.gif)
如也要注释第1行到第20行
![](/icons/54359dou.gif)
要执行:
:1,20s/^/\/\//g
PHP
![](/icons/54359de.gif)
注释符“//”要特殊处理
![](/icons/54359dou.gif)
![](/icons/54359yinwei.gif)
Vim/Vi替换命令格式中默认“/”为分隔符
![](/icons/54359dou.gif)
这样就需要使用转义符“\”
![](/icons/54359dou.gif)
表示“/”就要写成“\/”才可以
![](/icons/54359dou.gif)
所以命令如上所示
![](/icons/54359dou2.gif)
强烈建议各位看官使用
![](/icons/54359dou.gif)
省时省力省键盘还省手指头
![](/icons/54359dou2.gif)
2、非连续行注释
如果注释非连续
![](/icons/54359de.gif)
多行
![](/icons/54359dou.gif)
可以定义快捷键简化
![](/icons/54359dou.gif)
格式为:
:map 快捷键 执行命令
如定义快捷键Ctrl P为在当前行行首添加“#”注释
![](/icons/54359dou.gif)
可以执行:
:map ^P I//
“^P”为定义快捷键Ctrl P
![](/icons/54359dou.gif)
要注意
![](/icons/54359de.gif)
是必须同时按“Ctrl v p”按出此“^P”方才有效
![](/icons/54359dou.gif)
或先按“Ctrl v”再按“Ctrl p”也可以;“I//”就是此快捷键要触发
![](/icons/54359de.gif)
动作
![](/icons/54359dou.gif)
“I”为在光标所在行行首插入
![](/icons/54359dou.gif)
“//”为要输入
![](/icons/54359de.gif)
![](/icons/54359zifu.gif)
![](/icons/54359dou.gif)
“”表示退回命令模式
![](/icons/54359dou.gif)
“”要逐个
![](/icons/54359zifu.gif)
键入
![](/icons/54359dou.gif)
不可直接按键盘
![](/icons/54359de.gif)
“Esc”键
![](/icons/54359dou2.gif)
执行成功后
![](/icons/54359dou.gif)
直接在任意需要注释
![](/icons/54359de.gif)
行上按“Ctrl P”就自动会在行首加上“//”号了非常方便
![](/icons/54359dou2.gif)
如果要取消此快捷键
![](/icons/54359dou.gif)
只需输入命令:
:unmap ^P
我写
![](/icons/54359chengxu.gif)
或文档喜欢在末尾注释中写上自己
![](/icons/54359de.gif)
邮箱
![](/icons/54359dou.gif)
每次录入十分麻烦
![](/icons/54359dou.gif)
索性定义了
![](/icons/54359yi.gif)
个快捷键
![](/icons/54359dou.gif)
如下:
:map ^M
[email protected] 以后写完内容后
![](/icons/54359dou.gif)
直接在注释中Ctrl M就录入了俺
![](/icons/54359de.gif)
邮箱了
![](/icons/54359dou2.gif)
应用窍门技巧 2:乱 7 8糟
![](/icons/54359de.gif)
窍门技巧
1、传说中
![](/icons/54359de.gif)
命令“ab”
命令“ab”
![](/icons/54359dou.gif)
同样可以解决上述输入邮箱
![](/icons/54359de.gif)
问题
![](/icons/54359dou.gif)
![](/icons/54359yinwei.gif)
我在Vim/Vi中定义了太多快捷键
![](/icons/54359dou.gif)
如输入电子邮箱
![](/icons/54359de.gif)
、输入通信地址
![](/icons/54359de.gif)
、输入联系电话
![](/icons/54359de.gif)
、输入求偶标准
![](/icons/54359de.gif)
、输入PHPChina管理员 3围
![](/icons/54359de.gif)
……后来自己都记不住了
![](/icons/54359dou2.gif)
的后
![](/icons/54359yi.gif)
天深夜电闪雷鸣
![](/icons/54359dou.gif)
我突然发现了这条命令——“ab”
![](/icons/54359dou.gif)
苍天啊大地啊
![](/icons/54359dou.gif)
我终于找到解决问题
![](/icons/54359de.gif)
思路方法了!oh yeah!
原来输入经常用
![](/icons/54359de.gif)
信息可以如此简单
![](/icons/54359dou.gif)
LOOK——
:ab 替代符 原始信息
举例如下:
:ab sammail
[email protected] 执行的后
![](/icons/54359dou.gif)
在输入模式任何地方录入“sammail”
![](/icons/54359dou.gif)
再敲任意字母符号或者回车空格
![](/icons/54359dou.gif)
咔嚓
![](/icons/54359yi.gif)
下
![](/icons/54359dou.gif)
利马就变成“
[email protected]”
![](/icons/54359dou.gif)
那真是相当
![](/icons/54359de.gif)
方便啊!
2、原来可以双剑合
![](/icons/54359yi.gif)
在Vim/Vi中有两个小窍门技巧:
No.1 可以直接在Vim/Vi中执行UNIX/Linux命令不需退出Vim/Vi
有时编写
![](/icons/54359yi.gif)
些系统脚本
![](/icons/54359dou.gif)
需要了解系统信息
![](/icons/54359dou.gif)
很多同学就退出Vim/Vi然后执行命令
![](/icons/54359dou.gif)
获得信息后再进行编辑
![](/icons/54359dou2.gif)
其实大可不必
![](/icons/54359dou.gif)
如想获得/tmp目录下内容
![](/icons/54359dou.gif)
只需在Vim/Vi命令模式下直接执行:
:!ls /etc
查看完命令结果
![](/icons/54359dou.gif)
直接回车
![](/icons/54359dou.gif)
就可以继续编辑非常方便
![](/icons/54359dou2.gif)
在Vim/Vi中执行命令
![](/icons/54359dou.gif)
格式就是这么简单:
:!命令
No.2 可以直接将其他文件内容导入当前编辑文件中
格式:
:r 文件名
如
![](/icons/54359dou.gif)
需要导入文件/etc/issue
![](/icons/54359de.gif)
内容
![](/icons/54359dou.gif)
执行:
:r /etc/issue
两个非常非常easy
![](/icons/54359de.gif)
小伎俩
![](/icons/54359dou.gif)
就在
![](/icons/54359yi.gif)
个我非常郁闷
![](/icons/54359de.gif)
下午
![](/icons/54359dou.gif)
狂敲键盘时
![](/icons/54359yi.gif)
不小心没留神发现了这样
![](/icons/54359yi.gif)
个小秘密——原来它们可以结合起来用!
先举个例子
![](/icons/54359dou.gif)
很多
![](/icons/54359chengxu.gif)
员喜欢写完
![](/icons/54359chengxu.gif)
后在注释中写入当前时间
![](/icons/54359dou.gif)
我有个好办法即省事又快速还准确
![](/icons/54359dou.gif)
只需要在命令模式下执行:
:r !date
当前时间就自动被导入了
![](/icons/54359dou.gif)
任何命令
![](/icons/54359de.gif)
结果导入到当前编辑文件中
![](/icons/54359dou.gif)
格式为:
:r !命令
3、助力编程
![](/icons/54359de.gif)
查询功能
以前在Linux系统下写
![](/icons/54359yi.gif)
些C语言
![](/icons/54359chengxu.gif)
![](/icons/54359dou.gif)
有时记性不好
![](/icons/54359dou.gif)
忘记了语法格式
![](/icons/54359dou.gif)
使用Vim/Vi编写时可直接查询
![](/icons/54359dou2.gif)
如写
![](/icons/54359chengxu.gif)
写到fork时
![](/icons/54359dou.gif)
突然失忆了(失去了对这个东东
![](/icons/54359de.gif)
记忆)
![](/icons/54359dou.gif)
就可以直接把光标移动到fork上
![](/icons/54359dou.gif)
按“K”(大写
![](/icons/54359de.gif)
K)
![](/icons/54359dou.gif)
直接就会跳到Linux
![](/icons/54359chengxu.gif)
员手册
![](/icons/54359dou.gif)
看到fork
![](/icons/54359de.gif)
帮助
![](/icons/54359dou.gif)
看完后回车继续编写
![](/icons/54359dou2.gif)
4、配置文件.vimrc
前面提到
![](/icons/54359de.gif)
快捷键、ab命令等
![](/icons/54359de.gif)
应用
![](/icons/54359dou.gif)
设置后只在当前编辑文件中有效
![](/icons/54359dou.gif)
如果想让它永久生效需要编辑用户宿主目录下
![](/icons/54359de.gif)
.vimrc文件
![](/icons/54359dou.gif)
如你是root用户
![](/icons/54359dou.gif)
则编辑/root/.vimrc(此文件默认不存在)
![](/icons/54359dou2.gif)
写入你常用
![](/icons/54359de.gif)
设置命令即可
![](/icons/54359dou.gif)
如:
:
![](/icons/54359set.gif)
nu
:map ^M
[email protected] :ab sammail
[email protected] ……
以后就永久生效了