vim编辑器

vim编辑器

文本编辑器:文本,纯文本,ASCII text;Unicode;

文本编辑种类:

                行编辑器:sed

               全屏编辑器: nano,vi

                              vi:Visual Interface

                            vim:Vi Improved

 vim: 模式化的编辑器

          基本模式:

              编辑模式,命令模式

              一般模式;

              末行模式:

                    内置的命令行接口;

  打开文件:

         vim [options] [file ..]

             +#:打开文件后,直接让光标处于第#行的行首;

             +/PATTERN: 打开文件后,直接让光标处于第一个被PATTERN匹配到的字符串的位置;

             -b 二进制方式打开文件

             -d 打开多个文件

             -m 只读方式打开文件 无法修改

             -e 直接进入末行模式;

编辑模式:

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

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

           o: 在光标所在处的下方打开一个新行;

           I: 在光标所在行的行首输入;

           A: 在光标所在行的行尾输入;

           O: 在光标所在处的上方打开一个新行;

 打开之后默认是一般模式 | 命令模式

                                 插入模式 | 编辑模式

                                 末行模式 | 扩展模式(extend | 命令行模式

模式转换

          一般模式 –> 编辑模式:

                 i , I ,a ,A ,o, O;   用的比较多的是 i ,o, O  

          编辑模式 –> 一般模式: Esc

         一般模式 –> 末行模式

                 :  ?   /     其中: / 用的比较多的

          末行模式:

               :ZZ   保存并退出

               q   退出

               q! 强制退出,不保存修改的内容;

               wq 保存并退出;

                             w      :q

               : x  保存并退出

               : w /PATH/TO/SOMEFILE 另存为/PATH/TO/SOMEFILE  

               :r filename   读入一个文件写到当前文件中;

               :CMD  在末行模式下执行一个命令;

               : rCMD  将命令的执行结果写到当前文件中;

光标跳转:

          字符间跳转

                      h:         l:

                      k:         j:

               #COMMAND: 跳转由#指定的个数的字符;

          单词间跳转:

                w:下一个单词的词首

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

                e: 当前或后一个单词的词尾

               #COMMAND: 跳转由#指定的个数的单词;

          行首行尾跳转:

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

             0:跳转至行首

             $:跳转至行尾

          行间跳转:

              #G:跳转至指定的第#

              1Ggg:跳转至第一行

              G: 最后一行

          句间跳转

               ) 下一句    ( 前一句

          段间跳转

               { 前一段    } 后一段

          页间跳转

             H  页首

             M  页中间

             L  页底

 翻屏:

             Ctrl+f: 向文件尾翻一屏

             Ctrl+b: 向文件首部翻一屏

             Ctrl+d: 向文件尾部翻半屏

             Ctrl+u: 向文件首部翻半屏

              Enter: 按行向后翻屏

vim的编辑命令:

       字符编辑:

           x: 删除光标所在处的字符

           #x: 删除光标所在处起始的#个字符

           xp:交换光标所在处的字符与其后面的字符的位置

       替换命令:

                 R:进入替换模式,替换完之后按 esc键退出;

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

                       r CHAR

       删除命令:

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

              d$: 删除光标处到行尾

              d^d0:删除光标处到行首

              dwde: 删除一个单词

              x: 多按几次

              dd: 删除光标所在当前行

              #dd: 删除光标所在处的行起始的共#行;

              d1G: 删除光标到第一行的数据;

              dG: 删除光标到最后一行的数据;

                  二者结合可以删除整个文件里面的内容

            注意:删除文件全部内容,先跳到最后一行:G;然后执行d1G

       粘贴命令(p,put,paste):

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

             P: 缓冲区的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方;

       复制命令(y,yank)

             y: 复制,工作行为相似于PC命令

             y$: 复制光标处到行尾的行;

             y0y^: 复制光标到行首的行; 

                    注意:空白字符和非空白字符的区别

             yeyw: 复制单个字符

#COMMAND

 yy:复制一整行

             #yy:复制#

     改变命令(change,c)

             c  相当于执行了x然后再执行i 进入编辑操作;

             c$: 删除光标处到行尾的内容 然后进入编辑模式;

             c^c0: 删除光标处到行首的内容,删完进入编辑模式;

             cbcecw: 删除一个单词之后进入编辑模式;

             cc: 删除当前行之后直接进入编辑模式;

                  #cc

其它编辑操作:

        可视化模式:

              v: 按字符选定

              V: 按行选定

选择之后可以结合之前的yy复制,dd删除进行操作,替换等等;

        撤销(undo)操作:

              u: 撤销此前的操作

                 #u:撤销此前的#个操作

             撤销此前的撤销:

                 Ctrl+r

                 .: 重复执行前一个编辑操作

 vim 末行模式:

       内建的命令行接口

            (1)地址定界:

                     :start_pos[,end_pos]

                 #:特定的第#行,例如:5即第5

                 .: 当前行

                 $:最后一行

                 ##: 指定行范围,左侧为起始行,右侧为结束行;

                 #,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量;例如:3+7

                       .$-1

                       1,$

                 %:全文

                 /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行

                       /first/,$

                 /pat1/,/pat2/: 从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由 pat2匹配到的行结束之间的所有行;

                    可同编辑命令一同使用,实现编辑操作:

                                    d;y; c

                   w /PATH/TO/SOMEFILE: 将范围内的文本保存至指定的文件中;

                    r /PATH/FROM/SOMEFILE: 将指定的文件中的文本读取并插入至指定位置;

          (2) 查找:

                 /PATTERN: 从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;

                 PATTERN: 从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串;

                       n: 下一个, 与命令方向相同

                       N: 上一个, 与命令方向相反

          (3) 查找并替换

                  s: 末行模式的命令,使用格式

                      s/要查找的内容/替换为的内容/修饰符

                         要查找的内容:可使用正则表达式;

                         替换为的内容:不能使用正则表达式,但可以引用

                   如果要查找的内容部分在模式中使用分组符号:在替换为的内容中使用后向引用; 直接引用查找模式匹配到的

                   修饰符:

                          i: 忽略大小写;

                         g: 全局替换,意味着一行中如果匹配到多次,则均替换

                     可把分隔符替换为其它非常用字符;

                                s@@@

                                s###

             示例:1, 复制/etc/grub2.cfg文件至/tmp目录中,用查找替换命令删除/tmp/grub2.cfg文件中以空白字符开头的行的行首空白字符;

                   ~]# %s@^[[:space:]]\+@@

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

                   ~]#  %s@^[[:space:]]\+[^[:space:]]@#&g

                 3./etc/yum.repos.d/Centos-Base.repo文件中所有的enabled=0替换为enabled=1,所有gpgcheck=0替换为gpgcheck=1;

                   ~]#  %s@\(enabled\|gpgcheck\)=0@\1=1@g

