2012年10月1日 星期一

Mac os 工作環境

隨著蘋果電腦市佔率越來越高,相信也有許多人會拿Mac來寫寫程式。這時,工作環境的設定就顯得重要,好的設定可有事半功倍的效果!

以下將介紹我的工作環境,也順便留一個筆記,以防以後買新Mac忘了怎麼設定:)

iTerm2 – 終端機替代方案

雖然Mac os內建就有終端機,但是功能上有點陽春。舉例而言,home / end 鍵在終端機下面是無效的,必須要花很多時間去做設定,才能讓內建的終端機比較接近一般的使用習慣。

所以,iTerm2是一個很優秀的解決方案,只要下載安裝後,可以就此取代內建的終端機。在使用上跟一般在Linux下的終端機沒有太大的差別,並且可以設定顏色主題,讓眼睛不這麼的疲勞。



Vim – 文字編輯器

Vi/Vim是一套在終端機下面很有名的文字編輯器,在幾乎所有的平台上都可以使用(Windows, Mac os....etc.),所以只要學一套,不管換到哪個工作環境都可以很快的建置熟悉的工作環境。

雖然不是很容易習慣如何使用,但是多加練習以後,久而久之就會內化成一種肌肉記憶,在寫程式的時,雙手幾乎不用離開鍵盤,大大增加了寫程式的效率。想當初也是有一位高手介紹下,才開始習慣使用vim來寫程式,不過好東西真的就是一用就上癮。

Vim強大的地方不只是他獨特的模式切換設計,更重要的是他支援許多好用的Plug-in,這邊著重在介紹幾種我常用的Plug-in以及設定。

關於Vim的基本操作,可以參考鳥哥的介紹,或是這個blog有非常詳細的影音教學。

Plug-in:

vim-pathogen

Vim的套件管理工具,可以方便我們安裝與管理所有的套件。

snipmate

相當好用的自動補完套件,只要打入開頭的幾個字,接著按下tab鍵,就可以產生完整的程式碼。更重要的是,他支援自訂snippets,隨時可以擴充自己需要的字。

NERDTree

讓vim可以用樹狀結構顯示資料夾下面的檔案,如此一來就可以快速切換檔案。


以上是我覺得對我最重要的三個套件。對長時間在電腦前面寫程式的人而言,整個顏色的配置就顯得很重要,畢竟長時間的使用對眼睛很傷,好的顏色配置會減少眼睛的疲勞感。以下是我所喜歡的顏色主題。

註:直到我打到這邊時,我才發現剛剛上述連結的那個blog裡面有非常詳盡的影音解說,總共有1~3系列,其中系列三就是在講Plug-in,裡面也包括了上述的三個Plug-in,所以我就不野人獻曝了,請大家直接看blog的介紹以及使用方法!

10/10/2012 Updated:
新增幾個Plugin



Color Scheme – 舒服的顏色設定

在vim或是iTerm2底下都可以做外觀的設定(顏色、字型、透明度等等),以下是我喜歡的幾個配置設定。

目前我個人最喜歡的是一款叫Solarized的顏色主題,這款主題專門針對眼睛的舒適度而設計,運用了一些科學的方法找出適合白天以及夜晚的顏色配置,更棒的一點是他已經寫好很多設定檔去支援許許多多的程式,而vim與iTerm2正是其中之二(Xcode也有)。

支援的列表:


官網下載回來解壓縮,會有一個solarized的資料夾,裡面含有所有支援的設定檔。

iTerm2底下的設定方式:

Preferences > Profile > Colors > Load Presets...
接著選擇 solarized > iterm2-colors-solarized > Solarized Dark.itermcolors
(一般而言,Dark適合晚上、Light適合白天)

套用以後,應該可以立即看到變化。

Vim底下的設定方式:

在vim底下設定也相當便利,只要利用上述的vim-pathogen套件管理工具,就可以輕鬆安裝主題。

首先將solarized底下的vim-colors-solarized資料夾複製到~/.vim/bundle底下(若是沒有資料夾請自行建立)

接著編輯~/.vimrc檔案加入以下設定:

儲存後應該可以馬上看到效果。

這邊我其實很推薦大家用一種字型叫做"Inconsolata",因為我覺得他邊緣的銳利度做的很好,換句話說,字母顯示的很清楚。




Development Kits – 安裝開發套件

這邊要介紹一些用Mac os寫程式時會用到的套件,這部份每個人不盡相同,我主要開發的語言著重在Python, C/C++, Java/Javascript, HTML / CSS,所以這邊會以這些語言為主。

需要安裝的會有:
  • 套件管理程式
    • 方便安裝一些常用的套件(wget, cmake...etc.)
  • Xcode
    • 最重要!包括GCC跟Javac都在這裡面。
  • Python:
    • 由於從Lion開始,內建的python終於升到2.7+了,所以就不用另外安裝。
    • 一些好用的Python libraries(以下是自己會用到的)
      • iPython
      • easy_install / pip
      • virtualenv
      • Numpy / Scipy


