#vi
##一般模式
其他模式下:按Esc 退出到一般模式
**i**/**I** 进入编辑模式,光标前插
**a**/**A** 进入编辑模式,光标后插
**o**/**O** 进入编辑模式,下行插入
**r**/**R** 进入编辑模式,替换模式 其中r替换一次就变回插入模式R会一直处于插入模
**Ctrl f** 下移一页
**Ctrl b** 上移一页
**Ctrl d** 下移半页
**Ctrl u** 上移半页
**+** 移动到下一非空行
**-** 移动到上一非空行
**n spcace** 后移动 n位
**0**/**home** 移动到当前行第一个字符
**$**/**end** 移动到当前行最后一个字符
**H** 移动到屏幕最上方第一行第一个字符
**M** 移动到屏幕中央那行第一个字符
**L** 移动到屏幕最下方最后一行第一个字符
**G** 移动到文件最后一行
**nG** n为数字 移动到文件第n行
**gg** 移动到文件第一行
**n Enter** n为数字 下移n行
**n** n为字母 继续上一次查找
**N** N为字幕 继续上一次的反查找
**nx** n为数字,在一行字中,向后剪切n个字符,不加n代表1
**nX** n为数字,在一行字中,向前剪切n个字符,不加n代表1
**ndd** n为数字,剪切光标所在行所在的下n行,不加n代表1
**d1G** 剪切光标所在到第一行的所有数据
**dG** 剪切光标所在到最后一行的所有数据
**d$** 剪切光标所在处到该行的最后一个字符
**d0** 剪切光标所在处到该行的第一个字符
**nyy** n为数字,复制光标所在行所在的下n行,不加n代表1 其他同dd
**p** 复制在光标下一行
**P** 辅助在光标上一行
**J** 将光标所在行与下一行数据结合成同一行
**c** 重复删除多个数据
**u** 复原上一个操作
**ctrl r** 重复上一操作
###块选择
**v** 字符选择 光标经过的地方会被反白选择
**V** 行选择 光标经过的行会被反白选择
**Ctrl v** 块选择 用长方形方式选择数据
**y** 将反白的地方复制起来
**d** 将反白的地方删除
###多文件操作
**:n** 编辑下一个文件
**:N** 编辑上一个文件
**:files** 列出vim打开的所有文件
**:set all** 查阅当前设置
###多窗口功能
**:sp{filename}** 指定一个文件和当前文件多窗口显示,若不加filename 着两个都是当前文件
**ctrl w j** 按法 先按ctrl 不放再按下w 放开所有按键,再按下j 将光标移动到下方窗口
**ctrl w k** 按法 先按ctrl 不放再按下w 放开所有按键,再按下k 将光标移动到上方窗口
**ctrl w q** 按法 先按ctrl 不放再按下w 放开所有按键,再按下q 等同于 :q
##编辑模式
一般模式下;按下 i I o O a A r R 任何一个字幕进入编辑模式
##命令行模式
一般模式下 按下 : / ? 三个之一进入命令行模式
**:set nu** 显示行号
**:set nonu** 不显示行号
**/word** 向下查找word的字符串
**?word** 向上查找word的字符串
**:n1,n2s/word1/word2/g** 在n1行n2行之间 查找字符串word1 并替换成word2
**:1,$s/word1/word2/g** 在第一1行到最后一行之间 查找字符串word1 并替换成word2
**:1,$s/word1/word2/gc** 在第一1行到最后一行之间 查找字符串word1 并替换成word2,替换前询问
**:w** 将编辑的数据写入到硬盘文件中
**w!** 文件属性为“只读”时,强制写入该文件。不过到底能不能写入,与你对该文件的权限有关
**q** 离开vi
**q!** 强制离开vi,不保存文件
**:wq** 保存后离开vi
**:wq!** 强制保存后离开vi
**ZZ** 若文件没有更改,则不保存离开,若文件更改了,则保存后离开
**:w[filename]** 将文件保存成另一个文件
**:r[filename]** 在编辑的数据中读入另一个文件的数据,将filename数据加入到光标后面
**:n1,n2 w [filename]** 将n1到n2行保存为新文件
**:!command** 暂时离开vi到命令行模式下执行command的显示结果
##恢复文件
.filename.swp
##/.vimrc 配置文件
默认不存在,可以自行手动创建
**:set nu** 显示行号
**:set nonu** 取消行号
**:set hlsearsh** 高亮查找
**:set nohlsearsh**
**:set autoindent** 自动缩排
**:set noautoindent**
**:set backup** 是否自动保存备份文件 改动一个文件 原文件会另存为一个filename~的文件
**:set nobackup**
**:set ruler** 显示状态栏
**:set showmode=(012)** 2:可以删除任意值; 0或1:仅可以删除输入的字符,无法删除原本就存在的字符。
**set** 显示与系统默认设置不同的字符,一般就是自行变动过的设置参数
**syntax on** 根据程序相关语法显示不同颜色
**syntax off**
**set bg=dark** 设置不同的显示色调
**set bg=light**
##/.viminfo 记录操作文件