vim 的多文件功能

        vim FILE1 FILE2 …

              大文件间切换:

                   : next  下一个

                  prev 上一个

                   : first 第一个

                 last 最后一个

            退出所有文件:

                  wqall  保存所有文件并退出

                  wall

                   : qall

          多窗口:

                -o:水平分割窗口

                -O:垂直分割窗口

               在窗口间切换:Ctrl+w,ARROW

              注意:单个文件也可以分割为多个窗口进行查看

                   Ctrl+w,s  水平分割窗口

                   Ctrl+w,v  垂直分割窗口

  定制vim的的工作特性

             注意:在末行模式下的设定,仅对当前vim进程有效

             永久有效:

                    全局: /etc/vimrc

                    用户个人: ~/.vimrc

             1. 行号

                  显示:set number, 简写为set nu

                  取消显示: set nonomber(set nu)

             2. 括号匹配高亮

                     匹配:set showmatch(set sm)

                     取消: set nosm

             3. 自动缩进

                   启用:set ai

                   禁用:set noai

             4. 高亮搜索:

                    启用: set hlsearch

                    禁用: set nohlsearch

             5. 语法高亮:

                     启用:syntax on

                     禁用: syntax off

             6. 忽略字符大小写;

                     启用:set ic

                     禁用: set noic

获取帮助:

                  help

                  help subject

           vimtutor教程详解vim编辑 


vim编辑器


   

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

(0)
MFXMFX
上一篇 2017-04-17 22:07
下一篇 2017-04-17 22:51

相关推荐

  • scp命令介绍

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少…

    Linux干货 2017-07-24
  • 运维的危险命令,用了必死(1)

    Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。这篇文章并不打算引来你对Linux或linux 命令行的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。(译注:当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普通用户身份下,破坏的只是自己的一亩三分地。)

    2017-11-16
  • iptables简单概念..

    iptables: 包过滤型的防火墙 Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件;    主机防火墙     网络防火墙   &…

    Linux干货 2017-06-19
  • 用户 组

    用户 组    在linux系统中,用户管理是基于用户名和密码的方式进行资源的分配,linux上用户Username/UID分为以下类别:    管理员: root,0    普通用户: 1-65535 普通用户分为:系统用户和登录用户两种 系统用户:1-499(cen…

    系统运维 2016-08-04
  • 文本全屏编辑器 vim

             vim在Linux中站着很重要的位置,是每一个学习Linux人员的必须掌握的技能之一,因为vim功能很强大为我们编辑文件和脚本带来了很大的方便。接下来我们来一起了解vim的功能。   文本编辑种类:     行编…

    Linux干货 2016-08-15
  • 学习积累01#计算机组成#Linux版本#基本命令

    第一周的积累 问题1:描述计算机的组成及其功能 CPU:中央处理器,主要功能是进行运算和逻辑运算,内部大致可分为控制单元、逻辑算术单元、存储单元; 主板:核心部件,是电脑的“脉络”,CPU\内存\控制核心电路均安装在主板上,各种外部设备也通过主板上的插槽相互连接; 硬盘:常见的外存储器,容量大,保存时间长、安全性高。接口主要分为IDE、SATA、SCSI。 …

    Linux干货 2016-10-25

评论列表(1条)

  • renjin
    renjin 2017-04-21 10:15

    主要介绍了vim编辑器的快捷方式与详细用法 ,内容介绍的很详细,排版也很好,继续努力!!