首页 > 代码库 > 文本编辑器vim

文本编辑器vim

      不知不觉一周的时间又过完了,感觉前所未有的充实!这周学习了vim编辑器据说很重要!

一.打开文件

 ★ vim +n  filename 打开文件后,让光标处于第n行的行首,+默认尾行。

技术分享

  ★ vim +/要搜索的词  filename 打开文件后,直接让光标处于第一个被匹配到的行的行首。

技术分享

 ★ vim
     -m 只读方式打开文件

技术分享     -b 二进制打开文件
     -d file1 file2 比较多个文件

二.vim编辑器模式的切换

      插入模式-------->命令模式

           esc

      命令模式--------->扩展命令模式

            :

      扩展命令模式-------->命令模式

             enter,esc

  

 ★ 命令模式
     ZZ: 保存退出
     ZQ :不保存退出

      命令模式翻屏操作:

      ctrl +f 向下翻一屏
      ctrl +b 向上翻一屏
      ctrl +d 向下翻半屏
      ctrl +u 向上翻半屏

 ★ 扩展命令模式:
     :q 退出
     :q! 强制退出,丢弃做出的修改
     :wq 保存退出
     :x 保存退出

        注意:wq!或x!当文件对当前用户权限为read-only时,可以强制保存并退出(仅限root和当前文件的owner)

  扩展命令模式

     按“: ”进入扩展模式
     创建一个命令提示符: 处于底部的屏幕左侧
     命令:w 写(存)磁盘文件
     wq 写入并退出
     x 写入并退出
     q 退出
     q! !   不存盘退出,即使更改都将丢失
     r filename 读文件内容到当前文件中
     w filename 将当前文件内容写入另一个文件
     !command  执行命令
     r!command 读入命令的输出

  ★ 地址界定(扩展命令模式)

#具体第# 行,例如2 表示第2行 行
#,# 从左侧#表示起始行,到右侧#表示结尾行

#,+# 从左侧#表示的起始行,加上右侧#表示的行数 。":2,+3表示2到5行
. 当前行
$ 最后一行
.,$-1 当前行到倒数第二行
% 全文, 相当于1,$

/pat1/,/pat2/
从第一次被pat1 模式匹配到的行开始,一直到第一次被pat2 匹配到的行结束

    ★ 查找(扩展命令模式)

                  /PATTERN :从当前光标所在处向文件尾部查找
     ?PATTERN :从当前光标所在处向文件首部查找

     n :与命令同方向

     N:与命令反方向

    ★替换 (扩展命令模式)

格式:s/ 要查找的内容/ 替换为的内容/ 修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以  使用“&” 引用前面查找时查找到的整个内容。
修饰符:
  i: 忽略大小写
  g: 全局替换;默认情况下,每一行只替换第一次出现
  gc: 全局替换,每次替换前询问
  查找替换中的分隔符/ 可替换为其它字符,例如 s@/etc@/var@g  s#/boot#/#i

★多文件模式:vim f1 f2 f3
         :first 第一个
         :next 下一个
         :last 最后一个
         :prev 前一个
         :wall保存所有
         :qall退出所有
         :wqall保存退出所有

★使用多个窗口
   多文件分割:vim -o|-O file1 file2 file3

         -o 水平分割

技术分享

         -O 垂直分割

技术分享

   在多个窗口间切换: ctrl+w Arrow
   单文件分割:
       ctrl+w,s : split  水平分割
       ctrl+w,v : vertical 垂直分割
       ctrl+w,q : 取消相邻的窗口
       ctrl+w,o : 取消所有的窗口
       :wqall   退出

 ◆习题

  1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符。

技术分享

技术分享

技术分享

这道题中用到的知识点有:

1.地址界定 %表示全

2.替换的格式:格式:s/ 要查找的内容/ 替换为的内容/ 修饰符 

3. 要查找的内容用到正则表达式 

4. 要替换成空格可以用//表示




2.复制/etc/rc.d/init.d/functions 文件至/tmp 目录,用查找替换命令为/tmp/functions 的每行开头为空白字符的行的行首添加一个#号。

技术分享

技术分享技术分享

与上道题相比,这道题要用到后项引用,但是要注意的是后向引用的时候,要引用的内容一定要加()

3.复制/etc/rc.d/init.d/functions 文件至/tmp 目录,替换/tmp/functions 文件中的/etc/sysconfig/init 为/var/log 。


技术分享

技术分享

答案: :%s@\/etc\/sysconfig\/init@\/var\/log@g

解析:这道题中有许多"/",为防混淆可将查找替换中的分隔符/换成别的,如:@,#,此外查找替换中的/要进行转义
















文本编辑器vim