你还不知道怎么退出 Vim?

提起文本编辑器,你一定会想到编辑器之神 Vim。据 Stack Overflow 的开发者调查:2015 年程序员中最流行的编辑器是 Notepad++,Vim 的使用比例占 15.2%。到了 2019 年,最流行的开发环境变成 VS Code,而 Vim 的使用比例已占 25.4% 了。

 

那么,作为一个 30 岁的“老牌”编辑器,Vim 为什么仍旧如此受欢迎?

 

在我看来,最主要的原因,就是使用 Vim 编辑文件非常高效——天下武功,唯快不破,这也是 Vim 的最大特点。除此之外,Vim 还有很多优势,主要集中在这么几点:

 

第一,Vim 是一个完整跨平台的编辑器。它支持的第一个操作系统是 AmigaOS,而后被逐步移植到其他操作系统上,如 Unix/Linux、Windows、macOS,甚至 iOS 和 Android 上都能找到 Vim 的移植版本。

 

第二,Vim 是一个高度可定制、可扩展的编辑器。在定制 Vim 时,你大多不用什么特殊工具,用 Vim 本身就可以。如果需要更强大的扩展能力,还可以用 Python、Perl、Ruby、Tcl 等其他通用脚本语言,或直接调用外部命令,很容易打造一个专属的开发环境,或把这个环境从一台机器转移到另一台机器上。

 

第三,Vim 有着良好的生态环境。网上可以找到大量现成脚本和插件,帮你打造一个顺手的开发环境。像语法检查、自动补全等程序员常用功能,全都可以在 Vim 里实现。不需要离开 Vim,就能完成从写代码、编译到运行的大部分工作。

 

下面的这张图里,展示了 Vim 的很多扩展一起工作的结果:

      

多个插件作用下的 Vim 界面

 

第四,尽管 Vim 最初是个针对字符界面的应用程序,但它也支持主流的图形界面,包括 Windows 的图形界面,Linux 的 GTK,以及 macOS 的 Cocoa 和 Carbon 等等。所以,在你只能基于字符界面进行远程连接时,Vim 的大部分功能仍然有效,只是界面的美观程度会受一定影响而已。所以,Vim 在后端开发者中很受欢迎。

Vim 的模式是 Vim 的高效所在,同时也是 Vim 学习上的一个难点。一是,命令太多、难以记忆;二是,找不到合适的使用场景,或不知道如何根据具体场景配置 Vim。另外,Vim 有很多实用的插件,需要合理选择及配置,才能打造出自己专属的开发环境。

总的来说,Vim 会为你营造一个高效、跨平台、高定制性、易于扩展的开发环境。全面掌握 Vim 需要花费一定时间,但绝对不会白费——Vim 会成为你的一件称手兵刃,让你拿来即用,快意编程。

为你展示几个 Vim 的实用动图:

       

????用 Vim 实现竖直分割&水平分割????

       

????修改往上第 2 层花括号内到所有内容???? 

????插件ClangComplete添加对 C/C++ 代码的自动完成功能????

以上这些 Vim 的骚操作,出自吴咏炜。他是前英特尔资深系统架构师,也是一位资深 C++ 程序员和 Linux 专家,有十多年 Vim 使用经验,从事软件开发工作 20 年有余,曾参与翻译《编程大师访谈录》,也在 GitHub 上维护一些开源项目。

 

最近,他在极客时间推出了专栏《Vim 实用技巧必知必会》,一上线我就订阅了。这个课是基于目前最新的 Vim 8.2 来讲解的,不仅介绍那些即学即用的 Vim 高频命令,还会带你定制自己专属的 Vim 环境,利用 Vim 脚本和插件实现常用功能。除此之外,还有一些 Vim 高阶用法和技巧讲解,让编程效率神器真正为你所用。

 

跟着看了几篇,内容确实不错,为了方便新手理解,还加了很多动图,也是很走心了。如果你也想变成效率高手,不妨扫码试读看看????

 

????扫描上图,免费试读

早鸟 + 口令「Vimgogogo」立省 30 元,

到手仅 ¥69,仅限「前 50 人」有效

这门课是如何设计的?

比起很多编辑器的开箱即用,Vim 是有一定的学习曲线的。因此,专栏并不是没有枯燥地讲解命令,而是使用图片和动画,让你对内容有一个直观的理解,再具体一点说,有这么几个特点:

 

  • 动图。使用大量动画讲解命令,及执行后的效果。

  • 穿插场景。每讲完一部分命令,都带你完成一个小任务,找到这些命令的使用场景,有效解决学完命令后用不上、记不住的问题。

  • 分享命令背后的使用心得。不局限于讲操作本身,还会输出作者多年来的使用心得、经验,剖析 Vim 的精髓,让你真正体验 Vim 为何是“为效率而生”。

 

详细内容,可以看看目录       

        

从我这订阅,有什么福利?

早鸟优惠+口令「Vimgogogo」到手价 ¥69

立省 ¥30,仅限「前 50 人」有效

 

订阅后生成海报发给好友,

每成功邀请 1 位好友,可得 ¥24 返现。

 

????扫描下图,免费试读????

???? 点击「阅读原文」,

输入优惠口令「Vimgogogo」,

以 最低价 ¥69 入手,仅限 前 50 人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在C#里实现端口监视呢?

这个问题今天差不多弄了一整天在网上也找不到相关的资料,或者找到的也实现不了总是很奇怪唉

【hdu2089】不要62

惊奇地发现今天居然和dalao的题单重了不少23333333333333 这是我第一次做数位dp&#xff0c;感觉这个题目还是比较兹磁的 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int l,r,dp[20][15],a[20]; int dfs(int pos,int las,…

我的大学6年

这篇文章是郭天祥前辈写的&#xff0c;想起来我上大学那时候&#xff0c;也是看他的视频入门的单片机开发&#xff0c;而且那时候&#xff0c;没有这么多渠道了解外面的东西。当时最喜欢的是一个技术论坛&#xff0c;现在还因为某种原因开始收费了&#xff0c;更甚的是如果不按…

php无法创建cookie,php-curl cookie无法成功创建

我正在使用cUrl(PHP)发布登录请求并将响应存储在cookie文件中.在我的第二个请求中,我在标题中传递cookie并发布数据以进行验证.问题是未在第一个成功请求中创建cookie文件会导致第二个请求失败.请告诉我我做错了什么.$cookiefile"/var/www/html/dimdim/cook.txt";$ur…

找出优先要作的工作

通过讨论找出很多问题&#xff0c;明天就要把这些问题整理出来&#xff0c;并找出优先要作的工作&#xff0c;并按排日程。对目前不能解决的问题写出自已的想法&#xff0c;以备日后研究作为参考。

2017.10.25水题大作战题解

rank: T1P1615 西游记公司 https://www.luogu.org/problemnew/show/P1615 scanf直接秒 1 #include<iostream>2 #include<cstdio>3 #include<cstring>4 #include<cmath>5 #define LL long long 6 using namespace std;7 inline LL read()8 {9 char …

功夫熊猫问我要不要从嵌入式转行去互联网

先看问题&#xff0c;因为我平时不怎么看微信公众号的后台&#xff0c;我比较喜欢逛知识星球和微信群&#xff0c;公众号后台的交流不是很友好&#xff0c;所以没怎么关注&#xff0c;不过也会隔三岔五的看看留言&#xff0c;比如谁给我说好听的&#xff0c;或者谁骂我了&#…

java开机自动运行,怎么用java实现程序开机自动运行

当前位置:我的异常网 J2SE 怎么用java实现程序开机自动运行怎么用java实现程序开机自动运行www.myexceptions.net 网友分享于&#xff1a;2013-02-17 浏览&#xff1a;69次如何用java实现程序开机自动运行&#xff1f;如何用java实现程序开机自动运行&#xff1f;------解决…

缩小数据库文件

