vim编辑器的使用

vim

         vim是一个类似于vi的文本编辑器,不过在vi的基础上增加了很多功能,在早起vimEmacs编辑器打的很火热,在1999年被linuxwork文本编辑分类的优胜者,而vim屈居第二,但2000vim赢得了salashdot beanie的最佳开放源代码文本编辑大奖,此时的Eamcs到第二位,vimEmacs都是非常优秀的文本编辑器。

         viVisual Interface,是一种文本编辑器,所谓文本数据是基于字符编码的文件,。

文本编辑器分类:

         行编辑器:所行编辑器是指一行一行的来编辑处理的工具,如之前讲过的sed

         全屏编辑器:编辑空间占整个屏幕,如nanovi

vimvi improvedvi的增强版,vim是模式化的编辑器

vim的工作模式又三种,编辑模式,输入模式,命令扩展模式

 

vim的使用

         打开文件

         vim  [option]…..filename….

         +n:打开文件后,直接将光标定位只指定的行的行首

         +/parttern:打开文件后,直接将光标定位都第一个被pattern匹配的行首

         vim +filename,直接打开文件,光标在最后一行

         vim –b filename filename二进制方式打开文件

         vim –d file1 file2:比较多个文件

   vim –m filename :只读打开文件,这是不能写入数据。

 

在使用文件存在时,如果文件不存在,文件被打开并的内容

如果文件不存在,就相当于新建了一个文件。

 

模式切换

esc键:从输入模式转换到编辑模式

从编辑模式转换到输入模式,可以使用一下命令

         iinsert,在光标所在处输入

         I:在当前光标所在行的行首输入

         aappend,在光标所在处后面输入

         A:在当前光标所在行的行尾输入

         o:在当前光标所在行的下方打开一个新的行

         O:在当前光标所在行的上方打开一个新的行

命令模式——>扩展命令模式

        

扩展命令模式——>命令模式

         esc

锁定和解锁:ctrl+sctrl+q

 

 

关闭文件

扩展命令模式下推出文本

         :q 退出文件

         :q! 强制保存退出,丢弃做出的修改

         :wq  保存退出

         :x 保存退出

 

命令模式下退出文本

         ZZ 保存退出

         ZQ 不保存退出

 

扩展模式

         按“:”进入Ex模式

         创建一个命令提示符,处于底部的屏幕左侧

         命令

                   w写入磁盘文件

                   wq保存退出

                   x 写入并推出

                   q 退出

                   q!不存盘退出,即使修改的内容,也不会保存

                   r filename 读文件内容到当前文件中

      :r /etc/issue 将文件内容插入到光标所在的位置


                   !command 在命令扩展模式下指定命令

      :!ls /etc/issue

                   r!command 将某个命令执行的记过读入到当前文件中

      r!cat /etc/issue

vim编辑器的使用

vim编辑器的使用


                  

命令模式光标跳转

         字符间跳转

         h:左

         l:右

         j:下

         k:上

记忆小技巧h在哪一排的最左边所以是左,l在最右边就是右,j可以理解成japan,日本在韩国的下边,j就是下,而韩国的首字母是k,韩国在日本上方,k就是上

 

         单词间跳转

         w:下一个单词的词首

         e:当前或下一个单词的词尾,end最后

         b:当前或前一个单词的词首,before        

         #command:有#指定一次跳转的单词数,比如我想跳转3个词,就是3w

 

         当前页跳转

         H:当前页的首部,可以理解成head

         M:页中间,middle

         L:当前页的底部,lower

 

         行首行尾跳转

         ^:跳转至行首的第一个非空白字符

         0:跳转至行首,绝对行首

         $:跳转至行尾

        

         行间移动:

         #G:扩展模式下直接指定跳转的行数如 10跳至第十行

         G:跳转至文件内容的最后一行

         1Ggg:跳转至文件的第一行

        

         句间移动

         “(”:上一句

         “)”:下一句

        

         段落间移动:

         {”:上一段

         }”:下一段

 

命令行模式翻屏操作

         翻屏

         ctrl+f:向下翻一屏

         ctrl+b:向上翻一屏

         ctrl+d:向下翻半屏

         ctrl+u:向上翻半屏

 

