多走走弯路,才不会有被剧透的乏味

今天逛知乎,看到一个问题,为什么说一切问题都是数学问题,底下波斯王子回答说,他高中时琢磨乒乓球抽奖游戏,算出了中奖概率,后来才发现有排列组合这种东西,而这个东西明显比他们琢磨的公式更具有普遍性。下面答主又说了一句话,没有走过弯路,就体会不到它带来的高效,只有被剧透的麻木,这句话让我感触颇深,不禁让我想起当初学VIM时的惊喜,正是这种惊喜,让我对它情有独钟。

刚学C语言的时候,用的是VC++6.0,后来换成了vs2008,用了差不多一年,才开始学vim,学了一段时间之后,立刻被它吸引了。

 因为自己刚开始经常漏掉分号(现在偶尔也漏掉- _ -||),才感觉A这个命令是多么地顺手。

 因为经常编译错误,然后根据错误报的行号来查找代码,才发现NUM+G这个命令定位错误是多么地迅速。

 因为经常要写了一段代码之后再添加头文件,才发现gg这个定位到文件开头的命令是多么地方便。

 因为经常写HTML文件,才发现vim内置的文本对象t多么地让我们眼前一亮。

 因为经常用fopen或者file这些函数打开文件,才觉得vim的ctrl+x ctrl+f这个自动补全是多么地猿(程序猿)性化。

 因为原来学OpenGL经常写这种代码:

x_m = sector1.triangles[loop_m].vertexs[0].x;
y_m = sector1.triangles[loop_m].vertexs[0].y;
z_m = sector1.triangles[loop_m].vertexs[0].z;
u_m = sector1.triangles[loop_m].vertexs[0].u;
v_m = sector1.triangles[loop_m].vertexs[0].v;
glTexCoord2f(u_m,v_m);      glVertex3f(x_m,y_m,z_m);

x_m = sector1.triangles[loop_m].vertexs[1].x;
y_m = sector1.triangles[loop_m].vertexs[1].y;
z_m = sector1.triangles[loop_m].vertexs[1].z;
u_m = sector1.triangles[loop_m].vertexs[1].u;
v_m = sector1.triangles[loop_m].vertexs[1].v;
glTexCoord2f(u_m,v_m);      glVertex3f(x_m,y_m,z_m);

