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 练级攻略


本文被阅读了:2,063次

作者头像
关于  Ailitonia

正因站在了巨人的肩膀上,才越发觉得自己渺小。不求成为巨人,但求与其同行。 把自己所见所闻,记录下来。

→查看所有由Ailitonia发布的文章