vim编辑器的使用

vim

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

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

文本编辑器分类:

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

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

vim即vi improved,vi的增强版,vim是模式化的编辑器

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

 

vim的使用

         打开文件

         vim  [option]…..filename….

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

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

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

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

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

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

 

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

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

 

模式切换

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

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

         i:insert,在光标所在处输入

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

         a:append,在光标所在处后面输入

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

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

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

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

         :

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

         esc

锁定和解锁:ctrl+s,ctrl+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:跳转至文件内容的最后一行

         1G,gg:跳转至文件的第一行

        

         句间移动

         “(”:上一句

         “)”:下一句

        

         段落间移动:

         “{”:上一段

         “}”:下一段

 

命令行模式翻屏操作

         翻屏

         ctrl+f:向下翻一屏

         ctrl+b:向上翻一屏

         ctrl+d:向下翻半屏

         ctrl+u:向上翻半屏

 

命令模式操作

         字符编辑:

         x:删除光标处的字符

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

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

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

        

         命令替换(replace)

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

         R:切换成REPLACE模式

        

         删除命令

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

         d$:删除到行尾

         d^:删除到非空行首

         d0:删除到行首

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

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

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

         #command,3dw

         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粘贴‘xiao’1o次

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

        

扩展模式:地址定界

         :start,end

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

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

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

:2,+3 表示2到5行

         “.” :当前行

         $:最后一行

         : .,$-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个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。用a,b,…,z表示,用“寄存器表示,放在数字和命令之间

如:3"tyy 表示复制3行到t寄存器中"tp 表示将t寄存器内容粘贴未指定,将使用无命名寄存器有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到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,s:split,水平分割

         ctrl+w,v:vertical,垂直分割

         ctrl+w,q取消相邻窗口

         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 18:44
下一篇 2016-08-09 20:45

相关推荐

  • 编译安装LAMP及分离式LAMP平台构建

    前言 LAMP网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网站服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,与微软的.NET架构相比,L…

    Linux干货 2015-04-20
  • 设计模式(八)装饰器模式Decorator(结构型)

    1. 概述        若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。       通过继…

    Linux干货 2015-07-03
  • 进程及任务管理

    进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合     进程ID(Process ID,PID)号码被用来标记各个进程     UID、GID、和SELi…

    Linux干货 2016-09-09
  • Centos6.5基于SSL密码认证部署ELK(Elasticsearch+Logstash+kibana)

    1       简介 本章我们来介绍Centos6.5基于SSL密码认证部署ELK(Elasticsearch 1.4.4+Logstash 1.4.2+kibana3),同时为大家介绍如何集合如上组件来收集日志,本章的日志收集主要为大家介绍SYSTEM日志收集. 集中化日志收集主要应用场景是在同一…

    Linux干货 2015-06-18
  • 谈谈对于vmware Workstation 网络连接三种模式的认识.

    简介: VM(VMware Workstation简称VM,后面都将用VM代替阐述)是一款功能强大的虚拟化软件.VM支持在 单一的桌面上同时运行多款不同的操作系统,能够模拟完整的网络环境,支持pxe功能.实时快照,等等多种强 大的功能.能够测试软件和部署新的业务测试.同时节约了很多资源.节约了企业成本.所以对于广大的互联网 从业者是不可多得的好工具. 本文中…

    Linux干货 2015-08-24
  • Linux系统程序包管理工具-RPM

    一、rpm是什么 RPM 是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的。RPM包管理器(RPM)是一个强大的命令行驱动的包管理系统能够安装、卸载、验证、查询和更新计算机软件包。每个软件包包括存档的文件连同包和它的版本信息,描述等。还有一个库API,允…

    Linux干货 2015-11-19