vi是unix家族下最功能强大的文字编辑器,让用户只要使用一个键盘就可以完成所有的编辑。而vim则是vi的加强版,甚至在Windows上也找得到vim的踪迹。但vi/vim众多的命令却经常令初学者却步,更令人绝望的是它的命令还分大小写!
以下是整理出来的的命令:
编辑模式
| 命令 | 说明 | |
|---|---|---|
| * | i | 在光标位置进入编辑模式 |
| I | 在光标所在行的第一个非空白字符进入编辑模式 | |
| * | a | 在光标位置后进入编辑模式 |
| * | A | 在光标所在行的最后一个字符进入编辑模式 |
| * | o | 向下新增一行,并进入编辑模式 |
| O | 向上新增一行,并进入编辑模式 | |
| cc | 删除光标所在行,并进入编辑模式 | |
| * | [ESC] | 取消命令或退出编辑模式 |
光标移动
| 命令 | 说明 | |
|---|---|---|
| * | gg | 移到第一行 |
| * | G | 移到最后一行 |
| * | 行数 → G | 移动到第n 行 |
| 0 | 移动到该行最前面 | |
| $ | 移动到该行最后面 | |
| 字数 → [Space] | 向右移动n 个字符 | |
| * | 行数 → [Enter] | 向下移动n 行 |
标记与复制
| 命令 | 说明 | |
|---|---|---|
| * | v | 开始字符串标记 |
| * | V | 开始行标记 |
| * | v → [Ctrl]-V | 开始区块标记 |
| * | d | 删除标记的内容 |
| * | y | 复制标记的内容 |
| * | yy | 复制光标所在行 |
| yG | 复制光标所在行到最后一行 | |
| y1G | 复制光标所在行到第一行 | |
| y$ | 复制光标处到最后一个字符 | |
| y0 | 复制光标处到第一个字符 | |
| * | p | 在下一行贴上复制或删除的内容 |
| P | 在上一行贴上复制或删除的内容 | |
| * | [Ctrl]-R → 0 | 在下一行贴上复制或删除的内容,适用于编辑模式及命令行 |
搜索与取代
| 命令 | 说明 | |
|---|---|---|
| * | / 搜索字符串 | 向下搜索字符串 |
| /\c 搜索字符串 | 向下搜索字符串,不分大小写 | |
| * | * | 将光标移到字符串上,直接按”*” 也可以做向下搜索 |
| ? 搜索字符串 | 向上搜索字符串 | |
| ?\c 搜索字符串 | 向上搜索字符串,不分大小写 | |
| * | :set ic | 搜索时不分大小写 |
| * | :set noic | 搜索时要分大小写 |
| * | n | 继续下一个搜索结果 |
| * | N | 继续上一个搜索结果 |
| * | : 起始行 , 终止行 s/ 搜索字符串 / 取代字符串 /gic | 从第n 行到第n 行取代字符串(后面的g: 整行全部i: 不分大小写c: 询问) |
| * | :1,$s/ 搜索字符串 / 取代字符串 /gic | 全部取代字符串(后面的g: 整行全部i: 不分大小写c: 询问) |
删除
| 命令 | 说明 | |
|---|---|---|
| * | dd | 删除光标所在行 |
| * | 行数 → dd | 删除n 行 |
| * | dG | 删除光标所在行到最后一行 |
| d1G | 删除光标所在行到第一行 | |
| * | d$ | 删除光标处到最后一个字符 |
| d0 | 删除光标处到第一个字符 |
文件功能
| 命令 | 说明 | |
|---|---|---|
| * | :w | 存档(加! 表示强制存档) |
| * | :w 文件名称 | 另存新档 |
| * | :q | 退出vi (加! 表示不存档强制退出) |
| * | :wq | 存档并退出vi |
| * | : x | 存档并退出vi |
| :w !sudo tee % | 当你编辑好文件要存档时,却发现没有写入文件的权限! 用这会命令可以让你直接以root 的权限存档 | |
| * | :e 文件名称 | 编辑其它文件 |
| * | :e! | 还原至文件编修前的状态 |
| :r 文件名称 | 读入文件内容,并加到光标所在行的后面 | |
| * | :n | 切换到下一个开启的文件 |
| * | :N | 切换到上一个开启的文件 |
| * | :set nu | 显示行号 |
| * | :set nonu | 取消行号显示 |
| * | :files | 列出所有开启的文件 |
| * | :Ex | 开启文件浏览器 |
| * | :Ex 路径 | 于指定路径开启文件浏览器 |
| :Hex | 分割水平窗口后,再开启文件浏览器 | |
| :Vex | 分割垂直窗口后,再开启文件浏览器 | |
| :Tex | 新增标签页后,再开启文件浏览器 | |
| :Hex 路径 | 分割水平窗口后,再于指定路径开启文件浏览器 | |
| :Vex 路径 | 分割垂直窗口后,再于指定路径开启文件浏览器 | |
| :Tex 路径 | 新增标签页后,再于指定路径开启文件浏览器 |
窗口分割
| 命令 | 说明 | |
|---|---|---|
| * | :new | 新增水平分割窗口 |
| * | :new 文件名称 | 新增水平分割窗口,并在新增的窗口载入文件 |
| * | :vnew | 新增垂直分割窗口 |
| * | :vnew 文件名称 | 新增垂直分割窗口,并在新增的窗口载入文件 |
| :sp | 新增水平分割窗口,并在新增的窗口载入目前的文件 | |
| :sp 文件名称 | 新增水平分割窗口,并在新增的窗口载入文件 | |
| :vsp | 新增垂直分割窗口,并在新增的窗口载入目前的文件 | |
| :vsp 文件名称 | 新增垂直分割窗口,并在新增的窗口载入文件 | |
| * | [Ctrl]-W → [方向键] | 切换窗口 |
| * | :only | 仅保留目前的窗口 |
标签页
| 命令 | 说明 | |
|---|---|---|
| * | :tabe | 新增标签页 |
| * | :tabe 文件名称 | 新增标签页,并在新标签页载入文件 |
| :tabc | 关闭目前的标签页,等同:q | |
| :tabo | 关闭所有标签页 | |
| :tabn | 移至下一个标签页 | |
| :tabp | 移至上一个标签页 | |
| * | gt | 移至下一个标签页 |
| * | gT | 移至上一个标签页 |
| * | :tabfirst | 移至第一个标签页 |
| * | :tablast | 移至最后一个标签页 |
| * | :tabm 标签页编号 | 移至特定编号的标签页(编号从0 开始) |
| :tabs | 列出所有标签页 |
其它命令
| 命令 | 说明 | |
|---|---|---|
| * | J | 将光标所在行与下一行合并 |
| * | u | 还原命令 |
| * | [Ctrl]-R | 重做命令 |
| * | [Ctrl]-N | 自动补齐曾输入过的单字 |
| * | . | 重覆上一个命令 |
| ! 命令 | 执行linux 命令,并显示执行结果 | |
| TOhtml | 将目前编辑的文件转换成HTML 原始码(会新增一个水平分割窗口) |
文件浏览器操作
请先以:Ex 相关命令进入文件浏览器
| 命令 | 说明 | |
|---|---|---|
| * | – | 到上层目录 |
| * | d | 建立目录 |
| * | D | 删除目录 |
| * | R | 重新命名 |
| * | s | 切换排序方式 |
| r | 切换升幂/降幂排序 | |
| i | 切换文件的排列方式 | |
| * | / | 搜索字符串 |
| x | 执行文件 | |
| * | o | 新增水平窗口 |
| * | v | 新增垂直窗口 |
vim 配置文件
编辑/etc/vimrc,在文件最后加入:
"显示列号
set number "语法高亮度显示
syntax on "标记搜索到的字符串
set hlsearch "自动缩排
set autoindent "显示说明
set ruler "显示编辑状态
set showmode "设定注解的颜色
highlight Comment ctermfg=cyan "设定搜索到的字符串颜色
highlight Search term=reverse ctermbg=4 ctermfg=7 "设定tab键的字符数
set tabstop=4
来源:http://www.vixual.net/blog/archives/234
更多文章:在 Vim 中优雅地查找和替换,简明 VIM 练级攻略
vi 与 vim 的指令整理
https://ailitonia.com/archives/vi-%e4%b8%8e-vim-%e7%9a%84%e6%8c%87%e4%bb%a4%e6%95%b4%e7%90%86/
本文被阅读了:3,854次