顯示具有 OS::Linux 標籤的文章。 顯示所有文章
顯示具有 OS::Linux 標籤的文章。 顯示所有文章

2009年2月6日 星期五

嘗試使用Ubuntu 8.10

最近在我的MacBook上的Leopard,越來越顯得老態龍鍾,記憶體想加也不能加,因此若要透過VMware來開啟其他作業系統,有時候還真的顯得有點遲鈍,最近老是覺得在VMware Fusion內的Fedora 10,速度感讓我有點受不了。這幾天嘗試安裝了Ubuntu 8.10,似乎執行Kdevelop的速度比在Fedora 10內快,以下筆記將紀錄該修改的東西

系統中文編碼改為Big5編碼
修改檔案: /var/lib/locales/supported.d/zh

zh_TW.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.BIG5 BIG5
執行指令:
# sudo locale-gen

vim預設中文編碼環境改為Big5
修改檔案:~/.vimrc
set enc=big5

[+/-] Read More...

2008年10月12日 星期日

vim使用技巧備忘錄

標籤堆疊

  • 透過「ESC」鍵切換到命令模式,標籤堆疊必須在命令模式啟動。
  • 建立標籤index:「:!ctags *.[hc]*」
  • 使用標籤功能:
  1. :tag 標籤名稱:把要切換的函式名稱作為標籤。
  2. :tn:跳到下一個標籤
  3. :tp:跳到前一個標籤
  4. :tr:跳到第一個標籤
  5. :tl:跳到最後一個標籤
  6. :tags:顯示所有標籤的內容
  7. :ts 標籤名稱:選擇的方式跳到某個標籤
  8. :sts 標籤名稱:選擇的方式跳到某個標籤(開啟多重視窗)
  9. ctrl-t:跳回原本的位置
延伸閱讀:http://greenisland.csie.nctu.edu.tw/wp/2005/08/28/299/

編譯
  • 透過「ESC」鍵切換到命令模式,打make指令
  • 若有錯誤訊息,會自動跳到第
  1. :cn:跳到下一個編譯錯誤
  2. :cp:跳到前一個編譯錯誤
  3. :cr:跳到第一個編譯錯誤
  4. :cl:跳到最後一個編譯錯誤
多重視窗
  1. :spilt 檔名:不加檔名則是開啟同一個檔案
  2. ctrl-w + 上下方向鍵:切換不同的視窗

[+/-] Read More...

2008年10月10日 星期五

設定vim的indent功能

我在Linux上寫程式的環境有兩種,一個是透過網路用ssh的方式連上主機,接著再打開vim來編寫。另一種就是在我的MB上透過VMware Fusion來,開啟一個附屬Linux,在這個Linux上以Kdevelop來編撰(這不是我今天要討論)。
第一種方式對我而言,若在有網路但無電源環境下,是十分省電,且效率又高的,但是該軟體本身相較於使用其他的GUI IDE,有兩項缺少的功能是讓我覺得最麻煩的,詳列如下:

  1. indent功能:每次都得自己手動對齊,對到最後我都覺得很煩(本文的解決方案)。
  2. Automatic code completion:依據檔案中使用過的變數,提供建議的變數清單,讓使用者可以用選的,而無需每個字母都自己打(感覺上不會有solution for這一個項目)。

今天我找到方法可以修改vim環境,使得我的vim會自動針對C或C++語言來做indent縮排,新增或修改以下檔案 。
  • vim ~/.vimrc ( vi ~/.vimrc 亦可),內容如下:
set nowrap
set nocp incsearch
set shiftwidth=4
set cinoptions=:0,p0,t0
set cinwords=if,else,while,do,for,switch,case
set formatoptions=tcqr
set cindent
syntax on
  • 儲存即完成設定
參考:

[+/-] Read More...

2007年11月30日 星期五

比較gFortran在Mac上與在Linux上

目前我在我的MacBook上安裝了兩套gfortran, 安裝細節分別是以Mac OS X 10.5.1 Leopard + gfortran (詳閱)以及透過VMware Fusion 1.1所安裝的Fedora Core 6 Linux + gfortran兩種形式, 今天要來比較差異


程式碼: 採用最近寫的「水文地質參數產生器」, 實質意義不重要, 程式碼就是開個很大的矩陣, 接著寫幾個轉換公式, 將矩陣內每個位置填上數值, 接著寫出到檔案內, 程式碼行數不多(179行), 也沒有呼叫什麼函數~~~

實驗組: 純粹Mac OS上的gfortran
檔案大小: 105MB(是的, 你沒看錯, 的確是105MB)
執行時間: 11 sec

對照組: VMware Fusion內的虛擬Linux
檔案大小: 22KB
執行時間: 6 sec

分析: 這是一個詭異的現象, 我完全沒辦法理解, 為甚麼同樣的程式碼大小居然可以差這麼多, 我是猜測gfortran for Mac版本根本沒有寫好(或是調整好), 搞不好很多東西都搞成inline的形式, 居然跑起來的效能差這麼多


[+/-] Read More...

2007年11月23日 星期五

版本控制系統(svn) - client版本

subversion(svn)是我近年來使用得最密集的功能之一, 透過這個系統可以讓我跟研究室的成員進行多人開發,因此跟其他人之間不再需要去注意文件版本與同步的問題,因此特別寫下這個筆記...

checkout
說明:這是使用svn系統的第一步驟, 透過這個步驟可以從檔案庫取回檔案副本。
svn checkout svn+ssh://[username]@[host id]/[repos path]/
svn checkout file:///[repos path]/


update
說明:當每次開始要修改前,先透過這個指令取回最新版本的檔案。下面的兩個用法,第一種用法會把所在位置的目錄,以及其下的子目錄所有檔案,一併更新。第二種用法只是單純把某個特定檔案,或是某個特定目錄更新。
svn update
svn update [filename]

commit
說明:當這一次完成修改之後,使用這個指令來將修改送回檔案庫記錄,成為一個新的版本。
svn commit -m "[commit command]"

status
說明:查詢檔案狀態。可以在副本的任何一個目錄內執行這個指令,以下兩種用法也如同svn update一樣,所以我不再敘述一遍。
svn status
svn status [filename]

M filename1 (已修改檔案)
? filename2 (尚未加入svn系統管理)
A filename3 (已經透過svn add加入svn系統,但是尚未以svn commit送至檔案庫)
D filename4 (
將已納入管理的檔案,以svn delete刪除,但是尚未以svn commit送至檔案庫)

add
說明: 將尚未納入管理的檔案,透過svn add將檔案納入管理,從此檔案庫就會多出這個檔案
svn add [filename]

delete
說明: 將已納入管理的檔案,透過這個指令來刪除這個檔案(備註:若直接用rm的方式來刪除檔案,他會被認為檔案遺失,所以下一次update時,會再次取回),從此檔案庫就不再有這個檔案的存在。當然,透過svn update [先前版本],還是可以把這個檔案取回。另外,若這個檔案有修改過,系統不會允許直接刪除,必須加上--force的強制指令,才能刪除掉這個檔案。
svn delete [filename]
svn delete [filename] --force

[+/-] Read More...

2007年9月1日 星期六

新世代作業系統大戰



微軟之前狂打Vista的廣告, 廣告中特別著重Vista的動畫效果, 讓我們來看看最新世代的作業系統動畫效果~~~

Vista Vs. Ubuntu Beryl的效果, 免費.自由的Linux依舊不遜色~~~



[+/-] Read More...