码迷,mamicode.com
首页 > 系统相关 > 详细

Vim编辑器详解

时间:2015-12-18 22:51:35      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:模式   vim   

一、vim基础特性操作

    1.vim一种模块化文本编辑器:纯文本信息,ASCII text

    2.vivim关系

        viVisual Interface

        vimVI Improved,增强版的vi编辑器,但部分小的Linux系统不一定支持

    3.基本模式转化(编辑模式、输入模式、末行模式)

         (1)编辑模式:默认模式

   编辑模式 --> 输入模式:

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

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

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

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

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

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

        (2)输入模式 --> 编辑模式 ESC

        (3)编辑模式 --> 末行模式   :

        (4)末行模式 --> 编辑模式  ESC

技术分享

    4.打开/关闭文件

        (1)打开文件

               # vim  [options]  [file ..]

                     +直接打开到文件尾部

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

        +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

        (2)关闭文件

   ZZ:保存并退出;(编辑模式)

    :q  退出

    :q!  强制退出,不保存此前的编辑操作

    :wq  保存并退出;

:w, :q

    :x  保存并退出;

   :w /PATH/TO/SOMEFILE  另存为

   5.光标跳转操作

        (1)字符间跳转

h:左   j:下   k:上   l:右

    #COMMAND:跳转由#指定的个数的字符#h#j#k#l

        (2)单词间跳转

w:下一个单词的词首;

e:当前(光标在本单词中间)或后一个单词的词尾;

b:当前(光标在本单词中间)或前一个单词的词首;

  #COMMAND:跳转由#指定的个数的单词#w#e#b

       (3)行首行尾跳转

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

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

  $:跳转至行尾;

       (4)行间跳转

   #G:跳转至由#指定的行;

  1G, gg:第一行;

    G:最后一行;

       (5)句间跳转:

  ) :光标移至句尾

  (  :光标移至句首

       (6)段间跳转

  }  :  光标移至段落最后一个字母

  {  :  光标移至段落第一个字母

    6.翻屏操作

    Ctrl+f:向文件尾翻一屏

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

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

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

    Enter:按行向后翻

 

 

 

二、编辑模式操作

    1.字符编辑

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

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

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

    2.替换命令

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

 rCHAR,替换光标所在处的字符为CHAR

    3.删除命令

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

   d$:删除到行尾

   d^:删除到行首

   d#w:删除到下#个单词词首

   d#e:删除到当前或后一个单词的词尾 

   d#b:删除到当前或前一个单词的词首;

       dd:删除光标所在处的行;

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

   注意:删除内容不会被直接清空,放置缓存区域,但只能接着操作且操作最近一次缓存

    4.粘贴命令

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

                否则,粘贴至当前光标所在处的后方;

         P:p正好相反

    5.复制命令(yank,y)

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

y$y^y0y#ey#wy#b

yy:复制一整行

#yy:复制#行

    6.改变命令(change,c)

c编辑模式 --> 输入模式,实现删除操作;

c$c^c0c#bc#ec#w

cc:删除光标所在的行,并转换为输出模式;

 #cc:删除光标所在的#行,并转换为输出模式

    7.可视化模式

            v:按字符选定;

V:按行选定;

结合编辑命令使用:d, c, y

    8.撤销操作(undo)

           u:撤销此前的操作; 默认可内存中进行撤销操作50

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

    9.取消此前的撤销操作:Ctrl+r

    10.重复此前编辑操作:  .

 

 

 

三、末行模式操作

    1.地址定界

        (1) :start_pos[,end_pos]

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

   .:当前行;

   $:最后一行;

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

  #,+#:相对定界,左侧为超始行绝对编号,右侧为相对左侧行号的偏移量

             .,$-1:当前航到最后一行

   1,$:全文

  %:全文

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

/pat1/,/pat2/:当前光标出开始第一次由pat1pat2匹配到的行结束之间的所有行;

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

dyc

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

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

    2.查找

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

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

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

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

    3.查找并替换

        默认不做全局替换,之替换每一行第一次匹配到的模式

            s:末行模式的命令;

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

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

      (2)替换为的内容:不能使用下则表达式,但可以引用;

“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;

  直接引用查找模式匹配到的全部文本,要使用&符号;

       (3)修饰符:

    i:忽略大小写;

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

       (4)可把分隔符替换为其它非常用字符:s@@@s###.0

 

 

 

四、vim多文件功能

    1.多文件

          vim  FILE1  FILE2 ...

      (1)在文件间切换:

:next  下一个

:prev  上一个

:first   第一个

:last   最后一个

      (2)退出所有文件:

:wqall 保存所有文件并退出;

:wall  :qall

    2.多窗口

          -o:水平分割窗口

          -O:垂直分割窗口

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

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

   Ctrl+w, s:水平分割窗口

   Ctrl+w, v:垂直分割窗口

 

 

 

五、设置vim工作特性命令

      1.行号:set number,set nuset nomber, set nonu

      2.括号匹配高亮显示:set showmatch, set smset nosm

      3.自动缩进:set aiset noai

      4.高亮搜索结果:set  hlsearchset nohlsearch

     5.语法高亮:syntax onsyntax off

      6.忽略字符大小写:set icset noic

      7.获取帮助:help:help subject

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

 永久有效设置方法:

       全局:/etc/vimrc

       个人:~/.vimrc(默认可能不存在,需自行创建)

本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1726200

Vim编辑器详解

标签:模式   vim   

原文地址:http://xuding.blog.51cto.com/4890434/1726200

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!