2015年8月4日 星期二

gedit外掛iconv - 轉換文檔編碼

前幾年還得煩惱桌機該不該utf化的問題,隔了幾年各distro改了就順勢改了,
反正早年的big5檔案多半現在都是archive,不是偶爾翻出來mud mud回味一下好像不轉影響也不大。

可是事情常常不像憨人想的那樣,處理電影字幕檔就是其中一種,觀眾都就位了結果片子vlc出來是亂碼是個超級敗興的狀況。
所以以下指令通常很熟練:
big -> utf-8
$ iconv -f big5  -t utf8  test.big5.txt  > test.utf8.txt       

gb2312 -> utf-8
$ iconv -f gb2312 -t utf8 test.gb2312.txt > test.utf8.txt

有些字幕來的時候就是簡體utf-8,年輕人將就著啃沒問題,可是長輩不喜歡,所以還得會這招:
iconv -f utf8 -t gb2312 test.gb.utf8.txt | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8 > test.big5.utf8.txt

看到沒? 老派作風的乾淨利落真是令人激賞。

但是有的時候想看電影就是不想動腦袋,這時候會想翻翻看是不是原生desktop app就能有這功能...
好,沒有;那就自己弄
gedit->工具->manage external tools->+

新增一個gedit的外掛,名字例如叫作iconv big5 utf8,右方shell script的部份填入
     iconv -f big5 -t utf8 $GEDIT_CURRENT_DOCUMENT_NAME
輸入:目前文件
輸出:取代目前的文件

以後gedit打開字幕檔時就可以工具->External tools->iconv big5 utf8,簡體轉萬國或是簡繁互轉依此類推。


#當然是抄來的,credit to http://blog.yam.com/ddy1280/article/856796
#批次轉換的話要多費點手腳,幸好google很好用,Tsung有寫怎麼做:
  http://blog.longwin.com.tw/2008/07/convmv_utf8_big5_convert_linux_2008/

Vim plugin - YouCompleteMe

Ubuntu 15.04下安裝完youcompleteme之後通常會遇到兩個如同月經般的老問題:
1. YCM要求手動編譯(使用cmake)
"ycm_client_support.[so|pyd|dll] and ycm_core.[so|pyd|dll] not detected; you need to compile YCM before using it. Read the docs!"
$ (Optional) sudo apt-get install cmake
$ cd ~/.vim/bundle/YouCompleteMe
$ ./install.sh --clang-completer

2. cmake找不到python lib
"  STDERR:
Your C++ compiler supports C++11, compiling in that mode.
CMake Error at /usr/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
  Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
  (Required is at least version "2.6")
Call Stack (most recent call first):
  /usr/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.0/Modules/FindPythonLibs.cmake:197 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  BoostParts/CMakeLists.txt:30 (find_package)"
安裝python-dev即可解決
$ sudo apt-get install python-dev

3. clang不提供32位元的版本
"  STDERR:
Your C++ compiler supports C++11, compiling in that mode.
CMake Error at ycm/CMakeLists.txt:64 (message):
  No pre-built Clang 3.6 binaries for 32 bit linux.  You'll have to compile
  Clang 3.6 from source.  See the YCM docs for details on how to use a
  user-compiled libclang.
 
如果系統上確定已經安裝好libclang,試看看以下參數:
$./install.sh --clang-completer --system-libclang

或是參考這些地方自己編
1.https://solarianprogrammer.com/2013/01/17/building-clang-libcpp-ubuntu-linux/
2.http://www.cnblogs.com/csuftzzk/p/3435710.html
3.http://www.linuxzen.com/vim-dai-ma-bu-quan-he-jian-cha-youcompleteme-syntastic.html