LoginSignup
2
2

More than 5 years have passed since last update.

オッサン仕様CentOS7のEmacsの設定(MarkSet, MewでGmailを読む)

Last updated at Posted at 2017-12-12

CentOS7でEmacs

とりあえずEmacsとメールリーダーのMewをInstall済みの環境で話をしています。

Emacsはyumで入ります。

$ yum install emacs

Mewは各自お調べください。うちではMew-6.7をソースから入れてます。

MarkSet

CentOS7に日本語環境入れてGUIでEmacsを動作させるすると、MarkSet(Ctrl+SPACE)が使えません。IME (仮名漢字変換)が起動してします。

昔からEmacsを使ってる人間としてはMarkSetが使えないのは死ぬほど辛い。というかCtrl+SPACEにIMEのOn/Offを割り当てた人誰だよ。

IMEを停止しましょう。環境変数XMODIFIERSにおまじないを書けばよいです。ですがこれをデフォルトにしてしまうと他のアプリでIMEが動かなくなります。なのでEmacsのみに反映させる必要あります。以下のWARPPERがおすすめです。

/usr/bin/emacs-markset
#!/bin/sh

PROG_NAME=`basename $0`
export XMODIFIERS="@im=none"
exec -a ${PROG_NAME} /usr/bin/emacs-24.3 "$@"

以下のコマンドで/usr/bin/emacsを置き換えます。

$ chmod +x /usr/bin/emacs-markset
$ update-alternatives --install /usr/bin/emacs emacs /usr/bin/emacs-markset 1
$ update-alternatives --config emacs
   -> 2を選ぶ.

おそらくMarkSetが復活したかと思います。

EmacsでIMEを停止したら日本語入力できないじゃん!

Emacsに標準で組み込まれているIME(名前がよくわからないです)が「Ctrl+\」で起動しますが、これどうも変換精度が悪いです。Anthyを入れましょう。

$ yum install epel-release
$ yum install emacs-anthy

続いて~/.emacsに以下を加筆をしてください。

~.emacs
; 加筆
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)

(set-input-method nil)
(require 'anthy)

これでAnthyがCtrl+\が起動すると思います。

GMAILが読みたい

メールを読むためにわざわざアプリを起動などしたくありません。Emacsで読みたいですね。

Emacs用のメールリーダーはいくつかありますが、MewとRMAILしか使ったことないんですが、RMAILは調べてないですが、今回はMewで試してみました。

参考文献:
https://qiita.com/taumu/items/5b965d841492aee2211b
https://jedipunkz.github.io/blog/2013/08/12/emacs-mew-gmail/

mewはデフォルトではSSLを話せないのでトンネル用のアプリを入れます。

$ yum install stunnel

ネットでググるとstunnelの設定が必要なような記載がありますが、CentOS7では特になにも設定せずに動きました(^_^;

続いて、GMAIL側の設定。GMAILのWebから以下の設定を変えてください。

  • IMAP機能を有効にしてください。
  • 「安全性の低いアプリの許可」を有効にしないと恐らく読めません。

続いて~/.emacsに以下を加筆をしてください。個人的趣味でDCCを設定しています。(一般的なメーラーでのBCCはMewではDCCになります)

~.emacs
; 加筆
; REF: https://www.mew.org/ja/info/release/mew_1.html#Overview
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)

;; Optional setup (Read Mail menu):
(setq read-mail-command 'mew)

;; Optional setup (e.g. C-xm for sending a message):
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
    (setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
    (define-mail-user-agent
      'mew-user-agent
      'mew-user-agent-compose
      'mew-draft-send-message
      'mew-draft-kill
      'mew-send-hook))

; GMAIL設定

; Stunnel
(setq mew-prog-ssl "/usr/bin/stunnel")
; IMAP
(setq mew-proto "%")
(setq mew-imap-server "imap.gmail.com")
(setq mew-imap-user "あなたのID@gmail.com")
(setq mew-imap-auth  t)
(setq mew-imap-ssl t)
(setq mew-imap-ssl-port "993")

(setq mew-smtp-auth t)
(setq mew-smtp-ssl t)
(setq mew-smtp-ssl-port "465")
(setq mew-smtp-user "あなたのID@gmail.com")
(setq mew-smtp-server "smtp.gmail.com")

; パスワードを保存する。
;(setq mew-use-cached-passwd t)

(setq mew-ssl-verify-level 0)

(setq mew-dcc "あなたのID@gmail.com")
(setq mew-from "あなたのID@gmail.com")

これでおそらく読めるでしょう(^_^;

あと時たまSSLトンネルを行う「stunnel」のデーモンが残ってる場合があります。以下のような設定をMewを実行しているユーザのCrontabに入れておくと自動的に止めてくれます。(深夜1:35に実行します。この時間にMewを使ってると通信が異常停止しますのでご注意ください。)

$ crontab -l
35 1 * * *    kill `pgrep stunnel` > /dev/null 2>&1

以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2