本文目的
主要学习在Linux开发环境下,对vim的常用快捷键操作,经常看到大神的各种骚操作,感觉很牛逼的样子,实际上只要熟悉了这些命令,你也能够表现得牛逼轰轰的。Fighting!!!
vim介绍
vim是一种模式编辑器,专为软件开发而诞生。vim的设计理念是命令的组合。拥有各种各样的文本间移动/跳转命令和其他的普通模式的编辑命令,并且可以灵活组合使用。
常用快捷键和命令使用
- 打开文件并指定行号
在文件名后用+号指定行号
vim <file_name> +line_number
eg: vim ubp_scoreboard.elog +144
- 统计字符串出现的次数
:%s/string//gn
- 统计所有的字符串并且打印到文件的末尾
:g/string/#
加不加后边的#号都可以,我也不知道有什么区别,欢迎讨论
- 运行外部命令
:shell_command
:!shell_command //运行完命令之后再返回到vim界面
- 前后台转换
ctrl + z //后台运行
fg //回到前台运行界面
- 快速搜索匹配
/string\c //向后搜索, \c 忽略大小写
?/string //向前搜索
shift + * //向后,快速搜索当前鼠标停留的单词,并且高亮显示
shift + # //向前,搜索
前两个命令是在普通模式下,后边两个命令是直接用快捷键
- 命令模式下跳转到指定的行
:line_number
- 快速选中一个字符串并且高亮
普通模式下,直接按g + d,表示跳转到变量定义的地方(为代码而生)
小写的n表示向下,跳到下一个
- global命令模式
d 命令:delete,删除
:g/string/d //删除带有string的行
:g!/string/d //保留带string的行
: g/hello/, /world/d //删除hello,world之间的所有的行
s命令:substitute, 替换
:g/string/s/aaa/bbb/ //匹配string行,将aaa替换成bbb
- 全局替换
:%s/aaa/bbb/ //全局将aaa替换成bbb
- 删除行尾空格
:%s/\s\+$// //%s表示全局搜索,\s表示空格,\+匹配多个,/分隔符号
- 匹配括号(){} []
快捷键
ctrl + %
- 跳转到上一次的搜索位置
快捷键
ctrl + o