あれ、どうやったっけ

(たぶん)テキストサイト風blog。文が安定するまで書き直しあるからメンゴ。

バッサリいきたいemacsのshell-modeの文字消し、プロセスの文字コードどうこうしたり系の@窓OS

emacsの練習、練習……初心者の恥ずかしい覚書……というので簡単なところから。

頼むからシェルモードの時だけ全クリアしてくれ系の。

(defun myel-clear-shell ()
  "clear shell buffer"
  (interactive)
  (let ((inhibit-read-only t))
    (when (or (equal major-mode 'shell-mode)
              (equal major-mode 'eshell-mode))
      (erase-buffer))))

こんなんでいいんかなぁ? 分かってる人から見たらプギャーwww になりそう。ごめん。

ついでにshell-modeの文字コード周りもバッサリ。w32-fns.elの「set-default-process-coding-system」関数でplinkとcmdproxyの文字コード突っ込んでるようですが、どうも選択肢が「undecided-dos」か「raw-text-dos」しかないようです。

幸いbefore-init-hookで走る関数らしいので、init.elとかで消して新しいの入れられそうです……ああ、elispよくわかってないからリストにまとめてループ回すとかじゃなくてコピペなんだ…… orz ついでにちょっと前にやったpowershellの文字コも仲間入りさせたるんや……!

なお別に-dosあってもなくても挙動は変わりませんでした。ぼくんちでは。一応明示の方向でしておきます。

(cond ((eq system-type 'windows-nt)
       (setq process-coding-system-alist ())
       (add-to-list 'process-coding-system-alist
                    '("[pP][lL][iI][nN][kK]" . (cp932-dos . cp932-dos)))
       (add-to-list 'process-coding-system-alist
                    '("[cC][mM][dD][pP][rR][oO][xX][yY]" . (cp932-dos . cp932-dos)))
       (add-to-list 'process-coding-system-alist
                    '("[pP][oO][wW][eE][rR][sS][hH][eE][lL]" . (cp932-dos . cp932-dos)))))

本当に学習曲線垂直のエディタだな(いい意味でも悪い意味でも)。