vi/vim常用命令
一、在可视模式下
shift+h 光标到屏幕最上方
shift+m 光标到屏幕中间
shift+l 光标到屏幕最下方
B 光标回到前一个空格处
b 光标回到前一个单词处
v 选择
[num] + G 光标到num指定行
G 到文章末
gg 到文章首
dd – 删除一行
d[num]d – 删除num行
dG – 删除到文章末
dgg – 删除到文章首
yy – 整行复制
p – 粘贴
u – 取消刚执行的操作
U – 回到初始状态
g~ 转换大小写
g~~ 转换一行
g~+[num] 转换num行
这3个命令要注意下,输入完后如果按左右键是以字母为单位,如果按上下键是以行为单位。
二、可视模式下
:num 到指定行
:num1,num2 d 删除num1到num2之间的行
:help 显示帮助
:split 分屏
:next 下一个文件
:previous 上一个文件
:last 最后一个文件
:first 第一个
:args 左下显示文件的编号
:!command 执行系统命令
:3,20w /home/beoop/test 将3到20行保存到/home/beoop/test 中
:1r /home/beoop/test 将/home/beoop/test读取到第一行中
三、输入模式
a 在光标后开始插入
A 在行末开始插入
i 在光标处开始插入
I 在行首开始插入
o 在下一行开新一行插入
O 在上一行开新一行插入
s 删除光标所在字符再转编辑模式
S 删除一行再转编辑模式
四、查找和替换
替换格式
[range]s /[pattern]/[string]/[&][c][e][g][p][r][I][count]
range:范围 1,100 表示1到100行 % 表示所有行
pattern: 模式,支持正则表达式
一些常用的pattern
_^ 行首
_$ 行尾
< 一个单词的开头
> 一个单词的结尾
string: 替换值
c:替换时提示
e:不显示错误
g:不提示
count:次数
示例
:% s/_^.//g 删除每一行第一个字母(把每行第一个字母替换为空)
:% s/.>/A/g 将每个单词的结尾改为A
五、相关设置
:set nohlsearch 消除搜索记号
:synatax enable 打开语法色彩支持
:sync off 取消语法色彩
:suspend 将vi放到后台
:map[F1~F4] 自定义功能键
etc: map F1 dd 定义F1为dd功能
:set ic 忽略大小写
:set noic