- 基础的
:e filename 打开文件
:w 保存文件
:q 退出
:x 写文件并退出(等价于wq)
:saveas filename 另存为filename
. 重复上一次操作
.5 重复5次上一次操作
- 移动光标
k 向上移动光标
j 向下移动光标
h 向左移动光标
l 向右移动光标
e 移动到行尾
b 移动到单词首
o 移动到行首
G 移动到最后一行
gg 移动到到第一行
L 移动到屏幕最底端
:59 移动到59行
20| 移动到第20列
% 移动到匹配的符合(如中括号、大括号)
[[ 移动到函数头部
[{ 移动到块前部
- 剪切、复制、黏贴
y 复制选中的块(v进入选择块的模式)
yy 复制当前行
y$ 从当前位置复制到行未
p 黏贴
dd 删除当前行
D 删除当前字符
- 查找
/word 从头到尾查找word
?word 从尾到头查找word
* 查找光标所在的单词
/\cstring 忽略大小写查找string
/jo[ha]n 全文查找john或 joan
/\<the 搜索以the开头的行
/the\> 搜索以the结尾的行
/\<the\> 搜索只有the的行
/fred\|joe 搜索fred和joe
/\<\d\d\d\d\> 搜索只有4个数字的行
/^\n\{3} 搜索3行空白行
:bufdo /str/ 在所有打开的文件中查找str
:bufdo %s/something/somethingelse/g 在所有打开的文件中用somethingelse替换something
- 替换
:%s/old/new/g 在全文中用new替换old
:%s/old/new/gi 用new替换old,忽略大小写
%s/old/new/gc 在全文中替换old,替换时需要确认才生效
:2,35s/old/new/gc 从第2行到35行替换
:5,$s/old/new/g 从第5行到文章末尾替换
:%s/^/hello/g 从文章开头替换
:%s/$/Harry/g 最后一行替换
:%s/*$//g 删除空白行
:g/string/d 删除含有string的行
:v/string/d 删除不含string 的行
:s/old/new 在当前行替换old,只替换一次
:s/old/new/g 在当前行替换所有的old
:%s/^M//g 删除DOS行
:%s#<[^>]\+>##g 删除html标签
:%s/^\(.*\)\n\1$/\1/ 删除出现2次的行
ggvGg? 全文进行Rot13加密
- 转换
Vu 转换当前行为小写
VU 转换当前行大写
2Vu 转换从当前行开始的2行为小写
g~~ 反转当前行的大小写
vEU 转换当前行的大写
vE~ 反转当前行的大小写
ggguG 全文转为小写
gggUG 全文转为大写
:set ignorecase 忽略大小写
:set smartcase 不忽略大小写
:%s/\<./\u&/g 设置第一个单词首写字母为大写
- 读写文件
:1,10 w outfile 将1到10行写入到outfile
:1,10 w >> outfile 将1到10行追加到outfile
:r infile 插入infile的内容
:23r infile 插入23行infile的内容
- 文件浏览
:Sex 打开文件浏览器
:browse e 打开文件浏览器
:ls 列出当前文件夹里的所有文件
:cd .. 将父目录调整到上一个目录
:args 查看当前打开的文件名
:args *.php 查看当前打开的所有php文件
gf 打开当前光标的单词的文件
- 执行shell
:!pwd 执行pwd命令(!+ sh命令)
- 对齐
:%!fmt 重排所有行,使得所有当前所有行对齐
gg=G 全文格式化
!}fmt 从当前位置重排所有行,使得所有当前所有行对齐
5!!fmt 从当前位置重排5行,使得当前所有行对齐
- tabs/窗口
:tabnew 创建一个新文件,tab
gt 跳到下一个选项卡
:tabfirst 展示第一个选项卡
:tablast 展示最后一个选项卡
:tabm n(position) 跳到n个选项卡
:tabdo %s/foo/bar/g 在所有的选项卡中,执行%s/foo/bar/g 命令
:tab ball 保存所有
:new abc.txt 新建一个abc.txt选项卡
- 分隔窗口
:e filename 编辑filename文件在当前窗口
:split filename 分隔窗口,打开filename文件
ctrl-w-w 移动光标到上一个窗口
:vsplit file 垂直分隔文件
:sveiw file 水平分隔文件
:hide 关闭当前窗口
:nly 除了当前文件,关闭所有窗口
:b 2 打开2号文件
- 文本缩进
:set autoindet 自动缩进
:set smartindet 不自动缩进
:set shifwidth=4 设置缩进为4个空格
>> 右缩进
<< 左缩进
== 缩进当前行
v== 缩进选中行
11== 11行自动缩进
=% 缩进代码的括号
gg=G 全文缩进
- 语法高亮
:syntax on 语法高亮打开
:syntax off 语法高亮关闭
:set syntax=cpp 设置当前语法环境为c++
参考网站