文本编辑器vim

时间:2021-10-04 04:23:54

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

Vim没有菜单,只有命令。

文本编辑器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