読者です 読者をやめる 読者になる 読者になる

nkfの補完関数書いた

zshnkfの補完が出てこなかったので書いた.

コピペして$fpathのどこかに_nkfで保存
nkf -[TAB]でいろいろ出てくる.

#compdef nkf

arguments=(
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-j[JIS コードを出力する。(デフォルト)]"
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-e[EUC コードを出力する。]"
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-s[Shift_JIS コードを出力する。]"
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)"{-w,-w80}'[UTF8 コードを出力する。 (BOM 無し)]'
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-w8[UTF8 コードを出力する。]"
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)"{-w16,-w16B0}'[UTF16 コードを出力する。 (Big Endian / BOM 無し)]'
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-w16B[UTF16 コードを出力する。 (Big Endian / BOM 有り)]"
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-w16L[UTF16 コードを出力する。 (Little Endian / BOM 有り)]"
 "(-j -e -s -w -w80 -w8 -w16 -w16B0 -w16B -w16L -w16L0)-w16L0[UTF16 コードを出力する。 (Little Endian / BOM 無し)]"
 
 "(-x)-x[通常おこなわれる、いわゆる半角カナ (JIS X 0201 片仮名) からいわゆる全角カナ (JIS X 0208 片仮名) への変換を行わず、半角カナを保存する。]"
 "(-X)-X[いわゆる半角カナ (JIS X 0201 片仮名) を いわゆる全角カナ (JIS X 0208 片仮名) へと変換する。]"
 "-B[壊れた (Broken) JIS コード。 ESC がなくなったと仮定する。]"
 "(-Z -Z0)"{-Z,-Z0}"[Convert X0208 alphabet to ASCII.]"
 "(-Z1)-Z1[JIS X 0208 和字間隔を ASCII space 一つに変換する。]"
 "(-Z2)-Z2[JIS X 0208 和字間隔を ASCII space 二つに変換する。]"
 "-Z3[>、<、”、&、を >、<、"、& に変換する。]"
 
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-J[ISO-2022-JP を仮定する。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-E[日本語 EUC (AT&T) を仮定する。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-S[Shift_JIS を仮定する。 いわゆる半角カナ (JIS X 0201 片仮名) も受け入れる。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-W[UTF-8 を仮定する。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-W8[UTF-8 を仮定する。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-W16[UTF-16 (Little Endien)を仮定する。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-W16B[UTF-16 (Big Endien)を仮定する。]"
 "(-J -E -S -W -W8 -W16 -W16B -W16L -g)-W16L[UTF-16 (Little Endien)を仮定する。]"
 
 "(--overwrite -J -E -S -W -W8 -W16 -W16B -W16L)-g[自動判別の結果を出力します。]"
 "(-g)--overwrite[出力結果でファイルを上書きします。]"
 
 "--help[コマンドの簡単な説明を表示する。]"
)
_arguments -s $arguments

こことlsの補完関数あたりを参考に書いた.