文本编辑器vim

简介: 不知不觉一周的时间又过完了,感觉前所未有的充实!这周学习了vim编辑器据说很重要! 一.打开文件   vim +n  filename 打开文件后,让光标处于第n行的行首,+默认尾行。   vim +/要搜索的词  filename 打开文件后,直接让光标处于第一个被匹配到的行的行首。

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

一.打开文件

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

wKioL1mFJILD1K0FAAA2cJ0v6J0757.png

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

wKiom1mFJKfR_U5DAAB0QVyOhC4157.png

  vim
     -m 只读方式打开文件

wKioL1mFYqWw-5_GAAArT_rQEcA620.png     -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 水平分割

wKiom1mFZDXykJI9AABULMVn5po007.png

         -O 垂直分割

wKioL1mFZOrhmPqhAABx3w8RqvE561.png

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

 ◆习题

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

wKiom1mFN5GCxGq0AAA9KRhjWAs868.png

wKiom1mFN96RaQ6vAAALaVJv1I4873.png

wKioL1mFODrD72JoAAAmHb2dgOE013.png

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

1.地址界定 %表示全

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

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

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




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

wKioL1mFPzzDAAbfAABIPYhR1Vg287.png

wKioL1mFP7zSiP3zAAAOxjnIRUU885.pngwKiom1mFQArBmAS7AAA425qc7dk287.png

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

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


wKioL1mFaOywwTyfAAArmBsmlWQ786.png

wKiom1mFaVrxTmgYAAAikn3KIYY265.png

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

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


本文转自    honeyorange   51CTO博客,原文链接:http://blog.51cto.com/13172732/1953826

相关文章
|
3月前
|
开发工具
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
|
2月前
|
程序员 Linux 开发工具
为什么vim是程序员最喜欢的文本编辑器之一
为什么vim是程序员最喜欢的文本编辑器之一
21 0
|
3月前
|
程序员 Linux 项目管理
为什么vim是程序员最喜欢的文本编辑器之一?
为什么vim是程序员最喜欢的文本编辑器之一?
|
3月前
|
搜索推荐 Linux 开发工具
|
4月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
47 5
|
4月前
|
Ubuntu 搜索推荐 Linux
Linux的Vim编辑器详解
Linux的Vim编辑器详解
|
3月前
|
Linux 开发工具 数据安全/隐私保护
【linux】如何优雅的使用vim编辑器
【linux】如何优雅的使用vim编辑器
|
4月前
|
缓存 人工智能 Linux
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
77 0
|
4月前
|
程序员 Linux 开发工具
Vi和Vim编辑器
Vi和Vim编辑器
|
4月前
|
Linux 开发工具 C++
Linux文本编辑器vim的使用
vi/vim,vi是一款很老的编辑器,它们都是多模式文本编辑器,没有代码的编译功能,也没有调试功能。 vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
57 0
下一篇
无影云桌面