原始状态

我曾经观看过小提琴家非常有激情地拉弦演奏,我有了这种想法:也许我投入到文本编辑器中的脑细胞数量和他为投入所喜好的乐器的演奏中差不多吧。我还有种奇异的想象,当他独奏的时候,脑中的核磁共振图和我在使用 Vim 中操控代码的的图像也许不会相差太大吧?

如果你愿意的话请你仔细思考下,以下是一个 Vimmer 的学习旅程的剪辑。

Vim 涅磐所经历的漫长而艰苦的道路
星期一

“Eclipse 当然是简洁实用的。”

“但是一些满脸落腮胡的奇怪家伙在工作中似乎使用 vim 确实非常快,我应该试一下。”

“好吧!我弄了个 Gvim,这看起来不是很糟糕,这里甚至还有菜单界面!”

“等等,什么?我的文本去哪了?等一下,撤销,不要啊!”

“:help”

“:q!!!!!”

……

今天剩下的时间还是回到拥有让人上瘾的自动补全样板功能的 Eclipse 中获得解脱吧。

星期二

“好吧 Vim,这是新的一天了,这是个磨砺自己学习新东西的一个崭新的机会,我不是那么容易放弃的人!”

“为什么我就不能一直呆在插入模式里面呢?FJDSAKLFJDALSKJKLDF(发狂的敲击键盘)……”

“等一下,你在告诉我保存的时候必须按 Esc-Shift-:-w-Enter?这简直就是狗屁啊。”

“在花了 2 个小时学习教程以后,我基本上懂的就是 ddp 命令可以交换两行的内容,真是蛋疼啊。”

一个礼拜以后

“哇噢,任何地方都有 Vim 啊,这意味着这付出的所有的努力将不会白费,比如当我用 ssh 远程登入主机修改一些配置的时候。”

“太爽了,嘿,朋友们来看看这个全暗色的配色主题,我新的工具链表面上看起来非常安逸了。”

“噢,真是扯蛋,我的 .vimrc 没有在我的远程主机里,当我 ssh 登入编辑一些配置的时候,所有我的酷玩意都没了。”

两个月以后

HJKL 的移动方式习惯成自然,你神秘的失去了使用鼠标的能力。

“我将始终使用我刚下载的这 400 个插件!尤其是这个折叠 latex 语法的插件,噢,哥们。”

“使用小箭头方向键简直是自我折磨啊。”

“再见,Caps Lock 键。”

“就这样吧,这是忍耐的极限,Vim 甚至不能让文本合适的自动换行,我准备回到 edit.com了。”

一年以后

更少的大声说话了。

安装 command-T 插件,每天节约成百上千次的键盘敲击。

用宏试着让你肩膀后的某个人感到印象深刻,只需要对整个文件混合大小写和掺杂 ROT13 暗码(回转十三位加密)。

