【在 Mac 的 shell 和 vi 打中文】

在 Mac 上, 我強烈建議使用 UTF-8 編碼, 也就是 unicode, 而不用 Big5。這有一個好處, 就是你可以看到 (或是輕鬆看到) 中文檔案名稱。

你可以使用 iTerm 或其他終端機程式, 把編碼設為 UTF-8, 然後... 你會發現... 老師騙人!因為你打入 ls, 看到你的中文檔名居然是 ????...

原來, 要看到中文檔名, 你要加上 -v 參數, 也就是

代碼:

ls -v


現在中文看得到了。正常人不會想每次自己打 ls -v, 最好 ls 直接給我們看中文檔名。要做到這點也很容易, 就是做個「替身」:

代碼:

alias ls='ls -GFv'


從此打入 ls, 事實上就是 ls -GFv。這裡 -G 是變成有不同顏色, -F 是在檔案夾後面加上 "/", 以和一般檔名區別。

正常人不會每次進入終端機, 先自己打入那一串指令。我們可以要求電腦每次進入 bash, 都先執行那段指令嗎? 自然可以, 就是把上面那段加入 .bash_profile

你可以在你家目錄下, 打入

代碼:

vi .bash_profile


如果已經存在沒關係, 加上一行; 如果沒有也好, 就建一個新檔。

這是 Unix 的特性: 很多程式都有這種設定檔, 讓你去變更一些設定。這些設定檔又只需要像 vi 的文字編輯器去處理, 非常方便!

要正確打中文, 你需要在 .inputrc 加入

代碼:

set convert-meta off
set meta-flag on
set output-meta on


不用管他是做什麼的。反正做好以後, exit, 再進入 shell, 此時世界已大不同。你用 ls, 會出現多彩的美麗世界, 還有中文檔名。如果你有一個中文檔案夾, 你還可以

代碼:

cd 中文檔案夾名稱


進入那個檔案夾!這實在有點方便得過份。不過建議你做網頁什麼不要用中文檔名, 因為每台機器處理方式不同, 時常會出問題。

最後是 Vim, 要在 Mac 的 Vim 中打入 unicode 編碼的中文, 只要在 .vimrc (猜出來了嗎, 就是 Vim 的設定檔) 加入

代碼:

set enc=utf8


以後, 使用 shell, 中文也可通。

不過, 不久之後你就會發現有個問題。這個問題就是, 我們在網路上找到, 或是自己以前寫的, 用 Big5 編碼的文章, 此時該如何是好? 這時你用我們設好的 Vim 打開這篇文章, 會出現亂碼 -- 因為它本來就不是 unicode 的文章。這時不要慌, 只要輕輕鬆鬆進入指令列, 打入

代碼:

:e ++enc=big5


然後這中文就神奇的出現了!這是 Vim 支援多種編碼的功力!至此, 你又可以開使或看或編 Big5 的中文檔案。


【紀錄一些 iTerm 的密辛】

        * 在 iTerm 中,正確的顯示中文檔案、目錄等。

       1. 將 iTerm 編碼設定為『UTF-8』編碼。
       2. alias ls=」ls -Gv」

        * 在 iTerm 中,可以輸入中文。

       1. vi .inputrc
       2. set convert-meta off
          set meta-flag on
          set output-meta on

        * 在 Vim 中,打 Unicode 編碼的中文。

       1. vi .vimrc
       2. set enc=utf8

        * 延續上一個,但更酷的。

       1. vi .vimrc
       2. set fileencodings=utf-8,big5
          set encoding=utf8
          set tenc=utf8


【vim config for drupal coding, with UTF-8】

set backupdir=~
set enc=utf8
set fileencodings=utf-8,big5,euc-jp,gbk,euc-kr,utf-bom,iso8859-1
set encoding=utf8
set tenc=utf8
set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent

if has("autocmd")
"Drupal *.module files."
augroup module
autocmd BufRead *.module set filetype=php
autocmd BufRead *.install set filetype=php
augroup END
endif



arrow
arrow
    全站熱搜

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()