环境与工具3:从打字开始 | vim | sublime
作为程序员,最不爽的一件事是被亲戚叫去修电脑。
“喂,怎么跟你们讲,我是写代码的,不是修电脑的!什么?代码是什么?!”
小白:为什么程序员就不能修电脑了?
小程:会不会修都有可能,关键在于程序员会觉得修电脑是很掉价很low的事情。修电脑,找专业的维修员就对了,给点机会别人赚钱嘛。
小白:那如果是下图的那位让你修电脑呢?
小程:……我不仅会修电脑,我还会弹吉他与画画。

修电脑不是程序员的基本技能,而打字,却是程序员的基本技能之一。
写代码、写说明文档、写心得记录等,打字都是必不可少。一个好的键盘是硬件上的需求,而一个好的编辑器则是软件基础的重要内容。
小白:不是算法与数据结构才是最重要的吗?
小程:作为一线开发工程师,绝不能只重思路而不管操作细节。程序员应该经常想办法改善工作流程与工具,才能真正提高工作效率,而编辑器就是其中要考虑的一个工具。
本文解决一个问题:程序员务必找到属于自已的编辑器。
对于写程序来说,用什么编辑器,很多时候是很自然的结果。比如,如果是开发windows桌面软件的,那自然就选择微软的集成开发环境即IDE了,诸如vc、vs之类;再比如xcode、android studio 之类的选择,都跟开发平台直接相关。之所以选择这些IDE,是因为它们不仅可以编辑代码,而且还能编译与调试程序,甚至可以直接运行程序到目标设备。集成而且靠谱,是IDE应该提供的特质。对于特定平台的大项目的开发,特别是团队合作时,选择一个统一而合适的IDE是必要的。
但是,如果是写说明文档,写心得体会或文章编辑,用IDE就不是一个好的选择,毕竟只用到了编辑的功能,没有必要去启动一个庞大的集成开发环境那么笨拙而且操作缓慢。就算是要编译调试,也是可以考虑用编辑器加编译器或调试器的办法来实现,而不使用IDE。
小白:说那么多,就是鼓吹要有一个轻便的文档编辑器了,是吗,吹神?
小程:是的!有这个东西可以给你工作提速,而且能让你很爽。
有一堆编辑器可以选择:
notepad++
textmate
editplus
notepad2
ultraedit
vim
emacs
sublime
......
以上选择哪一个都可以,只要你用得顺手。当然,如果选择一个跨平台的,有可能更好,因为换一个平台不必另择新欢。
这里只介绍 sublime跟 vim。
(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的更多相关文章
- 环境与工具2:建立高效的mac环境
你的工作与生活离不开电脑,电脑是一个工具,也是一个环境.环境是不是绿水青山,是不是得心应手,这是很重要的事情.小程平时使用macbook来学习跟娱乐,最近重装了系统,很多环境与工具都需要重新组建. 那 ...
- ArchLinux安装后所需要的环境和工具
ArchLinux安装后所需要的环境和工具 工具: Dolphin 文件管理器 ntfs-3G 移动硬盘挂载 octopi 实时检查更新 KDE Connect 手机电脑远程连接 DBeaver Co ...
- .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
前言 一直以来,从事的是.net winform的编程,虽然对移动互联这块很感兴趣,但是由于现有的工作和移动互联之间隔的太远,也就没有时间和精力好好的去研究和实现.今年年初辞职了,刚好朋友那里希望建立 ...
- php环境搭建工具推荐
楼楼最近由于一系列原因,使用了几款php环境搭建工具,安装配置方便,所以在这里推荐一下.第一款是XAMPP(网址http://www.xampps.com/),软件包原来的名字是 LAMPP,但是为了 ...
- 中小研发团队架构实践之生产环境诊断工具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如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...
- 新兵训练营课程——环境与工具Java[转]
原文地址:http://weibo.com/p/1001643874239169320051 程序员在开发过程中会用到很多工具来提升开发和协作效率,这次介绍的是目前微博平台在开发过程中用到的一些工具, ...
- PHP 环境搭建工具
PHP环境搭建工具 一键集成工具 直接安装后部署到相关目录即可浏览 phpStudy 下载地址:https://pan.baidu.com/s/1i6C3Ph7
- PHP开发环境搭建工具有哪些?
对于php开发小白来说搭建一个php运行环境就是一道坎! 因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很多公司开发了一键搭建php安装环境,一 ...
- Java开发环境及工具安装配置
Java开发环境及工具安装配置 Windows JDK 下载地址 https://www.oracle.com/java/technologies/javase-downloads.html 安装配置 ...
随机推荐
- Nuxt.js 从入门到放弃
Nuxt 是 Vue 上的 SSR,也就是服务端渲染应用框架,可在很大程度上解决当前 SPA 和 CSR 的首页加载慢,不利于 SEO 的问题.本场 Chat 就将详细介绍 Nuxt 的使用以及相关概 ...
- 查找更改的PeopleCode
当我们做工程包迁移时,经过会遗漏部分更改过的定义.我们可以用下面的SQL来查找变更项 变量 &OPRID =代码变更者 变量 &PROJECT 项目工程名 SELECT * FROM ...
- RSA算法加解密
package org.thcic.ejw.util.encrypt; import java.io.ByteArrayOutputStream; import java.security.Key; ...
- web移动端开发技巧
一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, m ...
- BUAA_OO Summary——多项式求导问题
从C.DS.计组一路折磨过来, 几乎都在采用过程化.函数式的编程思想.初接触面向对象的项目开发,经过了三周的对多项式求导问题的迭代开发,经历了设计.coding.测评环节,算是对面向对象有了一定的认识 ...
- 认识Python和基础知识
一.第一个Python程序 用vim编写,格式: vim hello.py 然后按 i 进入插入模式开始写代码,注意所有的代码都要用英文输入法,先写括号和引号,再在引号里面写内容(为了避免引号.括号不 ...
- C++或C#调用外部exe的分析
假如有个外部程序名为A.exe,放在目录E:\temp\下,然后我们用C++或者C#写一个程序调用这个A.exe的话(假设这个调用者所在的路径在D:\invoke),通常会采用下面的代码: // C# ...
- 1.7 All components require plug-in?
In Android, Activity, Service, ContentProvider, and BroadcastReceiver are called as four major compo ...
- NeuChar 平台使用及开发教程(四):使用 NeuChar 的素材服务
各类公众号的功能之一就是为用户提供各类图文和多媒体的信息,因此素材是必不可少的. 进入 Neural Cell 设置界面,点击右侧[素材管理]按钮,进入素材管理界面. 目前系统提供了文本.多图文.图片 ...
- 【子集或者DFS】部分和问题
题目: 给定整数序列a1,a2,...,an,判断是否可以从中选出若干数,使它们的和恰好为k.1≤n≤20 -108≤ai≤108 -108≤k≤108 输入: n=4 a={1,2,4,7} ...