Vim/Vi一直是UNIX/Linux系统上最流行的文本编辑器,从2001年接触UNIX至今,Vim/Vi始终是我修改系统文件、编写简单程序的首选编辑器,是居家旅行必备之工具。如何提升它的编写速度,本文着重介绍了一些使用技巧供大家参考。

值得一提的是Vim是慈善软件(CharityWare),如有赞助或评比得奖,所得将全部救助乌干达孤儿,软件使用是免费的,欢迎手头有点闲钱的使用者捐款赞助,如果没银子也没关系,至少当有评比活动时(有奖金可拿的那种)。

◆应用技巧一:快速注释

1、连续行注释

使用Vim/Vi编辑shell脚本,在进行调试的时候,需要进行多行的注释,每次都要先切换到插入模式,在行首输入注释符“#”,再退回命令模式,非常麻烦。其实如果要注释连续行,可在命令模式下执行,格式如下:

:起始行,终止行s/要替换字符/替换为新字符/g

如需注释第1行到第20行,可以执行:

:1,20s/^/#/g

其中“^”表示在行首插入,“#”为要插入的字符,“g”表示执行替换时不确认,若希望每行交互询问是否执行,可将“g”改为“c”。

如果编辑PHP脚本,注释要稍微麻烦一点,如也要注释第1行到第20行,要执行:

:1,20s/^/\/\//g

PHP的注释符“//”要特殊处理,因为Vim/Vi替换命令格式中默认“/”为分隔符,这样就需要使用转义符“\”,表示“/”就要写成“\/”才可以,所以命令如上所示。强烈建议各位看官使用,省时省力省键盘还省手指头。

2、非连续行注释

如果注释非连续的多行,可以定义快捷键简化,格式为:

:map 快捷键 执行命令

如定义快捷键Ctrl+P为在当前行行首添加“#”注释,可以执行:

:map ^P I//

“^P”为定义快捷键Ctrl+P,要注意的是必须同时按“Ctrl+v+p”按出此“^P”方才有效,或先按“Ctrl+v”再按“Ctrl+p”也可以;“I//”就是此快捷键要触发的动作,“I”为在光标所在行行首插入,“//”为要输入的字符,“”表示退回命令模式,“”要逐个字符键入,不可直接按键盘的“Esc”键。执行成功后,直接在任意需要注释的行上按“Ctrl+P”就自动会在行首加上“//”号了非常方便。

如果要取消此快捷键,只需输入命令:

:unmap ^P

我写程序或文档喜欢在末尾注释中写上自己的邮箱,每次录入十分麻烦,索性定义了一个快捷键,如下:

:map ^M isam_helen@vip.163.com

以后写完内容后,直接在注释中Ctrl+M就录入了俺的邮箱了。

◆应用技巧二:乱七八糟的技巧

1、传说中的命令“ab”

命令“ab”,同样可以解决上述输入邮箱的问题,因为我在Vim/Vi中定义了太多快捷键,如输入电子邮箱的、输入通信地址的、输入联系电话的、输入求偶标准的、输入PHPChina管理员三围的……后来自己都记不住了。之后一天深夜电闪雷鸣,我突然发现了这条命令——“ab”,苍天啊大地啊,我终于找到解决问题的方法了!oh yeah!

原来输入经常用的信息可以如此简单,LOOK——

:ab 替代符 原始信息

示例如下:

:ab sammail sam_helen@vip.163.com

执行之后,在输入模式任何地方录入“sammail”,再敲任意字母符号或者回车空格,咔嚓一下,利马就变成“sam_helen@vip.163.com”,那真是相当的方便啊!

2、原来可以双剑合一

在Vim/Vi中有两个小技巧:

No.1 可以直接在Vim/Vi中执行UNIX/Linux命令不需退出Vim/Vi

有时编写一些系统脚本,需要了解系统信息,很多同学就退出Vim/Vi然后执行命令,获得信息后再进行编辑。其实大可不必,如想获得/tmp目录下内容,只需在Vim/Vi命令模式下直接执行:

:!ls /etc

查看完命令结果,直接回车,就可以继续编辑非常方便。

在Vim/Vi中执行命令,格式就是这么简单:

:!命令

No.2 可以直接将其他文件内容导入当前编辑文件中

格式:

:r 文件名

如,需要导入文件/etc/issue的内容,执行:

:r /etc/issue

两个非常非常easy的小伎俩,就在一个我非常郁闷的下午,狂敲键盘时一不小心没留神发现了这样一个小秘密——原来它们可以结合起来用!

先举个例子,很多程序员喜欢写完程序后在注释中写入当前时间,我有个好办法即省事又快速还准确,只需要在命令模式下执行:

:r !date

当前时间就自动被导入了,任何命令的结果导入到当前编辑文件中,格式为:

:r !命令

3、助力编程的查询功能

以前在Linux系统下写一些C语言程序,有时记性不好,忘记了语法格式,使用Vim/Vi编写时可直接查询。如写程序写到fork时,突然失忆了(失去了对这个东东的记忆),就可以直接把光标移动到fork上,按“K”(大写的K),直接就会跳到Linux程序员手册,看到fork的帮助,看完后回车继续编写。

