使用這些工具,幫你提高工作效率
本文公眾號(hào)來源:程序猿石頭
作者:碼農(nóng)唐磊
本文已收錄至我的GitHub
Mac built-in
首先介紹的就是我覺得應(yīng)該熟悉 Mac 內(nèi)置的一些軟件及配置。
trackpad 配置
-
啟用 Tap to click: 在
System Preferences -> Trackpad中啟用, 用 tap 替換 click 的操作,明明輕輕 tap 就可以完成的, 為何還要用力點(diǎn)擊才 OK。現(xiàn)在偶爾用其他人電腦非得用力 click 就太糾結(jié)了。同時(shí),還有 "右鍵"功能, Secondary click, 用兩個(gè)手指 tap 彈出右鍵菜單。
-
開啟單詞選詞查詢: 選中某個(gè)中英文單詞后,三指 tab 會(huì)彈出詞典釋義
-
Scroll 方向: 這個(gè)自己用習(xí)慣了就好。由于我剛開始從 Win 轉(zhuǎn)向 Mac 的時(shí)候習(xí)慣用 Win 的那種方式,于是就沒有開啟
Scroll direction: natural, 然后也一直沿用至今。 -
其他手勢(shì): 有必要熟悉一下,比如知道在 Win 環(huán)境下用
win+d可以顯示桌面,相應(yīng)的功能在 Mac 下如何做。
快捷鍵
作為程序猿,肯定離不開各種快捷鍵。對(duì)于 Mac 內(nèi)置的一些快捷鍵,我們還是很有必要知道的?;镜膹?fù)制/粘貼就不說了,常用的還有:
空格鍵: 預(yù)覽
cmd + , : 設(shè)置
cmd + -/=: 縮小/放大
ctrl + u: 刪除到行首(與zsh沖突, zsh中是刪除整行)
ctrl + k: 刪除到行尾
ctrl + p/n: 上/下移動(dòng)一行或者前/后一個(gè)命令
ctrl + b/f: 光標(biāo)前/后移char
esc + b/f: 光標(biāo)前/后移word(蛋疼不能連續(xù)work)
ctrl + a/e: 到行首/行尾
ctrl + h/d: 刪前/后字符
ctrl + y: 粘貼
ctrl + w: 刪除前一個(gè)單詞
esc + d: 刪后一個(gè)單詞
ctrl + _: undo
ctrl + r: bck-i-search/reverse-i-search,輸入關(guān)鍵字搜索歷史命令
上面的這些快捷鍵特別是在敲命令時(shí)還是很有用的(可能有的確實(shí)是在命令行中才生效),特別是結(jié)合 zsh 自動(dòng)補(bǔ)全等功能。
比較 DT 的是就是 esc 一起用的時(shí)候,不能連續(xù)使用。舉個(gè)例子,Terminal 中輸入了 git push origin source,光標(biāo)在末尾,這時(shí)按住ctrl 不放, 按一下 w 即向前刪除一個(gè)單詞,第一次按 w 刪除 source,再按 w 刪除 origin。而 esc + d 不能這樣結(jié)合使用(如下 gif 連續(xù)按就不 work),esc 必須中途釋放再按才能 work。
啥?你說上面快捷鍵 ctrl + w 等不太好按?按鍵特別別扭?
你需要做的就是將 caps lock 映射為 ctrl, Keyboard -> Modifier Keys修改,目前我筆記本上的 ctrl 鍵無效。不過,一般情況下我用我的 HHKB,這種映射方式正好符合 HHKB 的布局。其實(shí)石頭是在買 HHKB 之前就修改的這個(gè)映射,所以切換自如。
另外,借助之前介紹的Karabiner,可以將一些常用的方向鍵(上下左右)重新映射一下, 比如我目前是 s + h/j/k/l 來表示方向,手不用太移動(dòng)就能直接按方向(HHKB 本身按方向太麻煩, Mac 內(nèi)置鍵盤有方向鍵還需要大幅度移動(dòng)手),用起來方便多了。
Mac 內(nèi)置的更多的快捷鍵列表可以參考 Mac 官網(wǎng)[1]
截圖
這個(gè)從快捷鍵中單獨(dú)列出來了,就強(qiáng)調(diào)下這個(gè)功能。
cmd + shift + 3 截取整個(gè)屏幕。cmd + shift + 4 部分窗口,出現(xiàn)十字供選取,若此時(shí)按空格鍵(這個(gè)技能得點(diǎn)贊),會(huì)選取當(dāng)前應(yīng)用的窗口,再 tap 即可完成截圖。
上面快捷鍵是截圖后以文件形式保存在桌面(默認(rèn)是桌面,當(dāng)然你也可以自己修改保存位置), 在上面快捷鍵基礎(chǔ)上再同時(shí)按 ctrl 就會(huì)把圖片保存在內(nèi)存/剪貼板中,直接去相應(yīng)窗口粘貼即可。
home brew
類似 Centos 的 yum, Ubuntu 的 apt-get,能夠方便管理安裝軟件包。Mac 上類似的應(yīng)用還有port, 我剛開始試用過 port,貌似 brew 上的源會(huì)多一些。
brew-cask 是 brew 的一個(gè)加強(qiáng)版,可以安裝一些桌面應(yīng)用,例如 Chrome 等等之類。
這里就不多介紹了,詳情可以到官網(wǎng)查看:
-
brew[2] -
brew-cask[3]
iTerm2
iTerm2官網(wǎng)[4]有介紹功能。以下是覺得可能常用的功能。
-
分屏功能
-
cmd + d豎著分屏,cmd + shift + d橫著分屏 -
cmd + t新建一個(gè) tab,cmd + num切換到第 num 個(gè) tab -
當(dāng)前窗口含有分屏?xí)r, 通過 cmd + [和cmd + ]來進(jìn)行切換小的分屏 -
熱鍵 設(shè)置一個(gè)熱鍵,比如我的是
alt + 空格, 彈出 iTerm2, 且以半透明的方式顯示在當(dāng)前 active 的窗口上面。
-
搜索 -
cmd + f搜索輸入關(guān)鍵字后,匹配的會(huì)黃色高亮,此時(shí)按tab或者shift + tab會(huì)自動(dòng)向后/前以 word 的方式選中高亮的,并自動(dòng) copy 到剪切板。 -
cmd + alt + e,在所有的 tab 中全局搜索,搜索出候選項(xiàng)后,再選擇你想要進(jìn)入的 tab。
-
密碼
這個(gè)功能可能會(huì)常用,程序猿得經(jīng)常登錄到遠(yuǎn)程服務(wù)器吧,密碼又記不住??梢园殉S妹艽a保存起來,需要輸入密碼的時(shí)候,用快捷鍵 Option + cmd + f 彈出密碼管理器,選擇一個(gè)自動(dòng)輸入即可。
-
其他 -
新版本的 iTerm2 還支持直接在控制臺(tái)里 ls 圖片文件(圖片顯示在控制臺(tái)里)。(如上圖下半部分,連 gif 都支持) -
自動(dòng)識(shí)別控制臺(tái)里的內(nèi)容,如含有鏈接或者本地文件路徑可以用 cmd加點(diǎn)擊的方式直接打開鏈接或者文件(如下圖上半部分)。這個(gè)功能很重要呢,比如在編譯過程中,出現(xiàn)了 warning 或者 error,一般會(huì)打印出具體文件路徑,此時(shí)直接從控制臺(tái)就能打開文件進(jìn)行 fix 了。 -
自動(dòng)補(bǔ)全,iTerm2 本身是支持自動(dòng)補(bǔ)全的( cmd + ;),不過建議直接結(jié)合后面的zsh 使用。cmd + shift + h剪貼板歷史(下圖最后一行)。 -
一些高級(jí)的功能目前可能處于測(cè)試版本,你若用的穩(wěn)定版是不支持的,需要到官網(wǎng)下測(cè)試版。還有更多的功能請(qǐng)到 iTerm2 官網(wǎng)探索吧。
zsh
這個(gè)墻裂推薦啊。結(jié)合 oh my zsh[5],豐富的[插件資源(zsh)](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins-Overview "插件資源(zsh "插件資源(zsh)")")。
語法高亮,自動(dòng)補(bǔ)全等特別好,在此推薦的幾個(gè)插件或功能。
-
git: 當(dāng)前目錄若是在一個(gè) git repo 下面的話,會(huì)自動(dòng)顯示當(dāng)前的分支信息等等。然后可以自己搞一些 alias,簡(jiǎn)寫命令,比如石頭常用的一些:
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'
-
autojump: 這個(gè)也炒雞贊。會(huì)自動(dòng)記錄你
cd過的目錄,下次你直接j keyword就會(huì)自動(dòng)cd到以 keyword 匹配的目錄。輸入d會(huì)展示當(dāng)前會(huì)話訪問過的目錄,然后對(duì)應(yīng)目錄有標(biāo)號(hào),接下來按標(biāo)號(hào)即可跳轉(zhuǎn)。 -
osx: 舉個(gè)最簡(jiǎn)單的例子,比如你現(xiàn)在正在 finder 中瀏覽一個(gè)很深的目錄,現(xiàn)在突然想 cd 到這個(gè)目錄去做一些命令操作。如果你用 Xtrafinder 這樣的軟件的話道有這樣的功能,如果配上這個(gè)插件,你直接輸入
cdf(cd finder)就自動(dòng)cd到 finder 打開的目錄下。 -
zsh-autosuggestions,如下圖所示,我在 app-in-mac 這個(gè)目錄下,剛輸入了
git, 此時(shí)光標(biāo)還在p前面, zsh 就已經(jīng)自動(dòng)給我補(bǔ)全了git push origin source, 此時(shí)我只要按ctrl + e跳轉(zhuǎn)到行尾(所以熟悉上文中的快捷鍵很有必要啊),回車即可執(zhí)行命令了。
更多的還是請(qǐng)到官網(wǎng)查看。
sublime text
文本編輯器,也有豐富的插件支持,直接到sublime官網(wǎng)[6]看吧。這個(gè) App,我用得也不是很多。
這里分享一個(gè)小的功能,怎么在命令行用 sublime 打開特定的文件。其實(shí)就是添加一個(gè)軟鏈即可。(直接 open filename 會(huì)以文件默認(rèn)關(guān)鍵的軟件打開)
? 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/subl
lrwxr-xr-x 1 tanglei admin 62 1 24 2016 /usr/local/bin/subl -> /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl
Vim
介紹 Vim 的文章也很多了,這里就不詳細(xì)展開了。分享下石頭用的部分插件。為了讓多臺(tái)電腦同步我的 vim 配置/插件等,我直接放 github 了(ref vimconfigs[7]),不同電腦只需要再建一個(gè)軟鏈到github 中的 vimrc 即可。
-
Vundle/Pathogen: 插件管理,我用的Pathogen,直接將下面 github repo clone 到 ~/.vim/bundle/目錄下即可。 -
NERDTree: 文件目錄樹 NERDTree[8] -
YouCompleteMe: YouCompleteMe[9] 自動(dòng)補(bǔ)全,對(duì)C系列,結(jié)合其他的可支持 Java/Python/Js 等, 跪求 Scala 支持 -
ctrlp.vim: 快速搜索文件 ctrlp[10] -
minibufexpl.vim: 會(huì)把最近打開的文件列出來方便跳轉(zhuǎn),minibufexpl.vim github src[11] -
conque-term: shell 跑在 vim 里面, conque-term github src[12] -
ag: 代碼搜索, 可結(jié)合 ctrlp.vim,如果后者搜索太慢的話, ag github src[13] -
tagbar/taglist: 標(biāo)簽,能顯示類結(jié)構(gòu)信息等,tagbar github src[14] -
vim-surround: 處理諸如 (), "", []等配對(duì)信息,[vim-surround github src](https://github.com/tpope/vim-surround.git] 等配對(duì)信息,[vim-surroundgithub src" "]` 等配對(duì)信息,[vim-surround github src"), vim-surround ref[15] -
vim-easymotion: 快速跳轉(zhuǎn),關(guān)鍵字后會(huì)給匹配到的標(biāo)記,再選標(biāo)記并跳轉(zhuǎn)(類似后文介紹 Chrome 插件的Vimium中的鏈接標(biāo)記并跳轉(zhuǎn)功能,按鍵 f會(huì)將本文所有鏈接突出顯示并用字母標(biāo)記,然后按相應(yīng)的字母則會(huì)新開標(biāo)簽頁打開)。vim-easymotion github src[16], vim-easymotion ref[17] -
vim-powerline: 增強(qiáng)狀態(tài)欄 vim-powerline github src[18] -
vim-indent-guides: 縮進(jìn)可視化,vim-indent-guides github src[19]
具體效果等配置方法可以參考下面的兩篇文章,插件具體用法可閱讀具體插件的 doc。
Reference
-
將你的 Vim 打造成輕巧強(qiáng)大的IDE[20] -
所需即所獲:像 IDE 一樣使用 vim[21]
Dash
其實(shí)介紹前文 介紹 Alfred 已經(jīng)提到過,這里再介紹一下,程序猿必備神器。
內(nèi)置各種語言,各種環(huán)境的各種文檔。該 App 還提供各種 API 供其他工具交互使用。例如 Vim(不是想象當(dāng)中自動(dòng)補(bǔ)全功能,只是能夠快捷地搜索 API), Sublime 等。 (p.s 要是有人寫了一個(gè) Vim 插件,能夠支持調(diào)用 dash 的 API(如果有的話) 自動(dòng)補(bǔ)全代碼, 那應(yīng)該會(huì)很受歡迎的)
其他App
chrome
插件
-
AdBlock: 廣告屏蔽; -
EditThisCookie: 修改 cookie; -
Evernote Web Clipper: 印象筆記; -
JSONView and JSONLint for Google Chrome?: 請(qǐng)求返回的json進(jìn)行beautify方便查看; -
Markdown Here: 在富文本輸入markdown, 渲染成 html; -
Markdown Preview Plus: 渲染 .md 文件,相當(dāng)于 preview markdown; -
Open Screenshot: 網(wǎng)頁截圖,能夠自動(dòng)下拉截長圖; -
Postman: 請(qǐng)求偽造/抓包等,也可以用 curl; -
Proxy SwitchySharp: proxy 切換; -
RescueTime: 前文有介紹的RescueTime; -
undirect: google/baidu 搜索結(jié)果,點(diǎn)擊直達(dá)網(wǎng)站,這個(gè)貌似不太好用了。征求替代品; -
Vimium: 操作 vim 一樣操作瀏覽器,移動(dòng)查找等功能,還有前文提到的快速標(biāo)記鏈接并跳轉(zhuǎn);
Charles
類 Windows 下 Fiddler 抓包應(yīng)用。
相關(guān)命令 tcpdump
其他有用的命令行
一些好用的命令(基本的什么ls/cd/cp/rm之類的這里就直接忽略了),我覺得作為程序猿還是應(yīng)該了解,至少只當(dāng)某個(gè)場(chǎng)景下直接用相應(yīng)的命令就能解決。具體參數(shù)可以再 --help 或者 man commond 再看。
-
screen: 特別是 ssh 到登錄遠(yuǎn)程時(shí)用以管理會(huì)話 -
curl: 網(wǎng)絡(luò)請(qǐng)求, 相關(guān)的還有 traceroute, dig等 -
find: 文件查找 -
grep/zgrep/zcat: 查看日志的時(shí)候用 -
awk: 這個(gè)本身就很強(qiáng)大了,具體編程語法不用太掌握但可以了解一些基本的用法,幫助你拼接一些語句。比如石頭常用來批量拼接一些 SQL 語句。 -
sed: 文本替換,還有 tr,注意 sed 的語法 Mac 和 一般 Linux 還有些不一樣( 比如原文替換的時(shí)候 mac 里需要用參數(shù)-i ""), 比如之前石頭遷移 wordpress 到 jekyll[22] 上的時(shí)候需要將一些鏈接整體替換成新的路徑。 -
cut: 按列取數(shù)據(jù), awk也可以 -
sort: 這個(gè)就不多說了 -
uniq: 一般和 sort一塊用,只能去重相鄰的行 -
diff: 比較文件,類似的還有 comm(輸出3列,分別是: 只在文件1, 只在文件2 和兩個(gè)文件都在的行) -
paste: 兩個(gè)文件按列拼接 -
od: 以16/8/2進(jìn)制查看文件 -
wc: 統(tǒng)計(jì)文件字節(jié)數(shù)/字?jǐn)?shù)/行數(shù)
結(jié)合這些命令可能就能完成某些復(fù)雜的功能,舉個(gè)例子:
如線上的web 訪問日志會(huì)記錄 請(qǐng)求時(shí)間,請(qǐng)求路徑,參數(shù) 等等。現(xiàn)在需要統(tǒng)計(jì)當(dāng)天請(qǐng)求路徑為 A,排名前10的參數(shù),就可以 grep 路徑A | cut 取出想要的數(shù)據(jù)列 | sort | uniq 之類的。
或者比如統(tǒng)計(jì) http 404 請(qǐng)求最多的10個(gè)路徑。再比如,隨機(jī)生成3個(gè)長度為8包含字母數(shù)字的字符串(偶爾會(huì)用到,比如各種生產(chǎn) secret key 的時(shí)候),直接用如下命令即可
? _includes git:(source) ? cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | head -n 3 | cut -c 1-8
MaL6nEmZ
00m2Ub19
rsc4AOQm
石頭之前寫過一篇綜合應(yīng)用,就是用 shell 腳本來完成一些統(tǒng)計(jì)功能。文章在這里"大數(shù)據(jù)"分析首批北京積分落戶同學(xué),文中介紹了如何根據(jù)一個(gè) json 文件如何快速統(tǒng)計(jì)取得戶口名額最多的top10公司,獲取取得戶口名額的人中姓氏最多的等等。
其他的可能較少用,但一旦用,能省不少時(shí)間。網(wǎng)上也有一些 online 的工具,但哪有這個(gè)快準(zhǔn)狠。
-
openssl sha1/aes-256-ecb/des/base64 等等: 比如經(jīng)常要和其他服務(wù)聯(lián)調(diào),有驗(yàn)證簽名等,就可以臨時(shí)用 shell 寫個(gè)腳本,驗(yàn)證一下看看 API 的返回值和效果。 -
md5/base64: 常見的 md5,base64 編碼。 -
sips: scriptable image processing system比如批量處理圖片大小,壓縮等等。
后記
公眾號(hào)不能有外鏈,文中上述引用鏈接,都附在后文的參考資料中了,大家可以按需訪問。
安排個(gè) “一鍵三連”(點(diǎn)贊、在看、分享)如何?? 這將是我持續(xù)輸出優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力。