最终在某个奇迹般的一天学会在肌肉记忆里用 ctrl+[ 来延缓了腕关节炎症降临。

学会了移动光标,使用 visual 模式和 * 键——这意味着已经没有退路了。

“Vim 不支持交互缓存?都 20 年了?好吧,作为一名黑客,我决定给它添加这项支持。”

查看 Vim 代码库,疯狂地让它向相反的方向运行。

“不管是谁都需要在编辑器里弄个控制台!!!这就是 unix 哲学。”

对周围的”Vim 只是将一个编辑模式合并到真正的编辑器中“观念感到无可忍耐。

因为你老是在聊天室里令人讨厌地回复”:w”,IRC的朋友们最后将你孤立。

两年以后

Vim 脚本就是一种对上帝的深恶痛绝。

有点觉得 emacs 的从始至终的指令模式相对有点像在天堂一样。

“我昨晚做了一个噩梦,梦到我始终没有学会在宽屏显示器中垂直切分窗口,这样提心吊胆真是够混帐啊。”

偷偷地瞄一下周围,绑定 ctrl+s 到保存动作,允许自己悄悄地松一口气。

意识到 HJKL 搜索定位不足以成为时间节约的终极工具,发现 :python 脚本,所建立的大量定制功能达到鼎盛期,对<Leader> 键绑定,直到你的键盘类似于 NASA 指挥中心控制面板一样有点繁多到荒谬的功能,感觉有一点糟糕。

“嘿,每个听的到我声音的家伙过来看看,我现在控制电脑,写博客,检查邮件,运行测试,调试程序,浏览 hackernews

所有的一切都能在 Vim 温暖舒适、超级可以定制化的母体中进行。为什么你这小子不做几个后空翻来庆祝一下呢?”

模糊又很长段时间后

在“文本编辑中模态的明显优势”演讲结束后失去了几个朋友。

尽情享受在 github.com/me/vimfiles (并没有)中分享自己配置的快乐中,强制自己写关于如何特立独行地安装语法检查,lint工具,自动补全,快速文档查看,成吨的杀手级缩写,世界上所有文件类型对应的插件,使 Vim 在每种功能的高效性上接近真正的 IDE 的博客帖子。开机时间日志写入服务器,下意识地使用 nano 来编辑配置文件。不会为没有使用插件和 vimrc 中的更多语法而更新所有的配置文件而感到深深的羞愧。

变得十分淡定,重复性的编辑任务再也难不住你,不再去参加 emacs 与 Vim 谁好谁坏的争论。

...这就是你用 Vim 时大脑的终级形态

本文转载地址:https://www.linuxprobe.com/tools-vim-brain.html

不敢想象!Vim使用者的“大脑”竟是这样的更多相关文章

  1. 跟我一起学习VIM

    跟我一起学习VIM - The Life Changing Editor   前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹 ...

  2. 跟我一起学习VIM - The Life Changing Editor

    前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧.所以分 ...

  3. vim插件和配置

    vim插件和配置 插件 pathogen 可以方便地管理vim插件 在没有pathogen的情况下,vim插件的文件全部都放在.vim目录,卸载插件很麻烦,pathogen可以将不同的插件放在一个单独 ...

  4. 【转载】跟我一起学习VIM - vim插件

    目录 写在前面:Life Changing Editor 什么是VIM 为什么选VIM 为什么选其它 为什么犹豫选择它们 VIM >= SUM(现代编辑器) 如何学习VIM 一秒钟变记事本 VI ...

  5. 使用vim编写hexo文档,并用ultisnips/snipmates/snippets插件补全

    作为一个vim使用者,编写markdown文档时若不能用vim这怎么能受的了! 下面是我编写markdown的时候用到的插件 Plugin 'Markdown'Plugin 'Markdown-syn ...

  6. (转载)跟我一起学习VIM - The Life Changing Editor

    原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...

  7. 跟我一起学习VIM - vim插件合集

    2016-06-14 15:04 13333人阅读 评论(0) 收藏 举报 分类: Linux(104)  目录(?)[+]  前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教 ...

  8. 零基础学习Vim编辑器

    **********************************************************************0.这篇教程的简介:Vim是Linux/Unix下的经典编辑 ...

  9. 如何在微软Windows平台上打造出你的Linux开发环境(转载)

    如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读  原文链接  [收藏]  « » 英文原文: ...

随机推荐

  1. 【转载】ARouter-万能路由协议

    Github源码地址:https://github.com/alibaba/ARouter 一.功能介绍 支持直接解析标准URL进行跳转,并自动解析参数注入 支持多模块工程使用 支持添加多个拦截器,自 ...

  2. HDU 4085 Peach Blossom Spring

    斯坦纳树. 最后可以是森林,在计算出每个联通状态的最小费用后,还需要进行一次$dp$. #include<bits/stdc++.h> using namespace std; const ...

  3. UVA12995 Farey Sequence [欧拉函数,欧拉筛]

    洛谷传送门 Farey Sequence (格式太难调,题面就不放了) 分析: 实际上求分数个数就是个幌子,观察可以得到,所求的就是$\sum^n_{i=2}\phi (i)$,所以直接欧拉筛+前缀和 ...

  4. 1. MNIST读取数据

    %pylab inline Populating the interactive namespace from numpy and matplotlib 在Yann LeCun教授的网站中(http: ...

  5. angular4 使用window事件

    Angular使用window对象中的事件最好不要像使用jQuery那样使用 如下: 注:写事件直接绑定到window对象上了,组件销毁时这个事件没有解绑 可以使用剪头函数不用声明that 注:这样写 ...

  6. 【C++初级】static用法总结、问题探讨及常见错误排查

    static的基本用法: static的作用主要有两种第一个作用是限定作用域:第二个作用是保持变量内容持久化: 一.c语言中static的用法: 1.全局静态变量: 用法:在全局变量前加上关键字sta ...

  7. bzoj 2055: 80人环游世界 -- 上下界网络流

    2055: 80人环游世界 Time Limit: 10 Sec  Memory Limit: 64 MB Description     想必大家都看过成龙大哥的<80天环游世界>,里面 ...

  8. bzoj 3238: [Ahoi2013]差异 -- 后缀数组

    3238: [Ahoi2013]差异 Time Limit: 20 Sec  Memory Limit: 512 MB Description Input 一行,一个字符串S Output 一行,一个 ...

  9. php 对二维数组的某个字段公用排序的方法

    function array_sort($arr ,$keys,$order=0){ if(!is_array($arr)){ return false; } $keysvalue=array(); ...

  10. [置顶] getopt_long函数基本用法-linux

    一.感性认识: [c-sharp]  view plain copy   #include <stdio.h> #include <getopt.h> char * l_opt ...