`
aideehorn
  • 浏览: 256815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让你的TextMate支持GB2312,BIG等亚洲编码

F# 
阅读更多

问题就是我们使用TextMate不支持GB2312等编码,用着及其不方便,下面是解决方案:

打开Bundle Editor
选则Show all
选则文件夹TextMate(或者随便你选则什么)
增加一个新的template‘openEncodedFile’(或者随便你自己命名)
在Template data中如下设定
Extension:中 留空
Command(s):

# open CocoaDialog's file select menu
file=$(CocoaDialog fileselect \
        --title "Open an encoded file" \
        --with-directory $HOME/ \
)
# check for valid file
if [ -n "$file" ]; then
# open CocoaDialog's dropdown menu
# for more encodings add them to '--items'
# to list all possibile encodings use the Terminal with 'iconv -l'
        res=$(CocoaDialog dropdown \
                --title "Open an encoded file" \
                --text "Choose the encoding:" \
                ??exit?onchange \
                --button1 "Open" \
                --button2 "Cancel" \
                --items "BIG5" "EUC-TW" "GB2312" "SJIS" "EUC-JP" "KOI8-R" \
        )
# if user canceled exit
        [[ $( (tail -r <<<"$res") | tail -n1)  == "2" ]] && \
                exit_discard
        res=$(tail -n1 <<<"$res")
# add more 'elif' according to '--items' if needed
        if [ "$res" == 0 ]; then
                ENC="BIG5"
        elif [ "$res" == 1 ]; then
                ENC="EUC-TW"
        elif [ "$res" == 2 ]; then
                ENC="GB2312"
        elif [ "$res" == 3 ]; then
                ENC="SJIS"
        elif [ "$res" == 4 ]; then
                ENC="EUC-JP"
        elif [ "$res" == 5 ]; then
                ENC="KOI8-R"
        fi
# start conversion to UTF-8 and send the result as a new file back to TM
        iconv -f "$ENC" -t utf-8 "$file" > "$TM_NEW_FILE"
fi

 

Output: Insert as Text
- Activation: Key Equivalent shift+option+o (我的建议)
- Scope: 留空

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics