文本编辑器vim

Posted on 2015-11-20 19:37  Y-HKL  阅读(173)  评论(0编辑  收藏  举报

Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最大的文本编辑器,它的作用是建立、编辑、显示文本文件。

Vim没有菜单,只有命令。

命令 作用
     a 在光标所在字符后插入
     A 在光标所在行尾插入
  i 在光标所在字符前插入
  I 在光标所在行行首插入
  o 在光标下插入新行
  O 在光标上插入新行

 

      命令                               作用
 :set nu   设置行号
   :set nonu   取消行号
    gg   到第一行 
    G   到最后一行
    nG   到第n行
    :n   到第n行
    $   移至行尾    
    0   移至行首

 

    命令                作用
  x 删除光标所在处字符
  nx 删除光标所在后n个字符
  dd 删除光标所在行,ndd删除n行
  dG 删除光标所在行到文件行尾内容
  D 删除光标所在处到行尾内容
  :n1,n2d 删除指定范围的行

 

   命令                     作用
  yy  复制当前行
  nyy 复制当前行以下n行
  dd 剪切当前行
  ndd 剪切当前行以下n行
  p、P 粘贴在当前光标所在行下或行上

 

  命令                                    作用
  r 取代光标所在处字符
  R 从光标所在处开始替换字符,按Esc结束
  u 取消上一步操作

 

      命令                                          作用
  :w 保存修改
  :w  filename 另存为指定文件
  :wq 保存修改并退出
  ZZ 快捷键,保存修改并退出
  :q! 不保存修改退出
  :wq! 保存修改并退出(文件所有者及root可使用)

1.文本编译器  ASCII文件
    vi的模式
         编辑模式:键盘操作被解析为编辑命令
          插入模式:文字输入
          末行模式:vi的内置的命令接口,执行vi内置命令


2.编辑模式--》插入模式
    i:在当前光标的所在处插入、
    I:在当前光标的所在行首插入
    a:在当前光标所在处的后面插入
    A:在当前光标所在行的行尾插入
    o:在光标所在行(新增)的下一行插入
    O:在当前光标所在行(新增)的上一行插入


插入模式--》编辑模式
    按[ESC]

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

末行模式--》编辑模式
   ESC  ESC



 :q!  不保存退出
 :wq   保存退出
 :x   保存并退出
 编辑模式   ZZ 保存退出


3.打开:可以一次打开多个文件
       vi 文件名1  文件名2
       在末行模式下输入next切换到下一个文件,输入prev切换到上一个文件,输入first切换到第一个文件,输入last切换;到最后一个文件
    分割窗口打开多个文件
           -O:水平分割
        Ctrl+w,上下箭头
       -o:垂直分割
        Ctrl+w,左右箭头



vi +num 文件名   光标在第num行
vi + 文件名    光标在末尾行





4.编辑操作(编辑模式下)

.光标移动
    单字符移动
        H左  L右  J下  K上
        可以和数字组合进行多个移动
    单词间移动
        w:跳至下一个单词的词

        b:当前或前一个词首
        e:当前或下一个词尾
    行内移动
        0:绝对行首
        ^:第一个非空白字符
        $:绝对行尾
    句间移动
        (
        )
    段间移动
        {
        }
    行间移动
         num+g
        G:最后一行
        1G:第一行

 


    x:删除光标所在处的字符
    num+x:删除光标所在处开始向后的num个字符
    dd:删除光标所在处的一行
        num+dd:删除光标所在处向后的num行

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


    yw:复制光标所在处到行尾的字符
    num+yw:复制num个字
    yy:复制光标所在行
    num+yy:复制num行
    p:粘贴


5.末行模式:范围定界
      设置行号:set nu
      取消行号:set nonu
      跳转至某一行:num
      查找:/查找单词
             ?查找字符
      替换字符
           s/a/b 将光标所在行的第一个a替换成b
           s/a/b/g 将光标所在行的所有a替换成b
    

    start,end:例:1,10
    .:表示当前行
    $:最后一行
    
        c:替换

 

 

 

1)导入命令执行结果:r!命令

2)定义快捷键:map  快捷键  触发命令

              例:map  ^P   I#<ESC>

                    map  ^B   0x

3)连续行注释  :n1,n2s/^/#/g

                     :n1,n2s/^/#//g

                     :n1,n2s/^/\/\//g

4)替换   

    :ab   mymail     123456@qq.com