环境与工具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 安装配置 ...
随机推荐
- Y1S002 xshell脚本编写示意
SecureCRT可以自己录制脚本,非常的方便:但是考虑到CRT收费,所以不计划把CRT作为使用的终端. vbs脚本(test.vbs): Sub main xsh.Screen.Synchronou ...
- win10系统盘分多大合适?
WIN10系统盘分多大合适,想必许多网友在装系统的时候都犹豫不觉吧,不过现在的硬盘基本上都是512G 1T的机械硬盘,固态硬盘基本都是128G以上,256G几乎成为标配,所以WIN10系统盘空间还是足 ...
- jquery ajax中success与complete的执行顺序
jquery ajax中success与complete的执行顺序 jquery中各个事件执行顺序如下: 1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) ...
- string 转 int
1.stringstream 用流转换 cin cout都是流的操作 iostream cin的时候,从屏幕读取字符串流,自动判断类型(省去了scanf的格式控制) stringstream ...
- diy 滚动条 样式 ---- 核心代码
参考自 : https://blog.csdn.net/qq_38881495/article/details/83689721 .chapter_data position relative wid ...
- linux学习历程-不熟悉的linux命令
一:man(执行查看帮助命令) 二:常用的系统工作命令 1:echo echo命令用于显示在终端输出字符串或变量提取后的值,格式“echo [字符串]|[$变量]” 2:date 用于显示系统的时间和 ...
- 删除API
Delete API 删除API允许根据ID从指定索引中删除一个类型化的JSON文档. DELETE /twitter/_doc/1 返回结果如下: { "_index": &qu ...
- python语法_模块_time_datetime_random
模块:可以被公共调用的. time import time print(time.time()) 时间戳方式显示时间. time.sleep(3) 休眠3秒 time.clock() 计算cpu执行时 ...
- Docker常用命令(一)
[转]原始出处:http://zxx287856774.blog.51cto.com/3417296/1665264 docker中 启动所有的容器命令 docker start $(docker p ...
- Oracle:WITH AS () Merge ?
WITH AS 语法在SQL SERVER 和ORACLE数据库上均支持,主要用于子查询.语法如下: WITH expression_name [ ( column_name [,...n] ) ] ...