x_m = sector1.triangles[loop_m].vertexs[2].x;
y_m = sector1.triangles[loop_m].vertexs[2].y;
z_m = sector1.triangles[loop_m].vertexs[2].z;
u_m = sector1.triangles[loop_m].vertexs[2].u;
v_m = sector1.triangles[loop_m].vertexs[2].v;
glTexCoord2f(u_m,v_m);      glVertex3f(x_m,y_m,z_m);

  才觉得vim的块选择(ctrl + v)替换数组下标是多么方便。

 因为经常要修改一行代码上的某个字符,才发现[f|t]+letter和; ,这几个命令配合起来是多么地犀利。

 因为经常要上下左右移动,才发现原来hjkl这四个位于home row上的按键,真的要比箭头键快很多。

 因为经常要批量注释,才发现tim pope的commentary插件的gc命令真的要比vs的ctrl+k ctrl+c快很多。

 因为经常纠结于代码风格,才发现.这个命令对于在运算符两边添加空格真是神器(移动到加号上,s空格+空格Esc,然后遇到+(配合f+;命令)就狂按.)。

 因为经常查找,才发现开启了hlsearch的/命令真的要比Ctrl + f好用很多倍。

 因为:wq用的多了,才感觉ZZ用起来是多么地顺手。

 因为Esc键按多了,才感觉将CapsLock(大写锁)映射成Esc键是多么地舒服。

 因为经常要移动到函数末尾,才发现原来]}要比[[%快一点。

 因为删除半行代码多了,才发现原来不仅可以用c$,还可以直接用C。

 因为在某行下添加代码这种修改做的多了,才感觉o真的要比End再加回车键要快多了。

 因为查找函数定义,变量定义多了,才发现原来不仅有/命令,还有#和*这两个神器。

 因为拼写错误多了,才感觉插入模式下的ctrl + w和Ctrl + h,真的比Backspace键好用多了。

 除此之外,还有种种,种种。我想,正是因为我代码写的多了,各种笨办法用的多了,当见到vim各种神奇的命令之后,我才会去彻底拜服,从此不能自拔。。

 这仅仅是我的个人一篇感想,就是想告诉大家,不要怕犯错,不要怕走弯路,这样遇到了真正神奇的东西才不会有那种剧透的乏味。同时,我也无意抬高vim或者Linux,贬低Windows或者其他编辑器。这些东西本质都是工具,真正体现程序员水平的东西不在于他用什么工具,而在于他写出了什么样的代码,具有什么样的编程思想,这才是真正值得别人尊敬或者崇拜的东西。

时间: 2024-11-05 19:11:02

多走走弯路,才不会有被剧透的乏味的相关文章

细说五层网站架构

目前网站架构一般分为网页缓存层.负载均衡层.Web层和数据库层.文件服务器层.我们可以依次用这五层对网站架构进行讨论,为了增强说服力,我将用如下三个并发较大的生产环境来说明. q   电子商务网站(并发最大峰值2900,日PV500万左右) q   电子广告网站(并发最大峰值1500,日PV150万左右) q   大型CDN门户广告网站(并发最大峰值5000,日PV5000万左右) 1.网页缓存层 首先说网页缓存层,比如CDN租凭,其效果比公司自己部署Squid/Varnish要好,它们专业.价

win7+theano with GPU enabled

要做卷积神经网络的一些东西,所以要装theano,网上很多Theano安装教程版本较老,而各安装包更新很快,参考价值有限.走了很多弯路才装好,把这个过程记录下来,希望对大家有帮助~ ~ 我的配置:win7,32位(64和32位安装步骤没差,下安装包版本有差而已),vs2012 首先推荐一篇英文安装指南,写的十分详细,很多安装指南都是参考的这篇.不过因为这篇里存在着一些冗余成分,个人酌情参考,不过遇到难题时可以看看:http://deeplearning.net/software/theano/i

【Java】Java_01初步

1.编程语言的发展史和发展主线 计算机语言如果你将它当做一个产品,就像我们平时用的电视机.剃须刀.电脑.手机等, 他的发展也是有规律的. 任何一个产品的发展规律都是:向着人更加容易使用.功能越来越强大的方向发展. 那么,我们的计算机语言的发展也是这样,向着人更加容易使用,即更加容易写代码.更加容易实现现实逻辑的方向发展.套用奥林匹克的口号“更高.更快.更强”.那么计算机发展的主线可以总结为四个字:“更易.更强”. 这个”更易.更强”的主线,也适用于任何的产品.如果,读者朋友以后要开公司创造自己的

虚拟化:安装esxi并在其上搭建虚拟机

由于是一个人而且又是第一次部署esxi其间走了好多弯路才勉勉强强成功,所以写下此文让其他新手可供参考同时也是为了记录自己成长的点滴 先给新手普及下虚拟化基础: workstation: 单机级,用在个人桌面系统中,需要操作系统支持(系统之上) servier:工作组级,用于服务器,需要操作系统支持(系统之上) esxi:企业级,用于服务器,不需要操作系统支持(裸机之上,本身就是一个os) 安装虚拟化需要cpu支持虚拟化:cat /proc/cpuinfo.找到flags部分,如果其中输出有VMX

八,置换计划(下)

返回目录:http://www.cnblogs.com/wantnon/p/4649254.html 毛线鸟: 这的确是一个很有想象力的计划,我现在真心佩服计划的提出者--我父亲. 通过查阅互联网上的人体数据库,我们发现人类与天堂人在身体构造上基本是同构(数学概念,指保持一一映射)的.所以过去用于天堂人的虚拟化和逆虚拟化技术经过一点儿改造就可以适用于人类.剩下的挑战就是如何借人类公司之手生产出这种VR设备并使我们的目标使用它们. 当然起初也曾考虑过借助已成形的大公司来搞,但可惜没有找到合适的.并

朴素UNIX之-打开历史

它可以毫不夸张地说,,UNIX模型是现代操作系统的原型.无论是真实的UNIX让我们大系列AIX,Solaris,HP-UX,FreeBSD,NetBSD,...或类别UNIX实例Linux...或基于Windows NT各种Microsoft操作系统的体系结构,基本的想法来自UNIX. 这些系统一个比一个复杂,可是请记住一句话:全部的基本思想都是也必须是朴素的,简单的!       或许,非常多人看到这里就觉得有点不屑一顾,毕竟他们觉得自己是技术狂人,觉得仅仅有摆弄复杂的东西才干证明自己的学识和

有哪些电影一定要趁年轻看? - 风之影的回答 - 知乎

body { font-family: Microsoft YaHei UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bo

朴素的UNIX之-翻开历史

可以毫不夸张地说,UNIX模型就是现代操作系统的原型!不管是原汁原味的UNIX各大系列比如AIX,Solaris,HP-UX,FreeBSD,NetBSD,...还是类UNIX比如Linux...还是基于Windows NT架构的各种微软操作系统,其基本思想都是来源于UNIX.虽然这些系统一个比一个复杂,但是请记住一句话:所有的基本思想都是也必须是朴素的,简单的!       也许,很多人看到这里就觉得有点不屑一顾,毕竟他们觉得自己是技术狂人,觉得只有摆弄复杂的东西才能证明自己的学识和技术,认为

被习惯蒙蔽的错误

今天在公司调试代码时,遇到一个很奇怪的问题.我在一个接受jar包扩展的框架系统下按照其格式开发了一个jar包.并导入到该系统中运行.后来发现该jar包代码存在一些问题,把源码修改后重新打成jar包,以替换原来的jar包,并进行调试.但是在调试的过程中发现,代码执行的顺序很混乱,而且有些代码根本没有执行就被直接跳过了.这让我百思不得其解. 后来绕了很多弯路才想到,我在修改源码的时候并没有修改类的全限定名,一个类加载器对同一个类的符号引用只会加载一次.在我替换jar包后,虽然代码已经更新,但类加载器