4、配置文件.vimrc

前面提到的快捷键、ab命令等的应用,设置后只在当前编辑文件中有效,如果想让它永久生效需要编辑用户宿主目录下的.vimrc文件,如你是root用户,则编辑/root/.vimrc(此文件默认不存在)。

写入你常用的设置命令即可,如:

:set nu

:map ^M isam_helen@vip.163.com

:ab sammail limingkillyou@163.com

……

以后就永久生效了。

实用技巧:Linux操作系统Vim/Vi编程提速相关推荐

  1. linux系统配置Vim命令,vim配置 LINUX操作系统VIM的安装和配置

    vim和emacs是linux环境下的文本编辑利器,关于vim和emacs谁更优秀的话题从来没有断过,我在这里就不再评判了,vim是linux下的默认编辑器,学好了vim将会一生受用,使用vim编辑代 ...

  2. Linux操作系统vim快捷键快速查找

    Linux操作系统vim快捷键快速查找

  3. Linux操作系统与Shell编程

    Linux是自由.开源的操作系统,安装在计算机的硬件之上,是用来操作计算机硬件和软件资源的系统软件,一般应用于专业的web服务器上,具有以下特性 Linux注重系统的安全性,对文件访问权限有严格设定, ...

  4. linux操作系统c语言编程,Linux操作系统下C语言编程从零开始

    这里向大家介绍一下在Linux/Unix 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prer ...

  5. 编辑Linux系统实验,linux操作系统实验vi编辑器的使用

    姓名: 学号 班级: 实验二 vi编辑器的使用 一.实验目的 1. 掌握Linux系统的vi编辑器 2. 掌握Linux系统的文本编辑 二.实验环境 1. Linux软件和计算机 三.实验内容或步骤 ...

  6. linux 中 vim/vi的常用命令

    文章目录 简介 normal模式(正常模式) insert模式(插入模式) command模式(命令模式) vim的启动 退出vim 显示和取消行号 光标移动操作 撤销 恢复 文本删除 复制与粘贴 搜 ...

  7. linux如何用vi编程,vi使用方法

    编辑命令使用方法 vi/vim 1) 编辑命令模式信息 命令模式: 可以实现特殊功能操作 编辑模式: 可以编辑文件内容信息 底行模式: 可以输入特殊命令信息 wq q wq! q! 命令模式 -i-& ...

  8. Linux -- 使用VIM/VI给文件加密和解密

    在写代码或者编辑文件的时候,总会有一些文件不想被人看到或者轻易看到(嘻嘻嘻...),如果去专门进行加密又显得有点过头,那么,使用VIM进行文件的加密无疑是最为稳妥最为便捷最为神不知鬼不觉的加密的方式, ...

  9. Linux操作系统 —— vim使用方法

    vim vim主要模式介绍 vim命令模式 字符操作 行操作 词操作 块操作 vim命令行模式 vim打开多个文件 设置vim开发环境 vim主要模式介绍 vim的三种主要的模式:命令模式.命令行模式 ...

最新文章

  1. 在Tomcat中部署Java Web应用程序几种方式
  2. KVM的客户机可以使用的存储
  3. jsf集成spring_JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成项目
  4. Mybatis 详解--- 一级缓存、二级缓存
  5. Array(数组-转树)
  6. BookKeeper总结
  7. 海报样机模型帮助以专业的方式展示你的设计
  8. 加速ASP.NET Core WEB API应用程序——第1部分
  9. 菜鸟javascript整理2
  10. 由已有数组创建新数组:concat()splice()方法
  11. 电脑重置后我的电脑没有了怎么办_笔记本电脑没有声音怎么办?
  12. centos7忘记root密码,重置
  13. 【英文演讲】(运动的重要性)Importance of Sports
  14. 【转载】浅的不能再浅的浅谈百利金单双胡及全字尖
  15. JAVA POI 读取2017Excel
  16. 为什么计算机乱字符,电脑键盘按键为什么会错乱 键盘按键错乱原因介绍【详解】...
  17. 面试技巧自我介绍大全
  18. #P07754. 加数
  19. java—抽象类与接口的区别
  20. 天玑720能升级鸿蒙吗,天玑720相当于骁龙多少?

热门文章

  1. mysql 5.7 双主配置_MySQL5.7.18 双主配置
  2. an tu tu html5 test,Design an Accuracy Test System for Resolver-To-Digital Converter Based on PXI
  3. oracle数据库7个安装包,Oracle 11gR2(11.2.0.4)安装包(7个)作用说明
  4. mimo 鲁棒控制 matlab,项目调度问题的一些matlab开发的工具箱
  5. kafka 集群_10分钟搭建单机Kafka集群
  6. Git——跟踪或取消跟踪文件
  7. struts2文件上传(2)
  8. 全文2500字 详解Pandas与Lambda结合进行高效数据分析
  9. 软件测试报告bug统计,软件测试中如何有效地写Bug报告
  10. 深度学习-Tensorflow2.2-图像处理{10}-图像语义分割-23