2011年12月19日 星期一

Mac : CrossOver 擾亂了中文輸入法(TCIM)的運作

剛開始使用 MBP 裡的 Mac OS 最不習慣的應該它的倉頡輸入法,因為它和我在 Windows 上用了十幾年的倉頡輸入法不同,Mac採用的是第五代的,有不少字的拆字原則不同,而就在我準備好好習慣的時候,曾經碰到幾次很怪的狀況,怎麼輸入都不正確,嚴重的打擊了我的自信心而去找了「香草輸入法」(裡面用倉頡第三代)來安裝(後來還是將它移除了)。今天又遇到很怪的事了,有部份的字用倉頡又打不出來,更令人氣惱的是,連用注音輸入法都怪怪,居然無法選字,當我把心一橫,機器重新開機以後,它又恢復正常了。直覺的認定是輸入法的問題,在「偏好設定」中沒找到可重新啟動輸入法的地方,上網也沒找到相關的資訊。東試西試,試了半天,總算找出禍首,並有土法煉鋼的方式可以解決問題了。

首先來看看是誰在做怪,今天在發生狀況之前,除了 Mac OS 內建的程式外,我大概只有用了一個 Java 的程式和在 CrossOver 中使用 Windows 版的影像編輯軟體,而有輸入過中文的,大概應該是後者,因此,我又在 CrossOver 中使用可以輸入中文的軟體,果然又讓 Mac OS 無法正常的操作中文輸入法。這時如果「登出」後再登入,即可恢復正常。試了幾次,確定今日搞鬼的是 CrossOver。
接著,我進入終端機中試著找出和中文輸入法相關的 process ID , 並下指令讓它重新啟動,終於找到中文輸入法的關鍵程式:

  • /System/Library/Input Methods/TCIM.app/Contents/MacOS/TCIM

目前試出的方法可以解決中文輸入法不會出現關詞語或無法選字的問題,只要先進入終端機,然後執行以下指令即可:

sudo kill -HUP  ` ps ax |  grep -v grep | grep TCIM | awk '{print $1}' `

稍微簡單剖析一下上面的指令:

  • kill -HUP  pid  可以通知 process ID 是 pid 的程序重新啟動。
  • ` ...... `  是執行引號中的指令,而這裡的單引號是和毛毛蟲同一個按鍵哦!
  • 中間的導管「|」會將前一指令的結果再丟給後一個指令去處理。
  • ps ax 會列出所有的 process 。
  • grep -v grep 是只輸出不含「grep」關鍵字的那些行。
  • grep TCIM 是只輸出含 「TCIM」關鍵字的那行。
  • awk '{print $1}' 以空白當分隔,並輸出第一個欄位(就是 pid)。

目前暫時先用這個方法來解決,再找找較簡單的囉!

2 則留言:

  1. Yen-lung :
    謝謝!
    Yahoo!奇摩輸入法無法在 CrossOver 或 WINE 中輸入中文,只有 Mac 自家的輸入法可以使用。不過,也因為這樣,使用完 CrossOver 中的 Windows 軟體後,Mac 內建的輸入法有問題時,Yahoo!奇摩輸入法則可以正常使用。

    回覆刪除

 
© 2009. Design by Pocket