命令模式操作

         字符编辑:

         x:删除光标处的字符

         #x:删除光标处的#个字符

         xp:交换光标所在处的字符及其后面字符的位置,也就是后面的一个字符,换到前面的一个字符的位置

         ~:转换大小写,原本是大写转换成小写,原本是小写,转换成大写

        

         命令替换(replace

         r:替换光标所在处的字符

         R:切换成REPLACE模式

        

         删除命令

         d:删除命令,可结合光标跳转字符(wbe),实现范围删除

         d$:删除到行尾

         d^:删除到非空行首

         d0:删除到行首

         dw:删除到下一个单词的词首   

         de:删除到下一个单词的词尾

         db:删除至上一个词的词尾

         #command3dw

         dd:删除光标所在的行 3dd

         D:从光标处一直删除到行尾,留空行等同于d$

        

         复制命令(yank

         y:复制,跟d类似

         y$:从当前位置复制到行尾

         y0 从当前行复制到行首

         y^:从当前位置复制到非空白行首

         yw:从当前位置复制一个单词词首

         ye:从当前位置复制一个单词词尾

         yb:从当前位置复制单词的词尾

         yy:复制行 3yy

         y:复制整行

        

         粘贴命令(paste

         p:缓冲区如果为整行,粘贴当前光标所在行的下面,否则,粘贴至光标所在处的后面

         P(大写):缓冲区如果为整行,粘贴当前光标所在行的上面,否则,粘贴至光标所在处的前面

        

         改变命令(change

         c:修改后切换成插入模式

         命令模式——>插入模式

         c$:从光标的当前位置到行尾的内容删除,用户可新添加内容

         c^:从光标的当前位置到行非空白字符行首的内容删除,用户可新添加内容

         c0:从光标的当前位置到行绝对行首的内容删除,用户可新添加内容

         cb:从光标的当前位置到上个单词的词首删除,用户可新添加内容

         ce:从光标处到下个词的词尾删除,用户添加新内容

         cw:从光标的当前位置到下个词的词首删除,用户添加新内容

         #command

         cc:删除当前行并输入新内容 3cc

         C:删除当前光标到行尾,并切换成插入模式

 

命令模式

         10"xiaoesc粘贴‘xiao1o

         y复制,d删除,gU变大写,gu变小写(移动光标才会改变)

        

扩展模式:地址定界

         :start,end

         #: 具体第#行,例如2表示第2行;

#,#: 从左侧#表示行起始,到右侧#表示行结尾

#,+#: 从左侧#表示的行起始,加上右侧#表示的行数

2,+3 表示25

         “.” :当前行

         $:最后一行

         : .,$-1当前行到倒数第二行

         %:全文,相当于1,$

         /part1/./part2/

         从第一次被part1模式匹配到的行开始,到第一次被part2匹配到的行结束

    :/root/,/abc/

         #/part/ #行到被模式第一次被part匹配到的行结束

         /part/,$ 从第一次被模式匹配到的行到最后一行

         使用方式:后跟一个编辑命令

         d:删除

         y:复制

         w /path/to/file 将范围匹配到的行写到指定的文件中

         r file:在指定位置插入指定文件的内容

        

         查找

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

         pattern:从当前光标所在处向文件首部查找

         n:向下翻页

         N:向上翻页

 

         查找替换

         s:在扩展命令模式下完成查找替换操作

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

         要查找的内容:可以使用模式

         替换的内容:不能使用模式,但可以使用\1,\2….等后向印象引用符号;还可以使用“&”引用前面查找时找到的整个内容

         修饰符:

         i:忽略大小写

         g:全局替换;默认情况下,每一行只替换第一次出现

         gc:全局替换,每次替换前询问

 

         查找替换中的分隔符/可替换为其他字符,例如

         s@/root@/var@g

         s#/boot#/#i

 

         撤销更改

         u撤销最近的更改

         #u:撤销之前多次更改

         U:撤销光标落在这行后所有此行的更改

         ctrl –r 重做最后的撤销更改

         .重复前一个操作

         n.重复前一个操作n

        

vim寄存器

      26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。用ab,…,z表示,寄存器表示,放在数字和命令之间

如:3"tyy 表示复制3行到t寄存器中"tp 表示将t寄存器内容粘贴未指定,将使用无命名寄存器有10个数字寄存器,用019表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到22转存到3,以此类推。数字寄存器不能在不同会话间共享。

 

 

 

编辑二进制文件

         以二进制方式打开文件

         vim –b  /bin/bash

扩展命令模式下,利用xxd命令转换为刻度的十六进制

         %!xxd

编辑二进制文件

扩展命令模式下,利用xxd命令转换回二进制

保存退出

3.jpg

 

 

可视化模式

         允许选择地文本

         v:面向字符

         V:面向行

         ctr –v 面向块

         可视化键可用于移动键结合使用

         w, ), {,方向键等

         突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等

        

 5.jpg

多文件模式

         vim file1 file2 file3 file4

         next 下一个

         prev 上一个

         first 第一个

         last 最后一个

         wall保存所有

         qall 退出所有

         wqall 保存退出所有

   

vim编辑器的使用

vim编辑器的使用

      

使用多个窗口

         vim –o|-O file1 file2

         -o:水平分割

         -O:垂直分割

         在窗口间切换ctrl+w 左右键

         单个文件窗口分割

         ctrl+w,ssplit,水平分割

         ctrl+w,vvertical,垂直分割

         ctrl+wq取消相邻窗口

         ctrl+w,o:取消全部窗口

         wqall退出

 8.jpg

 9.jpg

vim配置文件

         全局:/etc/vimrc

         个人:~/.vimrc

        

         扩展模式:当前vim进程有效

         显示行号

         set number简写为set nu

         取消行号 set nonu

        

vim编辑器的使用

vim编辑器的使用

         括号成对匹配        

         set showmatch简写set sm

         取消         set nosm

 

         自动缩进

         启用set ai

         取消set noai

       13.jpg 

         高亮搜索

         启用: set hlsearch

         取消: set nohlsearch

        14.jpg

         语法高亮

         启用:syntax on

         取消:syntax off

        

         忽略字符的大小写

         启用:set ic

         取消:set noic

         

         文件格式

         启用 fileformat=unix     

         不忽略:fileformat=dos

        

         设置文本宽度

         set textwidth=60

         set wrapmargin=10

 

         help option-list 获取帮助列表

         set or setall 显示set相关的命令

        

vim内置帮助

         help

         help topic    

         vimtutor(执行命令进入帮助文档)

 

      练习

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

 cp /etc/profile  /tmp    

   vim profile

    :s@^[[:space:]]@@g'

 

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

cp /etc/rc.d/init.d/functions /tmp

vim funtions

:s@^[[space:]]@#&@g'

        

原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/32125

(0)
fszxxxksfszxxxks
上一篇 2016-08-09
下一篇 2016-08-09

相关推荐

  • Linux 目录结构

    Linux 目录结构 1.     前言     Linux 是一种开源的,且非常流行的操作系统,发行版本众多。为了统一和规范linux系统的主要目录名及其用途,提出了FHS标准,FHS是File Hierarchy Standard的简写。Linu…

    Linux干货 2015-07-26
  • 【福利贴-招聘】- python运维开发工程师

    职位描述  岗位职责: 1、负责公司CMDB的建设,包括资产管理、dns、工单系统、ngnix自动化、监控等的开发 2、帮助运维团队和业务团队提高自动化效率 3、维护和开发持续化集成环境; 4、负责公司运维系统的规划、选型、部署上线和日常维护管理工作; 5、负责CMDB团队的建设、管理和人才培养机制…

    Linux干货 2015-04-03
  • N26-第六周博客

    vim编辑器及简单shell脚本示例 请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost tmp]# vim rc.sysinit:%s@^[[:space:]]\+[^[:s…

    系统运维 2017-02-16
  • Linux系统管理基础

        一、Linux系统初识             1、用户界面           &nbsp…

    Linux干货 2015-04-14
  • 系统管理中的三大利刃(htop glances dstat)

    工欲善事情,必先利其器,生产环境中的服务器在处理请求并生成回应数据的时间主要消耗在服务器端,包括了众多的环节,如何全面了解我们linux服务器的CPU使用率、使用时间、内存占用比例、磁盘IO数据、网络相关数据等等众多指标,保证我们的linux服务器顺利完成每一个请求,怎能没有几个趁手的利刃,而今天就让我们见识一下系统管理中三大利刃。 相传一把三尺长的软剑,叫…

    Linux干货 2015-11-18
  • 登录后经常出现You have new mail in /var/spool/mail/root的提示

    安装完LINUX后经常使用终端远程登录,登录后经常出现You have new mail in /var/spool/mail/root的提示,很是烦人。 这东西到底是做什么用的呢?经过查询才知道这是LINUX的邮年提示功能。LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的root的邮箱里,以供有需之时查看。 那要怎么去掉这麻…

    系统运维 2017-08-05