清空日志DUMP TRANSACTION 库名 WITH NO_LOG 截断事务日志BACKUP LOG 数据库名 WITH NO_LOG 收缩数据库DBCC SHRINKDATABASE(数据库名) --压缩日志及数据库文件大小 /*--特别注意 请按步骤进行,未进行前面的步骤,请不要做后面的步骤 否则可能损坏你的数据库. 一般不建议做…

进程和线程基础知识全家桶,30 张图一套带走

前言先来看看一则小故事我们写好的一行行代码&#xff0c;为了让其工作起来&#xff0c;我们还得把它送进城&#xff08;进程&#xff09;里&#xff0c;那既然进了城里&#xff0c;那肯定不能胡作非为了。城里人有城里人的规矩&#xff0c;城中有个专门管辖你们的城管&#xf…

前端面试之前要准备的那些事

先说一下关于工作简历的一些常见的问题&#xff0c;这是最基础的一步&#xff0c;万事开头难&#xff0c;写好简历就是求职路上最简单也是最关键的一步&#xff0c;一份好的简历不但可以让你从众多简历中脱颖而出&#xff0c;还能够让公司的人事对你的印象深刻。问题一&#xf…

php ip2long bug,php ip2long函数怎么用-PHP问题

php ip2long函数用于将IPV4的字符串互联网协定转换生长整型数字&#xff0c;其应用语法是“ip2long ( string $ip_address ) : int”&#xff0c;参数“ip_address”示意一个规范格局的地点。php ip2long函数ip2long — 将 IPV4 的字符串互联网协定转换生长整型数字阐明ip2long…

C语言 | 常见数据转化函数

来源&#xff1a;嵌入式云IOT技术圈作者&#xff1a;杨源鑫整理 1、字符串转十六进制代码实现&#xff1a;void StrToHex(char *pbDest, char *pbSrc, int nLen) {char h1,h2;char s1,s2;int i;for (i0; i<nLen/2; i){h1 pbSrc[2*i];h2 pbSrc[2*i1];s1 toupper(h1) - 0x3…

Javascript中NaN、null和undefinded的区别

var a1; var a2 true; var a3 1; var a4 "Hello"; var a5 new Object(); var a6 null; var a7 NaN; var a8 undefined;alert(typeof a); //显示"undefined" alert(typeof a1); //显示"undefined" alert(typeof a2); //显示"boolea…

java常用算法分析和实现 amp,Java常用算法实现

0.总结常见算法复杂度.jpgO(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n)&#xff0c;logn的底数为21.归并排序package DailyPractice;import java.util.*;public class Test1 {/*** 归并排序的思路&#xff1a;先将数组的左边和右边分开排完…

FMStocks7 , 不错的一个.NET 示例程序

这个示例程序估计很多人都用过。没有用过的话可以从 http://www.microsoft.com/downloads/details.aspx?FamilyID966C3279-2EE9-4E14-A4F7-D4807239A396&displaylangen 下载一个简单的股票买卖程序&#xff0c;数据库访问和部分业务逻辑提供了 COM 企业服务和 DotNet Remo…

matlab 时序数据,9 个 MATLAB 数据科学速查表 - MATLAB Simulink

请选择其一AlabamaAlaska美属萨摩亚APO/FPO AAAPO/FPO AEAPO/FPO APArizonaArkansasCaliforniaCaroline IslandsColoradoConnecticutDelawareDistrict of ColumbiaFlorida格鲁吉亚关岛HawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMariana Islands马绍尔群岛Mar…

滚动到页面底部自动加载内容

上网时经常会看到许多酷炫的网页&#xff0c;其中给我印象较深刻的是鼠标滚动到页面底部时会自动加载内容&#xff0c;一直都很好奇是怎么样做到的&#xff0c;于是自己也尝试着写了一下。 先上个完整代码吧&#xff1a; <!DOCTYPE html> <html lang"en">…

DW制作过程基本标准常识

1、字体大小&#xff0c;一般内容是12号字&#xff0c;但新闻页的内容标准大小是14号字。转载于:https://www.cnblogs.com/shuang611/archive/2004/12/09/74782.html

这个结构体对齐输出有意思

这个题目是我在群里看到大家讨论的&#xff0c;既然是讨论的了&#xff0c;那我就拿出来说说&#xff0c;因为笔试面试的时候&#xff0c;可能就会遇到这样的题目。实例代码#include "stdio.h" #include "stdint.h"struct Obj {char a; //1uint32_t b;//4u…