套件管理程式:

在Mac os裡,並沒有像Linux主流的distributions有內建套件管理程式(像是apt-get / yum),所以有熱心的網友幫Mac os做了非官方的套件管理程式。

以下是常見的幾個:
  • MacPorts: 歷史悠久,但我個人不是很推薦,社群有點疏於管理。
  • Homebrew: 這套我覺得蠻好用的,功能簡單但是該有的都有,安裝也很方便。
  • Fink: 算是蠻新的套件管理程式,好處在於他可以做32/64-bit以及stable/develop版本的區分。
綜合而言,我會比較推薦Homebrew,如果有人知道更好的Package Management,麻煩請告訴我一聲:)



Xcode:

安裝請直接到App Store上搜尋"Xcode"即可一鍵安裝。

這邊要特別注意的是安裝完Xcode後,要記得在裡面另外安裝Command Line Tools,這樣才可以在終端機裡面運用gcc或是javac這些指令。

安裝Command Line Tools也很簡單,到Preference > Download,在Command Line Tools右邊點選Install即可。 



Python:

首先要先安裝Python專用的套件管理程式,雖然easy_install跟pip都算主流,但我比較推薦pip,功能比較齊全。

首先下載pip的安裝檔,解壓縮以後執行
sudo python setup.py install
完成以後應該就可以直接使用pip指令來安裝我們要的Python libraries 。
sudo pip install ipython virtualenv numpy scipy

稍微介紹一下這些libraries,iPython是好用的runtime interpreter,並且在debug會常用到。
我常用的用法是:
from IPython import embed 
接著就在你想要的地方插入embed(),等同於設中斷點的意思。

virtualenv是一套可以讓我們建立獨立的Python運行環境,換句話說,就是沒有任何libraries安裝在裡面,在建立專案時非常好用,可以清楚的知道所有套件依賴的關係。

numpy / scipy 可以想像成python版的matlab,在做一些科學上的運算相當好用,強烈推薦使用,運算速度上會快不少。





Misc – 其他小細節的設定

Proxi

首先介紹一下如何重新配對鍵盤的對應快捷鍵。

由於我比較龜毛,長時間的coding下,Apple原廠的藍牙鍵盤用不太習慣,所以買了其他的鍵盤來用,基本使用上是完全沒有問題的。但是,原廠F1 - F12的快捷鍵配對就完全失效了。我個人蠻喜歡也蠻習慣那些快捷鍵的,例如調整亮度以及聲音等等。

關於重新對應F1 - F12快捷鍵其實有相當多解法,這邊推薦大家其中一種,使用Proxi這個小程式,主要的理由是這個程式可以完整的對應原本內建的功能(調整亮度、聲音等等),換句話說,原本調整時,在畫面中間顯示的那精美的小正方形圖示也會顯示。

這個程式其實有很多功能,可以自訂執行的任務以及觸發的條件。所以我們的目標就是設定某個按鍵作為Trigger,觸發相對應的功能(調整亮度...etc.)。




























使用方法:

  1. 先在最左邊的TRIGGERS欄位點選下面的齒輪: Insert Trigger > Hotkey Monitor
  2. 在最右邊設定對應的HotKey (圖例為F1)
  3. 接著在中間的TASKS欄位點選下面的齒輪: Insert Task > Key Press
  4. 在最右邊的Key Press下拉式選單選擇對應的功能


10/05/2012 Update:

Alfred

補充一個小工具,以往在linux下都可以藉由super + F2之類的快捷鍵叫出執行的視窗,藉此可以快速的打開程式而不用透過滑鼠,這個對我來說是非常方便的小功能。

在Mac os上,可以藉由一套叫Alfred的軟體達成。









除了可以執行程式外,還可以直接搜尋google。









是一套相當好用的小程式。


12/21/2012 Update:

Zooom

之前忘記分享這套好用的小程式,Zooom主要的目的是可以方便的拖曳視窗,點選視窗的任意位置進行拖曳按住ALT(或是自訂)之後就可以點選視窗的任意位置進行拖曳,就跟Fedora的使用習慣幾乎一模一樣,也可以設定兩個鍵組合後拖曳滑鼠鼠標來改變視窗大小(等同於在Fedora上的ALT+中鍵一樣),特別推薦給有雙螢幕的人,在移動視窗上相當便利。


======================================================================


最近在學新的Text Editor – Sublime Text 2,非常優秀的編輯器,幾乎承襲了所有vim的功能並加以強化。原本vim的使用習慣都可以完整移植!

搞不好之後會分享一篇有關Sublime Text 2

沒有留言:

張貼留言