程序員與Mac

1、熟記快捷鍵:

cmd+c, cmd+v,cmd+a,這幾個大家都知道,不過盡量別用在代碼拷貝上。

cmd+delete:刪除當(dāng)前行。選中文件的時候直接刪除文件。

shift+方向鍵:這個在選擇文本的時候很有用,可以選擇單個字符或者整行,多使用才能找到手感。

cmd+shift+左右方向鍵:這個可以快速選擇當(dāng)前行,用的也很多。

ctrl+a(cmd+左方向鍵):跑到當(dāng)前行的最前端,使用頻次很高。

ctrl+e(cmd+右方向鍵):跑到當(dāng)前行的最尾端,使用頻次很高。

cmd+tab:切換應(yīng)用,這是大部分人用的最多的方式,卻不是最高效的方式,后面會介紹其他方式。

cmd+{、}: 切換同一應(yīng)用的窗口,這個非常實用。

cmd+w:關(guān)閉當(dāng)前窗口,后面會介紹其他方式,同樣高效。

cmd+q:關(guān)閉當(dāng)前應(yīng)用。

cmd+n:新建窗口,比如打開新的Finder窗口,配合cmd+w很實用。

cmd+t:新建tab,支持tab模式的應(yīng)用一般都支持這個快捷鍵。比如在safari,firefox,chrome下新建tab。

cmd+i: 顯示當(dāng)前文件的信息,查看文件大小,圖片寬高的時候有用。

選中文件按空格預(yù)覽:預(yù)覽圖片或者pdf文件時有用。配合方向鍵可以快速預(yù)覽多張圖片。

短按電源鍵:可以關(guān)閉屏幕,但不能太短,多按幾次就有手感了。

2、常用工具:

本節(jié)介紹一些常用的,跟開發(fā)沒有直接關(guān)系的第三方應(yīng)用及其設(shè)置。

Homebrew

包管理工具,官方稱之為The missing package manager for OS X。

安裝步驟:先打開 Terminal 應(yīng)用,輸入:

1ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

有了 brew 以后,要下載工具,比如 MySQL、Gradle、Maven、Node.js 等工具,就不需要去網(wǎng)上下載了,只要一行命令就能搞定:

1brew install mysql gradle maven node

PS:安裝 brew 的時候會自動下載和安裝 Apple 的 Command Line Tools。

brew 的替代品有MacPorts,現(xiàn)在基本沒人用它。

Homebrew Cask

brew-cask 允許你使用命令行安裝 OS X 應(yīng)用。比如你可以這樣安裝 Chrome:brew cask install google-chrome。還有 Evernote、Skype、Sublime Text、VirtualBox 等都可以用 brew-cask 安裝。

brew-cask 是社區(qū)驅(qū)動的,如果你發(fā)現(xiàn) brew-cask 上的應(yīng)用不是最新版本,或者缺少你某個應(yīng)用,你可以自己提交 pull request。

安裝:

1brew install caskroom/cask/brew-cask

應(yīng)用也可以通過 App Store 安裝,而且有些應(yīng)用只能通過 App Store 安裝,比如 Xcode 等一些 Apple 的應(yīng)用。App Store 沒有對應(yīng)的命令行工具,還需要 Apple ID。倒是更新起來很方便。

幾乎所有常用的應(yīng)用都可以通過 brew-cask 安裝,而且是從應(yīng)用的官網(wǎng)上下載,所以你要安裝新的應(yīng)用時,建議用 brew-cask 安裝。如果你不知道應(yīng)用在 brew-cask 中的 ID,可以先用brew cask search命令搜索。

iTerm2

iTerm2 是最常用的終端應(yīng)用,是 Terminal 應(yīng)用的替代品。提供了諸如Split Panes等一群實用特性。它默認(rèn)的黑色背景讓我毫不猶豫的拋棄了 Terminal。

安裝:

1brew cask install iterm2

感謝 brew-cask,我們可以通過命令行自動安裝 iTerm2 了。

在終端里,除了可以用?E等快捷鍵(詳見其他快捷鍵)之外,還可以使用?B、?F等快捷鍵(具體可以參考這里)。前提是這樣設(shè)置一下:

選擇Iterm菜單 >Preferences>Profiles,選擇你在使用的 Profile(默認(rèn)是Default),在Keys標(biāo)簽頁中把Left option (?) key acts as和Right option (?) key acts as都設(shè)置成+ESC。

