如果你在使用 Mac 电脑,并且没有如某些人那样安装 Windows 系统,那么你可以尝试使用以下这些软件。都是我自己使用过且觉得还不错的,在这里推荐给大家,可以极大地提高工作效率。
(注:这里的软件除了软件开发者专属的,还有一些通用类软件。)
这个软件很多文章都在说, 我这里就不多做介绍了. 其具体效果跟 Mac 自带的 Spotlight 类似, 但功能会强大 N 个数量级倍. 我居然不是12年底刚接触 Mac 时用的她(为啥当初没人推荐给我, 直到我快工作了才用上). 如果你看到这篇文章且还没有用, 就赶紧用起来吧. 免费版本的功能也都挺强悍的.
举例说下常用的几个功能:
cd
到文件/目录(后面有类似的工具推荐), 复制文件路径(finder 不比 windows 能够方便 copy 文件路径)等.Workflow 是其更强大的卖点. 比如以下一些或者极其高效或者很有意思的 workflow.
ctrl + blank
输入关键字就直接模糊搜索某 API 了. st keywords
) 就能直接搜索 stackoverflow 上相关问题. 相当于在 google 搜索中 keywords site:stackoverflow.com
; movie 电影名
就出来结果了, 如图 搜索后直接回车打开是默认在应用程序中打开, 按住 cmd 后会在浏览器中打开(由于最开始开发的作者是国际版 evernote, 中国版补丁的作者也忘记改这个链接了, 所以在浏览器中打开的跳转链接不对, 直接下载我修改后 workflow 是 OK 的 ), 其实就是修改一下其中的 app.js
中的 get-link
方法.
当然还有更多其他好玩有用的 workflow, 你可以直接到“选购”, 没有的, 你也可以自己实现(也比较简单, 用 php/python 等都可以实现, 你打开 alfred 设置项, 双击具体某个 workflow 就能看到源码)一个也贡献出来哦.
在Alfred中大家可能会用到的workflow, 即印象笔记(evernote): 可以快速搜索印象笔记/evernote 中保存的内容.
这个得首先去 生成一个 token, 然后安装 并配置好(es-token 你自己的generated-token) token, 成功后即可使用. 查询支持不同的语法格式, 详情可以看 .
如上图所示, 搜索某关键字后直接回车则是默认在应用程序中打开, 按住 cmd 后会从浏览器中打开该笔记. 由于最开始开发的作者是国际版 evernote, 中国版补丁的作者也忘记改这个链接了, 所以在浏览器中打开的跳转链接不对, 直接下载我修改后 workflow 是 OK 的, 请从 下载, 其实就是修改一下其中的 app.js
中的 get-link
方法(将 https://www.evernote.com
替换成 https://app.yinxiang.com
).
时间管理
这个软件可以悄无声息的帮你记录你使用电脑的情况, 包括对各种软件用时统计, 分类统计, 并且还支持多种平台(win/mac/ubuntu/android/等), 可以定期出报告, 比如每周邮件出周报, 汇报你当周的使用情况.
来个例子, 如下图所示为我某一周的周报:
周报显示该周我用了电脑近47个小时, 综合生产力评分79%. 这个生产力评分是根据你使用不同软件的不同时间加权计算出来的. 一些通用的软件, RescueTime 能够自动识别, 比如可能用iTerm2 或者 VisualStudio 等软件会归属于大类, 属于 very productive
级别, 使用 wechat 或者 QQ, 就被判断为 distracting
, 当然你可以自定义设置, 一些软件本身没有能识别出来的, 也需要你手动去设置级别. 具体浏览网页的数据需要安装相应的Chrome 插件.
网页版本的可以看到更加详细的记录. 你还可以设置一些目标, 比如当天需要使用的软件3小时以上, RescueTime可以汇报你完成目标的情况.
免费版本的也足够用了, 付费版本的可以看到更长时间段的或更详细的年报等数据. 或许这个软件能够帮助你更好的管理时间, 或者它仅仅是不辞辛劳帮你记录下你使用电脑/手机情况也是极好的. 所以墙裂推荐大家用这款软件.
窗口管理
利用这个软件可以很方便快捷的对应用程序窗口进行管理, 能够让多个窗口整齐的摆放在桌面上. 设置好快捷键后, 激活然后加方向键可以让当前应用程序准确定位到并充满桌面的1/2, 1/4等, 或者移动到另外一个屏幕(程序员多屏用得较广泛). 当然还可以自己设置比如充满整个屏幕的3/4, 等等. 直接用键盘快捷键即可完成的功能, 就不需要再移动手去用鼠标/trackpad去最大/小化改变窗口大小等等了.
键盘映射
我第一次使用时, 是因为我使用了外接键盘(如下图), 我把外接键盘放到内置笔记本键盘上, 就需要禁用掉内置键盘, 每次去手动调整当然很麻烦. 于是就找到这个软件帮助我.
它可以帮助我自动切换外界键盘和内置笔记本键盘(插拔USB外接键盘自动切换), 除此之外, 它还支持很多功能. 举例而言因为我用的 HHKB 是没有单独方向键, 用内置的组合方向键又特别别扭, 就可以利用它帮助映射. 比如我选择启用了 , 用 s + h/l/j/k, 或者 再启用 , 用 ctrl + p/n/b/f代表方向键. (其实 Mac 很多快捷键都跟 Emacs 中的快捷键一致的, 准备再下一篇文章中再详细介绍常用快捷键及推荐适用于开发者的应用)
快速切换应用程序
长按 alt
键盘可弹出切换菜单, + 具体的数字或者字母即可快速切换, 不需要再连续按键 cmd+tab
或者 cmd+shift+tab
来回切换了.
文档编辑
Markdown 文本编辑器, 支持 WYSIWYG(What You See Is What You Get, 所见即所得) 类似 Mou, MacDown 直接支持类似 latex 语法, 例如可以方便地输入数学公式用 \(2^x + log_2y^{2+z}\)
, 因其对此类数学公式和代码高亮等支持得更好更方便, 因此我选用了 MacDown.
如果你还不知道什么是 Markdown, 可以花时间学一些, 用熟悉了, 估计你都不太想再用 Office Word 了.
快捷键提示
只需要长按 , 可弹出当前 active 的软件的快捷键.
装13神器
这款软件是 Mac + iPhone 结合使用, 利用蓝牙进行距离感应, 能够对 Mac 电脑进行自动锁屏/开锁.
上图我将手机和Mac的软件截图放在一块了, 内外两层分别是Mac和手机上的截图, 从中能够看到手机与Mac之间的距离, 当前解锁/锁屏状态, 可以设置锁屏/解锁的距离阈值或者修改锁定设置为休眠或屏保.
想象一下, 正对着电脑 working 呢, 突然来电话了, 以前可能需要手动锁屏然后拿手机到外面(方便接电话的地方)接电话, (不锁屏, 让同事发现你看了不该看的东西就不好了! :) 阴险脸 ), 接完电话回来后, 再手动输入密码登入电脑.
而自从有了这个软件, 拿着电话直接离开便是, 软件自动帮你锁屏, 回来的时候, 刚坐到电脑屏幕前, 便看见软件自动帮你输入密码登入系统(目睹这个过程相当爽啊). 节约时间不说, 这看起来多高大上啊. 所以这款软件可是装 X 的神器啊.
(有兴趣的同学可以开发下支持Win/Android的)
资源状态
状态栏上显示当前电脑的运行状况, CPU/内存/网络IO等等, 比如发现电脑突然变慢了, 发现 CPU 暴涨, 可以方便地抓出是哪个应用程序. 别看到CPU利用率都占满小方框了, 听到电脑风扇“呼呼”响了, 还一直操作电脑.
清理电脑
清理电脑(删除软件)的工具, 类似 CleanMyMac 之类的工具. 其实我认为此类软件在 Mac上用处不是很大, 想要删除某个 App, 直接进 /Applications 目录直接删除那个应用程序即可. 因为 Mac 应用程序数据基本上都存在 这个目录下, 虽然表面上看 是个应用程序文件, 双击即可运行. 只不过 CleanApp/CleanMyMac 能够删除更多的一些等类似配置信息等(这个占用空间真的很小).
虚拟机
有的软件/网页, 我们还不得不用 Win 系统, 比如某些银行的网银啊, 再比如敝司的 OA 系统(墙裂鄙视)只支持 IE. 这个时候就不得不用一下 Win 系统. Win 下用得多的虚拟机是 VMWare, Mac 下这个软件类似. Win 系统可以跑在这个 App 下, 可以和 Mac “无缝” 连接在一起. 类似的虚拟机软件还有 VirtualBox, VMWare 等.
刚才介绍了一些大众化的软件, 当然作为程序猿的你也应该参考参考.
而接下来将介绍一些可以提高程序猿工作效率的一些软件和工具及相关配置.
首先介绍的就是我觉得应该熟悉 Mac 内置的一些软件及配置.
System Preferences -> Trackpad
中启用, 用 tap 替换 click 的操作, 明明轻轻 tap 就可以完成的, 为何还要用力点击才 OK. 现在偶尔用其他人电脑非得用力 click 就太纠结了.win+d
可以显示桌面, 相应的功能在 Mac 下如何做.作为程序猿, 肯定离不开各种快捷键. 对于 Mac 内置的一些快捷键, 我们还是很有必要知道的. 基本的复制/粘贴就不说了, 常用的还有
Shell123456789101112131415 | 空格键: 预览cmd + ,: 设置cmd + -/=: 缩小/放大ctrl + u: 删除到行首(与zsh冲突, zsh中是删除整行)ctrl + k: 删除到行尾ctrl + p/n: 上/下移动一行或者前/后一个命令ctrl + b/f: 光标前/后移charesc + b/f: 光标前/后移word(蛋疼不能连续work)ctrl + a/e: 到行首/行尾ctrl + h/d: 删前/后字符ctrl + y: 粘贴ctrl + w: 删除前一个单词esc + d: 删后一个单词ctrl + _: undoctrl + r: bck-i-search/reverse-i-search, 输入关键字搜索历史命令 |
上面的这些快捷键特别是在敲命令时还是很有用的(可能有的确实是在命令行中才生效), 特别是结合 zsh 自动补全等功能. 比较 DT 的是就是 esc
一起用的时候, 不能连续使用. 举个例子, terminal 中输入了 git push origin source
, 光标在末尾, 这时按住ctrl
不放, 按一下 w
即向前删除一个单词, 第一次按 w
删除 , 再按 w
删除 . 而 esc + d
不能这样结合使用(如下 gif连续按就不 work), esc
必须中途释放再按才能 work.
啥? 你说上面快捷键 ctrl + w
等不太好按? 按键特别别扭?
你需要做的就是将 caps lock
映射为 ctrl
, Keyboard -> Modifier Keys
修改, 目前我笔记本上的 ctrl
键无效. 不过, 一般情况下我用我的 HHKB, 这种映射方式正好符合 HHKB 的布局. (其实我是在买 HHKB 之前就修改的这个映射)
另外, 借助之前介绍的Karabiner, 可以将一些常用的方向键(上下左右)重新映射一下, 比如我目前是 s + h/j/k/l
来表示方向, 手不用太移动就能直接按方向(HHKB 本身按方向太麻烦, Mac 内置键盘有方向键还需要大幅度移动手), 用起来方便多了.
Mac 内置的更多的快捷键列表可以参考
其他还有一些常用的软件的快捷键, 可以用之前介绍的软件 cheetsheet, 长按 cmd, 可弹出当前 active 的软件的快捷键.
这个从快捷键中单独列出来了, 就强调下这个功能.
cmd + shift + 3
截取整个屏幕.
cmd + shift + 4
部分窗口, 出现十字供选取, 若此时按空格键(这个技能得点赞), 会选取当前应用的窗口, 再 tap 即可完成截图.
上面快捷键是截图后以文件形式保存在桌面(默认是桌面, 当然你也可以自己修改保存位置), 再上面快捷键基础上再同时按 ctrl
就会把图片保存在内存/剪贴板中, 直接去相应窗口粘贴即可.
类似 centos 的 yum, ubuntu 的 apt-get, 能够方便管理安装软件包.
Mac 上类似的应用还有port, 我刚开始试用过 port, 貌似 brew 上的源会多一些.
brew-cask 是 brew 的一个加强版, 可以安装一些桌面应用, 例如 chrome 等等之类的.
这里就不多介绍了, 详情可以到官网查看.
有介绍功能. 以下是觉得可能常用的功能.
cmd + d
竖着分屏, cmd + shift + d
横着分屏cmd + t
新建一个 tab, cmd + num
切换到第 num 个 tabcmd + [
和 cmd + ]
来进行切换小的分屏alt + 空格
, 弹出 iTerm2, 且以半透明的方式显示在当前 active 的窗口上面.cmd + f
搜索输入关键字后, 匹配的会黄色高亮, 此时按 tab
或者 shift + tab
会自动向后/前以word 的方式选中高亮的, 并自动 copy 到剪切板.cmd + alt + e
, 在所有的 tab 中全局搜索, 搜索出候选项后, 再选着你想要进入的 tab.cmd
加点击的方式直接打开链接或者文件(如下图上半部分). 这个功能很重要呢, 比如在编译过程中, 出现了 warning 或者 error, 一般会打印出具体文件路径, 此时直接从控制台就能打开文件进行 fix 了.cmd + ;
), 不过建议直接结合后面的zsh使用. cmd + shift + h
剪贴板历史(下图最后一行).这个墙裂推荐啊. 结合 , 丰富的.
语法高亮, 自动补全等特别好, 在此推荐的几个插件或功能.
12345678910 | alias gs='git status'alias gb='git branch -va'alias gco='git checkout'alias ga='git add'alias gc='git commit -m'alias gp='git push'alias gfom='git fetch origin master'alias gfod='git fetch origin develop'alias grod='git rebase origin/develop'alias grom='git rebase origin/master' |
cd
过的目录, 下次你直接 j keyword
就会自动 cd
到以 匹配的目录. 输入 d
会展示当前会话访问过的目录, 然后对应目录有标号, 接下来按标号即可跳转.cdf
(cd finder)就自动 cd
到 finder 打开的目录下.git
, 此时光标还在 p
前面, zsh 就已经自动给我补全了 git push origin source
, 此时我只要按 ctrl + e
跳转到行尾(所以熟悉上文中的快捷键很有必要啊), 回车即可执行命令了.更多的, 还是请到官网查看.
文本编辑器, 也有丰富的插件支持, 直接看吧. 这个 App, 我用得也不是很多.
这里分享一个小的功能, 怎么在命令行用 sublime 打开特定的文件. 其实就是添加一个软链即可. (直接 open filename
会以文件默认关键的软件打开)
12345 | ➜ app-in-mac git:(source) ✗ subl dungeon-game.cpp➜ app-in-mac git:(source) ✗ which subl/usr/local/bin/subl➜ app-in-mac git:(source) ✗ ls -la /usr/local/bin/subllrwxr-xr-x 1 tanglei admin 62 1 24 2016 /usr/local/bin/subl -> /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl |
介绍 Vim 的文章也很多了. 这里就不详细展开了. 分享下我用的部分插件. (最近被 IntelliJ IDEA 搞得恶心了, 准备尝试抛弃),
为了让多台电脑同步我的 vim 配置/插件等, 我直接放 github 了(), 不同电脑只需要再建一个软链到github 中的 vimrc 即可.
~/.vim/bundle/
目录下即可(), "", []
等配对信息, , 具体效果等配置方法可以参考下面的两篇文章, 插件具体用法可阅读具体插件的 doc.
Reference
其实介绍 介绍 Alfred 已经提到过, 这里再介绍一下. 程序猿应该必备啊. 内置各种语言, 各种环境的各种文档. 该 App 还提供各种 API 供其他工具交互使用. 例如 Vim(不是想象当中自动补全功能, 只是能够快捷地搜索 API), Sublime 等. (p.s 要是有人写了一个 Vim 插件, 能够支持调用 dash 的 API(如果有的话) 自动补全代码, 那应该会很受欢迎的)
插件
curl
;类 Windows 下 Fiddler 抓包应用.
相关命令 tcpdump
一些好用的命令(基本的什么ls/cd/cp/rm
之类的这里就直接忽略了), 我觉得作为程序猿还是应该了解, 至少只当某个场景下直接用相应的命令就能解决. 具体参数可以再 --help
或者 man commond
再看.
traceroute, dig
等awk
也可以sort
一块用, 只能去重相邻的行comm
(输出3列, 分别是: 只在文件1, 只在文件2 和两个文件都在的行)结合这些命令可能就能完成某些复杂的功能, 举个例子, 如线上的web 访问日志会记录 等等. 现在需要统计 当天请求路径为 A, 排名前10的参数, 就可以 grep 路径A | cut 取出想要的数据列 | sort |
之类的, 或者比如统计http 404 请求最多的10个路径. 再比如, 随机生成3个长度为8包含字母数字的字符串(偶尔会用到, 比如各种生产 secret key 的时候), 直接用如下命令即可
| uniq
1234 | ➜ _includes git:(source) ✗ cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | head -n 3 | cut -c 1-8MaL6nEmZ00m2Ub19rsc4AOQm |
其他的可能较少用, 但一旦用, 能省不少时间. 网上也有一些 online 的工具, 但哪有这个快准狠.
scriptable image processing system
比如批量处理图片大小, 压缩等等来源: