当前位置 > 主页 > 万和大讲堂 >


南京RHCE培训实用技巧:Linux操作系统Vim/Vi编程提速

2015-12-28 11:19

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

 

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

 

  ◆应用技巧一:快速注释

 

  1、连续行注释

 

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

 

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

 

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

 

  :1,20s/^/#/g

 

  其中"^"表示在行首插入,"#"为要插入的字符,"g"表示执行替换时不确认,若希望每行交互询问是否执行,可将"g"改为"c".南京RHCE培训

 

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

 

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

 

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

 

  2、非连续行注释

 

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

 

  :map 快捷键 执行命令

 

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

 

  :map ^P I// 京RHCE培训

 

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

 

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

 

  :unmap ^P

 

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

 

  :map ^M isam_helen@vip.163.com

 

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

 

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

 

  1、传说中的命令"ab" 南京RHCE培训

 

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

 

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

 

  :ab 替代符 原始信息

 

  示例如下:

 

  :ab sammail sam_helen@vip.163.com

 

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

 

  2、原来可以双剑合一

 

  在Vim/Vi中有两个小技巧:南京RHCE认证培训

 

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

 

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

 

  :!ls /etc

 

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


最近开班 more>
  • Web前端开发
  • 软件测试
  • 软件测试预科班
  • AI大模型+全栈开发开班
  • 云原生精英班
  • 云网预科班
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第五期
  • Java全栈
  • CISP
  • HCIP-cloud
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA
  • 6月9日
  • 5月21日
  • 5月14日
  • 6月9日
  • 5月7日
  • 5月26日
  • 5月19日
  • 5月12日
  • 6月3日
  • 6月9日
  • 随时开课
  • 7月12日
  • 5月19日
  • 5月19日
  • 5月7日
  • 5月10日
  • 5月24日
  • 5月24日
  • 随时开课
  • 随时开课
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入