如何用Vim提高开发效率

2018 年 1 月 7 日 程序猿 吴国平

来自:随手记技术团队(微信号:sui-tech)


背景

虽然笔者是Android开发工程师,但也接触过各种IDE(不限于Android开发)。不同的IDE往往都有不同的快捷键,我们总不能对每种IDE都进行配置吧。实际上,现在大部分IDE都能通过插件的形式支持Vim了。所以,只需要掌握Vim的基本使用,在支持Vim的IDE都能很快上手,熟悉的操作,熟悉的手感。

Vim模式

Vim可分为3种模式,分别是Normal模式、Visual模式和Insert模式。以下的基本操作都是在Normal模式进行。三种模式的区别这里不详解了,Bing搜索有很多相关的基础教程。
三者的关系可用下图简单描述

基本操作

光标移动

注意区分字母大小写

上下左右

直接看表格,简单易懂。一开始会有点别扭,但是熟悉之后你会爱上他的。


k(上)
h (左)
l (右)

j (下)

单词间定位

键位

如果是大写,则单词允许包含标点
w(向前跳到单词词首)
e(向前跳到单词词尾)
b(向后跳到单词词首)

行内定位

键位

$(定位到行尾)
0(定位到行首)
^(定位到行首,忽略空格)
f  正向搜索ch字符,ch如果是字母则区分大小写
F  反向搜索ch字符,ch如果是字母则区分大小写

块定位

键位

{(跳到上一个代码块)
}(跳到下一个代码块)
%(定位到另一个匹配的括号)

页面定位

键位

gg(定位到页面的第一行)
G(定位到页面的最后一行)
H(定位到当前页面的顶部,High首字母大写)
M(定位到当前页面的中部,Middle首字母大写)
L(定位到当前页面的底部,Low首字母大写)

nG或ngg(定位到指定行,n表示行数,需大于0,
如果大于最大行数,则会直接跳转到页面最后一行)

m<a>和'<a>(这是一对很强大的命令,可标记一个位置,然后在同页面快速定位到该标志。m表示mark,a是一个字母,可以是26字母的其中一个,'是单引号,后面跟上前面标记的字母)

屏幕滚动

整屏滚动

键位

Ctrl + f (向下滚动一屏内容,Foward首字母小写)
Ctrl + b (向上滚动一屏内容,Backward首字母小写)

半屏滚动

键位

Ctrl + d(向下滚动半屏内容,Down首字母小写)
Ctrl + u(向上滚动半屏内容,Up首字母小写)

行滚动

键位

Ctrl + e(向下滚动一行内容) 
Ctrl + y(向上滚动一行内容)

编辑模式

插入

键位

i(在光标处插入,insert首字母小写)
I(在行首插入,insert首字母大写)
a(在光标处后一个字符插入,append首字母小写)
A(在行尾插入,append首字母大写)
o(在上一行插入)
O(在下一行插入)
cc/S(清除当前行并进入插入模式)
s(清除当前字符并进入插入模式)

恩,这个很简单,就不贴图了。

查找

键位

/pattern(正向查找)
?pattern(反向查找)
n(查找下一个)
N(查找上一个)
*(当光标定位在某个单词时,查找下一个该单词)
#(当光标定位在某个单词时,查找上一个该单词)

替换

键位

:%s/old/new/g(全局替换old为new)
:s/old/new/g(替换当前行old为new)

注意,替换操作仅在当前页面生效,使用该替换操作需谨慎。
建议使用IDE自带的重命名操作,可以将对应的引用也一起重命名!

剪切、复制、粘贴

键位

dd(剪切当前行的内容)
D(剪切光标后到行尾的内容)
yy/Y(复制当前行的内容)
p(粘贴到光标后)
P(粘贴到光标前)

撤销

键位

u(撤销上一步,IDE一般都是Cmd + Z)

这个简单,也不贴图了。

组合操作

组合操作可以看作是op+i/a+scope公式的应用,解释一下这个公式,op就是我们前面提到的插入(c)、剪切(d)、复制(y)以及还未提到的选择(v),i表示scope范围内,a表示包含scope标签,scope就是操作的范围了。这样讲比较抽象,下面举例几个常用组合。

选择文本

键位

以下如果将i换成a,则会将符号也包含进去
vib(选中小括号内的内容)
viB(选中大括号内的内容)
vi"(选中双引号内的内容)
vi'(选中单引号内的内容)
vi<(选中尖括号内的内容)

同理,将选择操作(v)替换成插入(c)、剪切(d)或者复制(y),也能实现类似的效果。

神奇操作

IDE支持跳转到变量(方法)的定义处或者调用处,Vim也支持,而且也很方便。只需要将光标定位到方法名,然后输入gd即可。配合Android Studio的Navigate Back,可以十分方便地查看方法的调用。

Navigate Back设置

碎语

当掌握了Vim,以后如果使用了新的IDE或者开发环境,只要支持Vim,我们就能很快的熟悉开发环境。当然,很多IDE提供了更完善的快捷键,笔者的观点是,Vim和IDE配合着使用,互补缺点。

参考链接

  • https://jasonliao.me/posts/2016-08-09-you-dont-know-vim.html

  • https://vim.rtorr.com/lang/zh_cn/



●本文编号2860,以后想阅读这篇文章直接输入2860即可

●输入m获取到文章目录

推荐↓↓↓

Linux学习

更多推荐18个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

登录查看更多
0

相关内容

Vim 是从 vi 发展出来的一个文本编辑器。宏、跳转、代码补全、编译及错误跳转等方便纯文本编辑和编程的功能特别丰富,也支持使用不少的脚本语言进行功能定制和扩充,在程序员中被广泛使用。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
64+阅读 · 2020年6月24日
最新《自动微分手册》77页pdf
专知会员服务
99+阅读 · 2020年6月6日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
231+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
256+阅读 · 2020年5月17日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
已删除
将门创投
18+阅读 · 2019年2月18日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
5+阅读 · 2018年3月28日
Arxiv
7+阅读 · 2018年3月22日
Arxiv
5+阅读 · 2018年3月6日
Arxiv
4+阅读 · 2017年10月30日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
64+阅读 · 2020年6月24日
最新《自动微分手册》77页pdf
专知会员服务
99+阅读 · 2020年6月6日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
231+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
256+阅读 · 2020年5月17日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
相关资讯
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
已删除
将门创投
18+阅读 · 2019年2月18日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
相关论文
Arxiv
3+阅读 · 2018年6月1日
Arxiv
5+阅读 · 2018年3月28日
Arxiv
7+阅读 · 2018年3月22日
Arxiv
5+阅读 · 2018年3月6日
Arxiv
4+阅读 · 2017年10月30日
Top
微信扫码咨询专知VIP会员