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,378次