Linux学习之路4-Vim文本编辑利器

Vim编辑器, visual interface 全屏幕的编辑器

  

  模式化:

         1.编辑模式:命令模式

         2.输入模式:

         3.末行模式:

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

         i: insert,

         a:append,

         o:new line,

         I: 行首

         A:行尾

         O:上方新建行

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

         ESC

     编辑模式 --> 末行模式:

         :

     末行模式 --> 编辑模式

         ESC

 

   打开vim:

     # vim

     # vim /PATH/TO/SOMEFILE

         +#:#为行号;

         +/PATTERN

 

   关闭vim::q  :q!:wq:x

     ZZ:保存退出

  

   光标跳转

     字符间跳转:hljk

     单词间跳转:

         w:后单词的词首

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

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

    

    行内跳转

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

         0:跳转至行首;

         $: 跳转至行尾;

     行间移动:  #G: 1G, gg  G

     句间移动:  )   (

     段落间移动:}   {

   

    编辑命令

     字符编辑

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

         #x:删除#个,例如4x

         xp:

         r: 替换光标所在处的字符,R为替换多个字符;

     删除命令

         d:

             d^ 删除当前光标至行首的第一个字符

             d$ 删除当前光标至行末的字符

             d0 删除当前光标至行首所有字符

             dw删除当前单词词首到下一个单词词首,

             de删除当前单词词尾到下一个单词词尾,

             db 删除当前单词词首到上一个单词词首

             dd: 删除1行,3dd 删除3行

         注意:删除的内容会被vim编辑器保存至缓冲区当中;

    

      粘贴:p (paste, put)

         如果此复制或删除的内容不是一个完整行

             p:粘贴至当前光标所在处后面;

             P:粘贴至当前光标所在处前面;

         如果复制的内容是完整行(可不止一行)

             p: 粘贴至当前光标所在行下方;

             P:行上方;

    

     复制命令:y, yank

             y$, y^, y0

             ye, yw, yb

             yy: 复制行

    

     改变命令:c, change

         c$, c^, c0

         cb, ce, cw

         cc:

  

     撤消此前的编辑操作

           u: undo

             撤消此前编辑操作;U 撤销当前行的操作

           Ctrl+r

             恢复此前的撤消操作

             .: 重复前一个编辑操作

       

     翻屏操作

             Ctrl+f: 向后一屏;

             Ctrl+b:向前一屏;

             Ctrl+d: 向后半屏

             Ctrl+u: 向前半屏

  

     vim内建教程

         vimtutor 非常好,有空就练吧

 

     vim的末行模式

         (1) 地址,定界

                 :start_pos,end_pos

                     #:第#行;

                     #,#

                     #,+#

                         .: 当前行

                         $: 最后一行

                     %: 全文,相当于1,$

                     /pat1/:第一次被此模式所匹配到的行;

                     #,/pat1/

                     /pat1/,/pat2/

                 后可跟编辑命令:

                     d, y

                     w, r 

         (2) 查找

                 /PATTERN:向尾部进行

                 ?PATTERN:向首部进行

                     n: 与命令同方向

                     N:与命令反方向

         (3) 查找替换

                 s: 在末行模式下,在地址定界的范围内完成查找替换操作;

     

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

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

                     替换为的内容:不能使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容;

                         \1, \2, ...

                         &:引用“要找的内容”匹配到的整个内容;

                     修饰符:

                         i: 忽略大小写

                         g: 全局替换

     

                 /:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/

                     分隔符可替换为其它字符:例如@,#等;

 

       多文件模式:

             vim FILE1 FILE2 ...

                 :next

                 :first

                 :prev

                 :last

                 :wqall

                 :q!all

  

       多文件窗口分割

                 vim -o|-O FILE1 FILE2 ...

                 Ctrl+w, ARROW

 

       单文件窗口分割

                 Ctrl+w, s: split, 水平分割

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

 

          定制vim的某些工作特性

             (1) 行号

                 显示:set nu

                 禁用:set nonu

             (2) 括号匹配

                 显示: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

         

           特性设定的永久生效方式:

             全局配置文件:/etc/vimrc

             用户个人的配置文件:~/.vimrc

 

    VIM 技巧:

            set list 显示所有字符,setnolist 关闭

            set nu 显示行号,set nonu关闭

            :r !head -10 /tmp/aa  命令模式读入aa 文件前10行,非常好,命令的执行结果可以以这种方式读入!

            ~大小写转换。在非编辑状态下,将光标移至某个字符,使用~命令,那么小写的字母会变成大写,大写的字母会变成小写


你可能感兴趣的:(linux,vim)