參考資料
Mac 官網(wǎng): https://support.apple.com/zh-cn/HT201236
[2]brew: http://brew.sh/
[3]brew-cask: https://caskroom.github.io/
[4]iTerm2官網(wǎng): http://www.iterm2.com/features.html
[5]oh my zsh: http://ohmyz.sh/
[6]sublime官網(wǎng): http://www.sublimetext.com/
[7]ref vimconfigs: https://github.com/tl3shi/vimconfigs.git
[8]NERDTree: https://github.com/scrooloose/nerdtree.git
[9]YouCompleteMe: https://github.com/Valloric/YouCompleteMe
[10]快速搜索文件 ctrlp: https://github.com/ctrlpvim/ctrlp.vim
[11]minibufexpl.vim github src: https://github.com/fholgado/minibufexpl.vim.git
[12]conque-term github src: https://github.com/tl3shi/conque-term.git
[13]ag github src: https://github.com/rking/ag.vim.git
[14]tagbar github src: https://github.com/majutsushi/tagbar.git
[15]vim-surround ref: http://zuyunfei.com/2013/04/17/killer-plugin-of-vim-surround/
[16]vim-easymotion github src: https://github.com/easymotion/vim-easymotion.git
[17]vim-easymotion ref: http://www.wklken.me/posts/2015/06/07/vim-plugin-easymotion.html
[18]vim-powerline github src: https://github.com/Lokaltog/vim-powerline.git
[19]vim-indent-guides github src: https://github.com/nathanaelkane/vim-indent-guides
[20]將你的 Vim 打造成輕巧強(qiáng)大的IDE: http://yuez.me/jiang-ni-de-vim-da-zao-cheng-qing-qiao-qiang-da-de-ide/
[21]所需即所獲:像 IDE 一樣使用 vim: https://github.com/yangyangwithgnu/use_vim_as_ide
[22]石頭遷移 wordpress 到 jekyll: https://www.tanglei.name/blog/give-up-wordpress-to-jekyll.html
各類知識(shí)點(diǎn)總結(jié)
下面的文章都有對(duì)應(yīng)的原創(chuàng)精美PDF,在持續(xù)更新中,可以來找我催更~
-
92頁的Mybatis -
129頁的多線程 -
141頁的Servlet -
158頁的JSP -
76頁的集合 -
64頁的JDBC -
105頁的數(shù)據(jù)結(jié)構(gòu)和算法 -
142頁的Spring -
58頁的過濾器和監(jiān)聽器 -
30頁的HTTP -
42頁的SpringMVC -
Hibernate -
AJAX -
Redis -
......
掃碼或者微信搜Java3y 免費(fèi)領(lǐng)取原創(chuàng)思維導(dǎo)圖、精美PDF。在公眾號(hào)回復(fù)「888」領(lǐng)取,PDF內(nèi)容純手打有任何不懂歡迎來問我。
原創(chuàng)電子書
原創(chuàng)思維導(dǎo)圖
![]() |
|




