作为程序员,最不爽的一件事是被亲戚叫去修电脑。

“喂,怎么跟你们讲,我是写代码的,不是修电脑的!什么?代码是什么?!”

小白:为什么程序员就不能修电脑了?

小程:会不会修都有可能,关键在于程序员会觉得修电脑是很掉价很low的事情。修电脑,找专业的维修员就对了,给点机会别人赚钱嘛。

小白:那如果是下图的那位让你修电脑呢?

小程:……我不仅会修电脑,我还会弹吉他与画画。

修电脑不是程序员的基本技能,而打字,却是程序员的基本技能之一。

写代码、写说明文档、写心得记录等,打字都是必不可少。一个好的键盘是硬件上的需求,而一个好的编辑器则是软件基础的重要内容。

小白:不是算法与数据结构才是最重要的吗?

小程:作为一线开发工程师,绝不能只重思路而不管操作细节。程序员应该经常想办法改善工作流程与工具,才能真正提高工作效率,而编辑器就是其中要考虑的一个工具。

本文解决一个问题:程序员务必找到属于自已的编辑器。

对于写程序来说,用什么编辑器,很多时候是很自然的结果。比如,如果是开发windows桌面软件的,那自然就选择微软的集成开发环境即IDE了,诸如vc、vs之类;再比如xcode、android studio 之类的选择,都跟开发平台直接相关。之所以选择这些IDE,是因为它们不仅可以编辑代码,而且还能编译与调试程序,甚至可以直接运行程序到目标设备。集成而且靠谱,是IDE应该提供的特质。对于特定平台的大项目的开发,特别是团队合作时,选择一个统一而合适的IDE是必要的。

但是,如果是写说明文档,写心得体会或文章编辑,用IDE就不是一个好的选择,毕竟只用到了编辑的功能,没有必要去启动一个庞大的集成开发环境那么笨拙而且操作缓慢。就算是要编译调试,也是可以考虑用编辑器加编译器或调试器的办法来实现,而不使用IDE。

小白:说那么多,就是鼓吹要有一个轻便的文档编辑器了,是吗,吹神?

小程:是的!有这个东西可以给你工作提速,而且能让你很爽。

有一堆编辑器可以选择:

notepad++
textmate
editplus
notepad2
ultraedit
vim
emacs
sublime
......

以上选择哪一个都可以,只要你用得顺手。当然,如果选择一个跨平台的,有可能更好,因为换一个平台不必另择新欢。

这里只介绍 sublimevim

(1)sublime text

sublime是一个容易上手而且能实实在在提高工作效率的工具,值得花时间去掌握(除非你已心有所属,而且已容不下第二个了)。

小白:我应该怎么精通这个武器呢?

小程:原则上,在使用时,不要急着去操作,而是多想一想,是不是可以更省事的操作?是不是有更好用的插件等着我去用?你应该不断地去改进你的工具。至于,具体如何使用sublime,搜索一下教程或经验总结就好,实战地用。

sublime的使用经验不在这里展开,但我会介绍一个有趣的插件,即plantuml

plantuml,让你可以写代码来绘图。

使用plantuml绘图,实际就是写python代码。

(a)安装plantuml插件

在菜单tools中找到Command Palette(或者shift+cmd+p),输入add repository并回车,输入
https://github.com/jvantuyl/sublime_diagram_plugin.git
并执行。

再次打开Command Palette(shift+cmd+p),输入install package,
选择“Package control:install package”,执行完后,输入diagram,
再找到sublime_diagram_plugin并安装。

重启sublime,在Preferences -> Packages Setting,
如果看到 Diagram, 说明已经安装成功。

(b)安装graphviz

需要绘图工具库graphviz的支持,安装:

brew install graphviz

(c)使用puml

新建一个file,开始写代码绘图。按command+m,会显示一个png图,比如:

小白:哇,写代码就可以绘图,这个好酷!

小程:对于简单的图,这个工具是一个很好的选择,但对于复杂的而且有方向指向的图,别的工具很可能是更好的选择。并且,sublime的优势远不止这个插件的使用。

(2)vim

vi,一个古老而声名远播的编辑器。它用键盘解决一切问题,可以让你着迷。

vim的入门是有难度的。同样,这里不介绍它的学习,只是演示一下它的使用,如果有兴趣可以再深入了解。

macvim的演示

小白:哇,到处是刀光剑影!

小程:在熟练掌握vim后,是可以做到指哪打哪的,就是这么实在!


环境与工具3:从打字开始 | vim | sublime的更多相关文章

  1. 环境与工具2:建立高效的mac环境

    你的工作与生活离不开电脑,电脑是一个工具,也是一个环境.环境是不是绿水青山,是不是得心应手,这是很重要的事情.小程平时使用macbook来学习跟娱乐,最近重装了系统,很多环境与工具都需要重新组建. 那 ...

  2. ArchLinux安装后所需要的环境和工具

    ArchLinux安装后所需要的环境和工具 工具: Dolphin 文件管理器 ntfs-3G 移动硬盘挂载 octopi 实时检查更新 KDE Connect 手机电脑远程连接 DBeaver Co ...

  3. .net之微信企业号开发(一) 所使用的环境与工具以及准备工作

    前言 一直以来,从事的是.net winform的编程,虽然对移动互联这块很感兴趣,但是由于现有的工作和移动互联之间隔的太远,也就没有时间和精力好好的去研究和实现.今年年初辞职了,刚好朋友那里希望建立 ...

  4. php环境搭建工具推荐

    楼楼最近由于一系列原因,使用了几款php环境搭建工具,安装配置方便,所以在这里推荐一下.第一款是XAMPP(网址http://www.xampps.com/),软件包原来的名字是 LAMPP,但是为了 ...

  5. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  6. 新兵训练营课程——环境与工具Java[转]

    原文地址:http://weibo.com/p/1001643874239169320051 程序员在开发过程中会用到很多工具来提升开发和协作效率,这次介绍的是目前微博平台在开发过程中用到的一些工具, ...

  7. PHP 环境搭建工具

    PHP环境搭建工具 一键集成工具 直接安装后部署到相关目录即可浏览 phpStudy 下载地址:https://pan.baidu.com/s/1i6C3Ph7

  8. PHP开发环境搭建工具有哪些?

    对于php开发小白来说搭建一个php运行环境就是一道坎! 因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很多公司开发了一键搭建php安装环境,一 ...

  9. Java开发环境及工具安装配置

    Java开发环境及工具安装配置 Windows JDK 下载地址 https://www.oracle.com/java/technologies/javase-downloads.html 安装配置 ...

随机推荐

  1. jquery 操作服务端控件,select 控件

    <asp:DropDownList ID="ddl" runat="server"></asp:DropDownList> <se ...

  2. TortoiseGit的ssh key和Git的ssh key

    情景模拟: 你使用Git+TortoiseGit对项目进行版本控制,本地库(自己电脑建立的.git)与远程库(如GitLab上建立)通信需要使用ssh验证,你用git生成公钥并保存到了Gitlab上, ...

  3. [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)

    Link https://jzoj.net/senior/#main/show/3506 Description 从前有一个善良的精灵. 一天,一个年轻人B找到她并请他预言他的未来.这个精灵透过他的水 ...

  4. ActiveMQ队列、主题模式区别

    1.ActiveMQ队列模式如下图,生产者创建消息到消息中间件,再“均分给消费者”. 2.ActiveMQ主题模式如下图,生产者创建消息到消息中间件,消费者会接受到订阅的主题中所有的消息.在主题模式下 ...

  5. Elasticsearch 滚动重启 必读

    关键词:elasticsearch , es , 滚动重启 , 禁止分片 由于之前es GC没有怎么调优,结果今天被大量scroll查询查挂了,GC 卡死了.然后为了先恢复给业务使用,也没什么其他办法 ...

  6. Round #3

    题源:感谢 by hzwer 水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的 ...

  7. swust oj 1014

    交换排序算法的设计与实现——冒泡排序 1000(ms) 10000(kb) 2640 / 7503 编程实现冒泡排序,按照非递减排序,测试数据为整数. 输入 第一行是待排序数据元素的个数: 第二行是待 ...

  8. Python基础之变量作用域

    一.分类: 二.变量名的查找规则: 三.局部变量: 四.全局变量: 五.global语句: 六.nonlocal语句: 七.基础代码: # 全局变量:当前.py文件内部都可访问 g01 = 100 d ...

  9. unittest生产html测试报告

    需要添加HTMLTestRunner.py文件,我用的ubuntu16.04下的python3.5.2,所以我放在/usr/lib/python3.5下 import unittest import ...

  10. [Swift]LeetCode64. 最小路径和 | Minimum Path Sum

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...