vi:visual interface

打开文件

  全屏编辑器、模式化编辑器

  vi +num filename:打开filename文件,光标处于num行。

  vi + filename :打开filename文件,光标处于文件最后一行的首字符

  vi +/pattern :打开文件,光标处于第一次被模式匹配到的行首

关闭文件

  末行模式关闭文件:

             :q  不保存退出

             :w  保存

             :qw  保存并退出

             :q!

             :w!  管理员强行保存只读文件

  命令模式下关闭文件

             ZZ 保存并退出

移动光标

  在命令模式下 

  1、逐字符移动

    h、j、k、l:前面可以加数字,快速移动如3h

  2、按单词移动

    w 移至下一个单词的词首

    e 移至当前单词词尾或下一个单词词尾 前面可加数字快速移动3w 3e

    b 移至当前单词词首或前一个单词词首

  3、行内跳转

    0 绝对行首

    ^ 行首的第一个非空白字符

    $ 绝对行尾

  4、行间跳转

    #G 跳转至第#行

    G 最后一行

    在末行模式下跳转,给出行号,回车

翻屏

  ctrl+f 向下翻一屏

  ctrl+b 向前翻以屏

  

  ctrl+d 向下翻半屏

  ctrl+u 向前翻半屏

删除单个字符

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

  #x:删除光标所在处及后面的#个字符

删除命令 d

  d命令和跳转命令组合使用

  #dw 删除指定范围的#个

  dd 删除当前光标所在行

  #dd 删除包括光标所在行共#行

  末行模式下

    startadd,endadd d

    .表示当前行

    $表示最后一行

    +#表示向下的#行

    $-n表示倒数第n行

粘贴命令

  p 如果粘贴或复制的为整行,则粘贴在光标所在行的下方,如非整行,则粘贴在光标所在字符后面

   P如果粘贴或复制的为整行,则粘贴在光标所在行的上方,如非整行,则粘贴在光标所在字符前面 

复制命令

   y 用法同d

修改:先删除,再进入输入模式

   c 用法同d

替换

   r

   R 直接进入替换模式

撤销编辑操作

   u(undo) 撤销前一次操作

   ctrl r  撤销最近一次撤销操作

重复前一次编辑操作

   .

可视化模式

   v 按字符选取

   V 按矩形块选取

查找

   /pattern  从上往下查找

   ?pattern 从下往上查找

查找并替换

   s  用法同sed

startl,endls/pattern/string/

vi工作模式

1:命令模式(默认工作模式)

2:输入模式

3:末行模式

vi模式转换

命令-->输入

    i:在当前光标所在字符的前面,转为输入模式。

    a:在当前光标所在字符的后面,转为输入模式。

    o:在当前光标所在行的下面,新建一行,转为输入模式。


    I:在当前光标所在行的行首,转为输入模式。

    A: 在当前光标所在行的行尾,转为输入模式。

    O:在当前光标所在行的上方,新建一行转为输入模式。

输入-->命令

    ESC键

命令-->末行

    :

    set nu:显示行号

    10d  :删除第10行

    10,20d:删除10-20行

    !bash命令,如!ls /etc

末行-->命令

    ESC

vim编辑多个文件

    vim filename1 filename2

    :next切换到下一个文件

    :prev切换到前一个文件

    :first切换到第一个文件

    :last切换到最后一个文件

将文件中的内容保存到另一个文件

末行模式w命令

statadd,endaddw /path/filename

将另一个文件中的内容填充到当前文件中

末行模式

r /path/filename

跟shell交互

:!command

分屏显示

 ctrl+w s

 切换

 ctrl+w arrow

高级话题

1显示或不显示行号

 set nu

  set nonu

2设置自动缩进

 set ai 

配置文件

 /etc/vimrc

 ~/.vimrc