在打開新的窗口/標(biāo)簽頁的時候,默認(rèn)情況下新窗口總是 HOME 目錄,還需要我每次敲命令才能進(jìn)入工作目錄。如果想要這個新窗口在打開的時候就自動進(jìn)入工作目錄,需要如下設(shè)置:

選擇Iterm菜單 >Preferences>Profiles,選擇你在使用的 Profile(默認(rèn)是Default),在General標(biāo)簽頁中的Working Directory部分中選擇Reuse previous seesion's directory。

至此,Terminal 應(yīng)用已經(jīng)出色的完成了其歷史使命。后面就交給 iTerm2 啦。

Oh My Zsh

默認(rèn)的 Bash 是黑白的,沒有色彩。而 Oh My Zsh 可以帶你進(jìn)入彩色時代。Oh My Zsh 同時提供一套插件和工具,可以簡化命令行操作。后面我們會看到很多介紹,你會看到我愛死這家伙了。

安裝:

Shell

1sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

目前我使用的插件有:git z sublime history rbenv bundler rake

Oh My Zsh 使用了 Z shell(zsh),一個和 Bash 相似的 Shell,而非 Bash。

在 Z shell 中,~/.zshrc是最重要的配置文件。Oh My Zsh 在安裝的時候會把當(dāng)前環(huán)境的$PATH寫入~/.zshrc中。這并不是我期望的行為,因為使用了 brew,我們基本不再需要去定制$PATH,而 Oh My Zsh 提供的默認(rèn)$PATH值$HOME/bin:/usr/local/bin:$PATH是非常合適的一個值,它把$HOME/bin加入了$PATH,可以讓我們把自己用的腳本放到$HOME/bin下。

所以建議把~/.zshrc重置:

1cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

Oh My Zsh 還有很多有價值的插件。

替代品有Oh My Fish,使用了Fishshell作為基礎(chǔ)。

Git 常用別名

幾乎每個人都會使用一些方法比如 Git 別名來提高效率,幾乎所有人都會把使用git st來代替git status。然而這需要手動設(shè)置,每個人也都不完全一樣。

Oh My Zsh 提供了一套系統(tǒng)別名(alias),來達(dá)到相同的功能。比如gst作為git status的別名。而且 Git 插件是 Oh My Zsh 默認(rèn)啟用的,相當(dāng)于你使用了 Oh My Zsh,你就擁有了一套高效率的別名,而且還是全球通用的。是不是棒棒噠?下面是一些我常用的別名:

AliasCommand

gapagit add --patch

gc!git commit -v --amend

gclgit clone --recursive

gcleangit reset --hard && git clean -dfx

gcmgit checkout master

gcmsggit commit -m

gcogit checkout

gdgit diff

gdcagit diff --cached

glolagit log --graph --pretty = format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all

gpgit push

grbcgit rebase --continue

gstgit status

gupgit pull --rebase

gwipgit add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit -m "--wip--"

完整列表請參考:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git

Scroll Reverser

當(dāng)你在瀏覽一個很長的網(wǎng)頁時,你看完了當(dāng)前顯示的內(nèi)容,想要看后續(xù)的內(nèi)容,你可以在 Trackpad 上雙指上滑,或者鼠標(biāo)滾輪向上滾動。這是被稱作“自然”的滾動方向。

然而在 Windows 里鼠標(biāo)滾動的行為是相反的:鼠標(biāo)滾輪向下滾動才會讓瀏覽器顯示后續(xù)的內(nèi)容,向上滾動會達(dá)到頁面的頂部。你可以在 OS X 的系統(tǒng)偏好設(shè)置里修改(選擇System Preferences>Trackpad,在Scroll & Zoom標(biāo)簽頁中不選中Scroll direction: natural),但是這樣會同時改變鼠標(biāo)滾輪的方向和 Trackpad 的方向。

要想只改變鼠標(biāo)滾輪的方向,而保持 Trackpad 依舊是“自然”的,我們需要 Scroll Reverser:

1brew cask install scroll-reverser

PS:這貨會讓三指點(diǎn)擊失效

ShiftIt

原生 OS X 下只能手動調(diào)整窗口大小,所以我們需要窗口管理工具。我用過很多窗口管理工具,可惜大部分工具都存在快捷鍵沖突的問題(對我來說主要是 IntelliJ IDEA)。ShiftIt 是少見的沒有沖突的窗口管理工具:

1brew cask install shiftit

PS:ShiftIt的舊版本需要安裝 X11,最新版本已經(jīng)修正了這個問題。

