VIM

vi有三种模式:编辑模式-输入模式(退出ESC)/编辑模式-末行模式(退出ESC)

  1. 编辑模式
    1. 进入输入:
      1. a/i:在字符后/前转输入模式
      2. o:在广标下方重新开启一行
      3. I:行首插入 A:行尾插入
      4. O:在光标上方重开一行
    2. 移动光标:
      1. 单词
        1. e下一个单词词尾
        2. b上一个单词词尾 支持次数
        1. O行首
        2. ^非空白行首
        3. $绝对行尾
        4. 50G,跳到50行
        5. :50直接在末行模式给出行号回车。
    3. 翻屏
      1. ctrl F向下翻页
      2. ctrl B向上翻页
      3. ctrl D下半页
      4. ctrl U 上半页
    4. 删除单个字符
      1. #x删除光标所在的字符,#代表重复次数
      2. dw
      3. de
      4. db
      5. dd
    5. 粘帖:
      1. p:如删除的是整行,则贴在光标下方,否则贴在字符前面
      2. P:如删除的是整行,则贴在光标上方,否则贴在字符后面
    6. 复制命令y:用法如同d
    7. 先删除再转换为输入模式:
      1. c:同d命令, = d + 输入模式
    8. 替换:
      1. r 要替换的字符
      2. R进入替换模式
    9. 撤销编辑操作
      1. u 撤销最近一次操作
      2. 撤销撤销:ctrl r
    10. 重复此前操作
      1. .
    11. 可视化模式
      1. v:按字符选取
      2. V:按矩形块选取
      3. ctrl v:视觉块操作
    12. 查找:
      1. /模式 :往下查找
      2. ?模式:往上查找

  2. 末行模式
    1. 末行变量
      1. . 表示当前行
      2. $ 表示最后一行
      3. +#表示向下#行
    2. 存盘
      1. :wq保存退出
      2. :w!强制保存
      3. :w存盘
      4. :q退出系统
      5. :q!不保存退出
      6. :x保存退出
    3. 删除:
      1. :1,8d删除1-8行
      2. :50跳转到50行
    4. 查找替换:
      1. :#,#s@pattern@string/g
      2. :%s@pattern@string/g
      3. #代表行; @是分割符号; %=^,$;g是指替换行内所有匹配点。
    5. vi编辑多文件:
      1. vi file1 file2
      2. 切换:next,prev,first,last
    6. 分屏幕显示文件
      1. ctrl +w,s:上下分
      2. ctrl +w,v:左右
      3. ctrl +w,c:合并窗口
      4. ctrl +w,箭头:窗口切换
    7. 将文件的一部分存为另一个文件:
      1. :1,100 w /path/to/file
    8. 将另一个文件内容填充到当前文件:
      1. :r /path/to/file
    9. 到shell中执行命令
      1. :!cmd
    10. 环境设置:
      1. :set number= set nu : set nonu
      2. set ic; set noic忽略大小写与否
      3. set autoindent= set ai; set noai
      4. syntax on syntax off
    11. 配置文件:
      1. 全局 : /etc/vimrc
      2. 用户:.vimrc
  3. 输入模式: