Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何用Vim提高开发效率

如何用Vim提高开发效率

作者头像
企鹅号小编
发布于 2018-01-08 02:41:36
发布于 2018-01-08 02:41:36
1.9K0
举报
文章被收录于专栏:编程编程

背景

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

Vim模式

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

三者的关系可用下图简单描述

基本操作

光标移动

注意区分字母大小写

上下左右

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

单词间定位

键位

如果是大写,则单词允许包含标点

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也支持,而且也很方便。只需要将光标定位到方法名,然后输入即可。配合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/

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

●输入m获取到文章目录

推荐↓↓↓

C/C++编程

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

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

本文来自企鹅号 - Linux学习媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - Linux学习媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vim的快捷键大全
vim中Nyy可以复制光标后的N行。有时我们不容易得出行数,这时可以用做标记的方法来制定复制范围:
王小雷
2019/05/26
2.3K0
学会这21条,你离Vim大神就不远了
导语:作者本人是 Vim 的重度使用者,就因为喜欢上这种双手不离键盘就可以操控一切的feel,Vim 可以让人对文本的操作更加精准、高效。对于未使用过 Vim 的朋友来说,可能还无法体会到这种感觉。由于使用 Vim 有一定的学习成本,只有做到非常熟练的程度才能感受到它带来的快捷。
AI科技大本营
2019/08/20
1.9K0
学会这21条,你离Vim大神就不远了
vim 使用教程
定义映射模式时,我们可以使用nmap、imap、vmap来定义映射仅在normal、insert、visual模式有效
暮雨
2018/10/09
3.2K0
vim 使用教程
IDEA + Vim,竟可以这么牛逼!!
本教程并不是单纯的vim操作介绍,更多的是与Intellj Idea进行配合。需要同时具备Intellj Idea和vim使用基础的同学学习。
终码一生
2022/04/15
3.3K0
IDEA +  Vim,竟可以这么牛逼!!
【总结】vim命令使用总结,该来的还是躲不掉啊晕
曾经我也天真的觉得如今很多软件都可以充当文本编辑器,像vim上手这么麻烦的可以替代
自学气象人
2023/06/20
8260
【总结】vim命令使用总结,该来的还是躲不掉啊晕
vim配置即.vimrc文件的配置及vim操作技巧
1.下载vim(略)。让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加如下一行内容
Twcat_tree
2022/11/30
4.3K0
Vim 基本配置和经常使用的命令
vim 的优点纯文字编辑和 Linux 完美的融合提供了命令行。只能假设 ssh 至server进行操作,那么这样的情况就仅仅能使用 vim 了。vim 也是最为强大的通用文本编辑器之中的一个,对于须要编辑不同文本的情景,vim 也是相当有优势的。所以,熟练掌握一下 vim 的基本使用还是非常有必要的。
全栈程序员站长
2022/07/06
1.3K0
学习vim有这一篇就足够了
vi/vim 的重要性不言而喻,比如登录服务器操作。那么如何掌握呢?看这一篇足矣。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
小闫同学啊
2020/07/10
1.1K0
vim 文本编辑器[通俗易懂]
1) 模式转换 a) 【i】:在当前光标所在字符的前面,转为输入模式 b) 【a】:在当前光标所在字符的后面,转换为输入模式 c) 【o】:在当前光标所在行的下方,新建一行,并转换为输入模式: d) 【I】:在当前光标所在行的行首,转换为输入模式 e) 【A】:在当前光标所在行的行尾,转换为输入模式 f) 【O】:在当前光标所在行的上方,新建一行,并转换为输入模式; g) 【cc】删除当前行并输入新内容,相当于S。扩展【#cc】 h) 【C】删除当前光标到行尾,并切换成插入模式
全栈程序员站长
2022/09/06
4.5K0
vim 文本编辑器[通俗易懂]
vim基本命令
最实用的几个: 0(数字0)移动到本行第一个字符上  移动到行尾 。 3 移动到下面3行的行尾 gg 移动到文件头。 =  [[ G(shift + g) 移动到文件尾。 =  ]] /text  查
不吃西红柿
2022/07/29
1.4K0
138 条 Vim 命令、操作、快捷键全集
作者:perlman 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim并创建名为filename的文件 文件命令 打开单个文件 vim file 同时打开多个文件 vim file1 file2 file3 ... 在vim窗口中打开一个新文件 :open file 在新窗口中打开文件 :split file 切换到下一个文件 :bn 切换到上一个文件 :
小小科
2018/06/20
1.4K0
Linux学习笔记之vim操作指令大全
Vim是款强大的文本编辑器,但是众多指令需要学习,这次记录了指令大全方便以后翻阅。
Jetpropelledsnake21
2019/07/01
3.4K0
Linux学习笔记之vim操作指令大全
VSC x VIM - 反正多学几个快捷键没有坏处
当年研究过一段时间 VIM, 因为操作不熟练没有用作主力 IDE, 而是单纯在 CLI 里面用于轻度编辑
szhshp
2022/10/31
1.4K0
VSC x VIM - 反正多学几个快捷键没有坏处
vim从安装到熟练,这篇文章就够了
一简单介绍一下 下载分享的文件 链接: https://pan.baidu.com/s/1t8yS9jzjewSiGiawBEKcIg?pwd=y4wz 提取码: y4wz  压缩包里面有两个文件,一
sinnoo
2022/12/02
4.8K0
vim从安装到熟练,这篇文章就够了
VIM 操作记录
选择指定符号 (", ', ), }, ]) 区域内的内容 举个例子 : [ a + cda [daff ] ], 当前光标在 [daff] 范围
orientlu
2018/09/13
2K0
VIM 操作记录
说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。
在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件。在这里详细总结一下这个插件在日常编程中的一些常用小技巧。
芋道源码
2020/06/17
14K0
vim常用命令总结
文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。  V    从光标当前行开始,光标经过的行都会被选中,再按一下V结束。  Ctrl + v   从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。  ggVG 选中全部的文本, 其中gg为跳到行首,V选中整行,G末尾
阳光岛主
2019/02/19
1.5K0
vim 回顾
下面是一篇旧文,大多是一些已有知识的整理,并不太成熟。欢迎关注专栏 space-vim , 有空我会以 Vim 自带的 help (不妨 :help help 看一下) 为线索, 分享一些关于 Vim 的小知识 ,也会顺带着介绍一下 space-vim 的配置与用法。
用户1558438
2018/08/23
6420
【盟友分享】vim学习之路-vim基本操作
前言:说到我的学习之路是从arm嵌入式开发开始的,基本上在学校学习都时windows开发开始的,转到ubuntu上嵌入式开发刚开始非常的不习惯。不用鼠标很难受的,大家是不是有同感,不过在我接触学习vim后我的看法彻底被改变了。我就以我的学习经历从一个新手开始,一步一步的为大家带来我的vim学习之路。 如果你不是刚开始学习vim请略过此段。 安装vim:   刚安装ubuntu系统是没有自带vim的需要安装 sudo apt-get install vim; 我们先从基本的一些操作开始一步一步的去学习这个强大
程序员互动联盟
2018/03/12
2.2K0
Vim编辑器基础入门
Vim(Visual Interface|可视化接口),在linux中常常使用的工具,是进行Linux嵌入式编程的必备工具之一; vim最大的贡献就是它的按键系统这也是为什么chrome、idea、atom等编辑器都会提供一个vim mode;
全栈工程师修炼指南
2020/10/23
1.9K0
Vim编辑器基础入门
相关推荐
vim的快捷键大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档