リージョン内の全角カタカナのみを半角文字に変換する
M-x japanese-hankaku-region、選択範囲の”カタカナだけ”を全て半角カタカナにして欲しい
ということで書いてみました.
はじめに
Emacsには japanese-hankaku-regionという関数があって, 全角文字を
半角文字に変換してくれるんですが, 全角ひらがなも全角カタカナも半角カタカナにして
しまうという問題(?)があります.
コード
(defun japanese-hankaku-region-only-katakana (from to &optional ascii-only) (interactive "r\nP") (save-restriction (narrow-to-region from to) (save-excursion (goto-char (point-min)) (while (re-search-forward "\\cK" nil t) (let* ((zenkaku (preceding-char)) (zenkaku-str (char-to-string zenkaku)) (hankaku (or (and (not ascii-only) (get-char-code-property zenkaku 'jisx0201)) (get-char-code-property zenkaku 'ascii)))) (when hankaku (japanese-replace-region (match-beginning 0) (match-end 0) hankaku)))))))
例
おわりに
問題がありましたら, twitter等でお知らせください.