替代者有 SizeUp,主要快捷鍵和 ShiftIt 相同。

當(dāng)然如果喜歡 hacking,Slate是個不錯的 hackable 的窗口管理工具。配置可以參照http://thume.ca/howto/2012/11/19/using-slate/

Sublime Text 2

安裝:

1brew cask install sublime-text

在命令行中指定使用 Sublime Text 打開某文件,是一個非常常用的功能,一般我們會按照OS X Command Line中所說執(zhí)行l(wèi)n -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl來增加subl鏈接。但是如果你用 brew-cask 安裝的話,恭喜你,你不需要運(yùn)行這個命令,因為 brew-cask 自動幫你做了這件事情。而且你卸載 Sublime Text 的時候 brew-cask 會自動刪掉這個鏈接。

同時 Oh My Zsh 也提供了 Sublime Text 插件,叫做sublime。參考:https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/sublime,這個插件和通過 brew-cask 安裝的 Sublime Text 完美兼容。

替代品有 TextMate,Sublime Text 3 等。

MacDown

MacDown 是 Markdown 編輯器。由于 Mou 一直不支持代碼高亮,我就轉(zhuǎn)向了 MacDown。完美支持GFM。

我特別喜歡Markdown,我用 Makdown 來寫文章(包括本文),寫幻燈片(reveal.js)。Markdown 可以讓我專注于內(nèi)容本身,而無需花精力在排版和樣式上。

安裝:

1brew cask install macdown

z

在打開終端后,你是怎么進(jìn)入項目的工作目錄?是cd xxx,?R還是用別名?

z工具可以幫你快速進(jìn)入目錄。比如在我的 Mac 上運(yùn)行z cask就會進(jìn)入/usr/local/Library/Taps/caskroom/homebrew-cask/Casks目錄。

這貨的安裝非常方便,甚至都不需要下載任何東西,因為它已經(jīng)整合在了 Oh My Zsh 中。編輯~/.zshrc文件,在plugins=(git)這行中加上z變成plugins=(git z),然后運(yùn)行source ~/.zshrc重新加載配置文件,就可以使用 z 了。

替代品有 autojump。autojump 需要使用 brew 安裝。

Vimium

Vimium 是一個 Google Chrome 擴(kuò)展,讓你可以純鍵盤操作 Chrome,把你的 Chrome 變成“黑客的瀏覽器”。

安裝方法請參考官方網(wǎng)站。

其他瀏覽器也有類似的工具,比如 FireFox 的KeySnail

LastPass

LastPass 是管理密碼的工具,支持二次驗證,提供所有瀏覽器插件以及 Mac 桌面版本。

最重要的是,它提供命令行的版本,可以直接通過 brew 安裝

1brew install lastpass-cli --with-pinentry

之后,只需要登陸:

1lpass login you@email.com

就可以拷貝密碼或者集成到其他命令中了:

1lpass show --password gmail.com -c

SourceTree

SourceTree 是 Atlassian 公司出品的一款優(yōu)秀的 Git 圖形化客戶端。如果你發(fā)現(xiàn)命令行無法滿足你的要求,可以試試 SourceTree。

安裝:

1brew cask install sourcetree

用 brew-cask 安裝會自動增加命令行工具stree到$PATH里。在命令行中輸入stree可以快速用 SourceTree 打開當(dāng)前 Git 倉庫。詳細(xì)用法請參見stree --help。

3. 開發(fā)工具

Java

現(xiàn)在 OS X 都不會自帶 JDK 了,所以進(jìn)行 Java 開發(fā)的話,需要下載 JDK。在 brew-cask 之前,我們需要從https://developer.apple.com/downloads/或者 Oracle 網(wǎng)站上下載。還有更麻煩的--卸載 JDK 和升級 JDK。

JDK 安裝文件是 pkg 格式,卸載和.app不一樣,且沒有自動卸載方式。

而 brew-cask 提供了自動安裝和卸載功能,能夠自動從官網(wǎng)上下載并安裝 JDK 8。

Shell

1brew cask install java

如果你需要安裝 JDK 7 或者 JDK 6,可以使用homebrew-cask-versions:

Shell

brew tap caskroom/versions

brew cask install java6

在 OS X 上,你可以同時安裝多個版本的 JDK。你可以通過命令/usr/libexec/java_home -V來查看安裝了哪幾個 JDK。

那問題來了,當(dāng)你運(yùn)行java或者 Java 程序時使用的是哪個 JDK 呢?在 OS X 下,java也就是/usr/bin/java在默認(rèn)情況下指向的是已經(jīng)安裝的最新版本。但是你可以設(shè)置環(huán)境變量JAVA_HOME來更改其指向:

Shell

$ java -version

java version "1.8.0_60"

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

$ JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home java -version

java version "1.6.0_65"

Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)

Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)

其中JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home可以用JAVA_HOME=/usr/libexec/java_home -v 1.6這種更加通用的方式代替。

jEnv

也可以使用 jEnv 來管理不同版本的 JDK,這個工具跟rbenv類似,通過當(dāng)前目錄下的.java-version來決定使用哪個 JDK。jEnv 也可以用 brew 安裝。不過要使用 jEnv 要有幾個問題:

需要手動把eval "$(jenv init -)"加入 profile,沒有 Oh My Zsh 插件。這點(diǎn)是我非常反感的??梢园裡val "$(jenv init -)"加入~/.zlogin,這樣可以避免修改~/.zshrc。

需要手動添加 JDK,不會自動采集系統(tǒng) JDK。跟 Ruby 不同,OS X 已經(jīng)提供/usr/libexec/java_home工具來管理安裝的 JDK。

需要jenv rehash。這個是跟 rbenv 學(xué)的。

所以我建議不要使用 jEnv。

Java[OCD]

作為一個強(qiáng)迫癥患者,每當(dāng)我看到 Java 的錯誤寫法就想糾正過來。

當(dāng)指編程語言時,Java 的正確寫法是首字母大寫,其余小寫。其他寫法比如JAVA、java都是不對的。

在其他一些地方會使用小寫的java:

java命令

原文件Main.java

包名java.lang

只有在全大寫的標(biāo)題里使用JAVA或者環(huán)境變量JAVA_HOME。

IntelliJ IDEA

Java 開發(fā)必備工具 IntelliJ IDEA??梢园惭b Ultimate Edition:

1brew cask install intellij-idea

也可以安裝開源免費(fèi)的 Community Edition:

1brew cask install intellij-idea-ce

IntelliJ IDEA 有幾套內(nèi)建的快捷鍵方案(Keymap)。其中適用于 OS X 的有Mac OS X和Mac OS X 10.5+兩種。區(qū)別是:

Mac OS X方案和其他平臺上的快捷鍵類似,

而Mac OS X 10.5+更加符合 OS X 常用的快捷鍵。

一個團(tuán)隊使用不同的快捷鍵會嚴(yán)重影響效率??梢杂肰iew | Quick Switch Scheme(? Back Quote)快速切換 Keymap。

如果可以選擇的話,我建議使用Mac OS X方案。因為我經(jīng)常遇到使用 Windows 的客戶,而 Windows 平臺上的快捷鍵和Mac OS X方案類似。

rbenv

人人都需要一個 Ruby 版本管理工具。rbenv 就是這樣一個輕量級工具,它可以通過 brew 安裝。

安裝:

1brew install rbenv ruby-build

然后在~/.zshrc中加上rbenv插件。否則你需要手動添加eval "$(rbenv init -)"到~/zshrc或者~/.zprofile文件里。

有時候項目會依賴一些奇怪的版本號,比如ruby-2.1.0,這個時候你需要rbenv-aliases幫忙:

1brew install rbenv-aliases

替代品有 RVM、chruby。因為 RVM 不能通過 brew 安裝,并且安裝的時候會沒有節(jié)操的修改一堆文件,所以被我早早的棄用了。chruby 也是一個輕量級工具,而且可以完美的和 Oh My Zsh 集成在一起,我看到有些生產(chǎn)環(huán)境在用它。

Ruby 常用別名

幾乎所有 Ruby 開發(fā)人員都會把bi作為bundle install的別名。Oh My Zsh 提供builder插件,這個插件提供了一套別名,比如bi、be。同時還能讓你在運(yùn)行一些常用 gem 的時候直接輸入rspec,不需要be rspec這樣了。具體包括哪些命令請參考這里。

Z shell 對于[和]符號有特殊的處理,所以在運(yùn)行rake task[parameter]的時候會報錯,你需要改成noglob rake task[parameter]。然而 Oh My Zsh 已經(jīng)看穿這一切,自帶的 rake 插件已經(jīng)解決了這個問題:brake task[parameter]。

添加插件的時候注意把rake放到bundler后面,例如這樣:

1plugins=(git z sublime history rbenv bundler rake)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容