Android 如何用 Vim 提高开发效率

本文讲的是Android 如何用 Vim 提高开发效率,虽然笔者是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和'(这是一对很强大的命令,可标记一个位置,然后在同页面快速定位到该标志。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配合着使用,互补缺点。

本文作者:吴国平

来源:51CTO

原文标题:Android 如何用 Vim 提高开发效率

时间: 2024-11-02 19:56:12

Android 如何用 Vim 提高开发效率的相关文章

如何通过单元测试提高开发效率?

Kevlin Hnney是英国的一位独立顾问和培训师,其关注的范围主要包括软件架构.模式.开发过程和程序设计语言.在本文中他将谈谈如何通过单元测试提高开发效率. 单元测试只会浪费时间吗?某些软件专家们确实是这么想的.最近在Software Quality Insights上看到一篇文章--<单元测试真的有用吗?>.那些认为单元测试无用的开发人员给出了如下理由: 1. 他们不了解单元测试. 2. 很难写出优秀的单元测试. 3. 单元测试只会浪费时间.降低效率. 4. 写单元测试需要太多时间(特别

如何利用 Visual Studio 自带工具提高开发效率

原文:如何利用 Visual Studio 自带工具提高开发效率 Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢?   显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位.   如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 "行号"       使用书签 和平常意义的书签类似,当我们希望在日后某一时刻快速定位到一处代码时使用.比如在项目例会上,你需要演示本周你所做的一些改

Xcode提高开发效率的代码块分享_IOS

前言 我们在开发的时候会用到很多常用的代码,比如UITableView的代理,一般情况下我们要么自己敲要么复制粘贴,但是Xcode有一个功能,可以用一行代码敲出你预设的一段代码.这就是Xcode的代码块功能,这篇文章跟大家分享一些常用的和自定义的代码块,有需要的下面来一起看看吧. 一.常用的: 1.strong: @property (nonatomic,strong) <#Class#> *<#object#>; 2.weak: @property (nonatomic,weak

Python利用IPython提高开发效率_python

一.IPython 简介 IPython 是一个交互式的 Python 解释器,而且它更加高效. 它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执行 -> 探索 ,而大部分和数据分析相关的代 码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率. IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了, 它集成了 GUI 控制台,这可以让你直接进行绘图操作:它还有一个基于 Web 的交互式笔记

从开发框架提高开发效率说起

在我们接触的很多项目中,如果有一些参考性的项目框架,那么做起开发来,事半功倍,一般来说搭建或者积累这些框架性的项目,非一日之功.一般我们可以把具体的项目分为Winfrom.Web.微信.或者Socket等方面,具体项目界面表现不同,但是界面层底下的应该都是差不多的结构,能够支持多种数据库的接入,提供更好的接口封装,以便重用,实现最优化代码的处理. 软件系统随着业务的发展,变得越来越复杂,不同领域的业务所涉及到的知识.内容.问题非常非常多.如果每次都从头开发,那都是一个很漫长的事情,且并不一定能将

十款提高开发效率的Firefox插件

  Firefox浏览器能成为Web开发者和设计者最喜欢的浏览器,一个重要原因就是它有着丰富的插件可以用来辅助我们完成Web开发工作.下面给大家分享十款在Web开发工作中经常会用到的插件,利用好它们可以大大提高工作效率. 1. FireBug 在众多插件中Firebug无疑是大家最熟悉用的最多的了.Firebug集成在Firefox中,提供了一套开发辅助工具,诸如页面HTML.CSS.Javascript的浏览.编辑.调试.网络监控等等-- 2. FireShot FireShot是一款具有完备

SAP云服务平台干货攻略 | HTML5应用需要用到什么IDE提高开发效率?

http://mp.weixin.qq.com/s?__biz=MjM5OTI2MjgyMA==&mid=2651785507&idx=1&sn=e0f7e414097b22b2d4acb6bc3e9fa87e&chksm=bcc586288bb20f3ebaa0fb0d70dcb1fb803b92caff0e1c4dcc85aaf6e4545df645cd84887fbf&mpshare=1&scene=5&srcid=1114DbdSsJejli

Asp数据库访问代码自动产生工具-ASPRunner(适用初学者和为了提高开发效率的Developer)

初学|访问|数据|数据库 ASPRunner Professional - Web Developer's Nirvana 开发效率的Developer)-初学者适用什么数位板">ASPrunnerPro是一个数据管理管理管理,在网页中使用它可以很简单的访问和操作数据库.从初中者到经验非常的程序员都可以使用它, ASPRunnerPro 产生ASP(Active Server Pages ),产生的Asp允许用户搜索.编辑.删除和添加数据到Oracle,SQL Server,Ms Acce

使用Visual Studio自带工具提高开发效率

Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 "行号" 避免剪切或复制空白行 有些时候当我们复制了一行数据正打算粘贴到一个空白行的时候,手一抖,V变成了C,结果复制了一条空白行.这会让人很郁闷,当然你可以通过使用 Ctrl + Shift + V 从剪切版中找到之前复制