ラベル Emacs の投稿を表示しています。 すべての投稿を表示
ラベル Emacs の投稿を表示しています。 すべての投稿を表示

2010年11月16日火曜日

Carbon Emacs フォント設定

また取り急ぎ

M+2VM+IPAG Circle 14ptにフォント設定しました.
なんかこのフォント好きになりました.


.emacs.elへ以下を追加

;;;;;;;;;;;;;;;;;;;;;;;
;; font
;;;;;;;;;;;;;;;;;;;;;;

 (set-face-attribute 'default nil
                     :family "M+2VM+IPAG circle"
                     :height 140)
 (set-fontset-font "fontset-default"
                   'japanese-jisx0208
                   '("M+2VM+IPAG circle" . "jisx0208.*"))

 (set-fontset-font "fontset-default"
                   'katakana-jisx0201
                   '("M+2VM+IPAG circle" . "jisx0201.*"))

友人とElispファイルを共有してともにEmacsを楽しもうという話になった.
かなり彼は分割して保存していて, 私の.emacs.elもどこにバグがあるか分からないときがある,
というので, 今度思い切って分割しよう. もうこれで設定は終わりにしたいかな...


フォントは
M+IPA合成フォント
からダウンロードさせていただきます. お世話になっております.

2010年11月14日日曜日

Carbon Emacs + Wanderlust + IMAP で Gmail

Carbon Emacsが便利すぎますが, メーラとしても使えるということで, 調べてみるとWanderlustというのがありました.
というわけで早速これを導入してみました.

まずはCarbon EmacsのHelpからCarbon Emacs Package > Net Installから選んで終了.

続いて.emacs.elへ設定

;; Wanderlust で Gmail!!
(setq ssl-certificate-verification-policy 1) 
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)

そしてルートに.wlというファイルを作り, 下記を書き込み. いろんなサイトを参考にしすぎてよくわかりません.

;;;  Wanderlust 設定ファイル

;; From設定
(setq wl-envelope-from "hogehoge@gmail.com")
(setq wl-from "My Name Is... ")

;; POP サーバの設定, IMAPなので不使用
;(setq elmo-pop3-default-server "pop.***.com") 
;(setq elmo-pop3-default-port 110) 
;(setq elmo-pop3-default-user "hogehoge")
;(setq elmo-default-pop-authenticate-type 'clear)
;; POP3 before SMTP
;(setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp) 


;; IMAP サーバの設定
(setq elmo-imap4-default-server "imap.gmail.com")
(setq elmo-imap4-default-user "hogehoge@gmail.com") ;
(setq elmo-imap4-default-authenticate-type 'clear) ; 
(setq elmo-imap4-default-port '993)
(setq elmo-imap4-default-stream-type 'ssl)

(setq elmo-imap4-use-modified-utf7 t) ; 日本語フォルダ対策

(setq ssl-program-name "openssl")


;; SMTP サーバの設定
(setq wl-smtp-connection-type 'starttls)
(setq wl-smtp-posting-port 587)
(setq wl-smtp-authenticate-type "plain")
(setq wl-smtp-posting-user "hogehoge") 
(setq wl-smtp-posting-server "smtp.gmail.com")
(setq wl-local-domain "gmail.com")

;; デフォルトのフォルダ
(setq wl-default-folder "%inbox")
;; 削除をGmail仕様に
(setq wl-dispose-folder-alist
      (cons '("^%inbox" . remove) wl-dispose-folder-alist))
;; フォルダ名補完時に使用するデフォルトのスペック
(setq wl-default-spec "%")
(setq wl-draft-folder "%[Gmail]/Drafts") ; Gmail IMAPの仕様に合わせて
(setq wl-trash-folder "%[Gmail]/Trash")
;; 画面を普通のメーラみたいな 3ペインに
;(setq wl-stay-folder-window t)
;; 下書きディレクトリをローカルに設定する.
(setq wl-draft-folder "+Drafts")
(setq wl-folder-check-async t) ; 非同期でチェックするように
;; 大きなメッセージを分割して送信しない(デフォルトはtで分割する)
(setq mime-edit-split-message nil)
;; 起動時からオフラインにする
;; (setq wl-plugged nil)
;; サマリモードで日時を英語表示
;; (setq wl-summary-weekday-name-lang 'en)
;; HTMLファイルは表示しない。
;;(setq mime-setup-enable-inline-html nil)
;; メールを書くときは見出し画面を残して、フル画面にする
(setq wl-draft-reply-buffer-style 'keep)
;; 送信済みIMAPフォルダは送信と同時に既読にする
(setq wl-fcc-force-as-read t)
;; 最初からスレッドを開いておかない
;;(setq wl-thread-insert-opened nil)
;; スレッドを分割するしきい値(デフォルト:30)
(setq wl-summary-max-thread-depth 30)
;; 警告無しに開けるメールサイズの最大値(デフォルト:30K)
(setq elmo-message-fetch-threshold 500000)
;; プリフェッチ時に確認を求めるメールサイズの最大値(デフォルト:30K)
(setq wl-prefetch-threshold 500000)

;;;------------------------------------------
(setq wl-dispose-folder-alist
      (cons '("^%inbox" . remove) wl-dispose-folder-alist))


;;;------------------------------------------
;;; from,to のデコード指定。
(mime-set-field-decoder
 'From nil 'eword-decode-and-unfold-unstructured-field-body)
(mime-set-field-decoder
 'To nil 'eword-decode-and-unfold-unstructured-field-body)

;;;------------------------------------------
;; summary-mode ですべての header を一旦除去
(setq mime-view-ignored-field-list '("^.*"))

;; 表示するヘッダ。
(setq wl-message-visible-field-list
      (append mime-view-visible-field-list
        '("^Subject:" "^From:" "^To:" "^Cc:" 
          "^X-Mailer:" "^X-Newsreader:" "^User-Agent:"
          "^X-Face:" "^X-Mail-Count:" "^X-ML-COUNT:"
          )))

また, 同様に.foldersを以下の通り作成.

%inbox "受信トレイ"
%[Gmail]/Starred "☆"
+Drafts "下書き"
%work "仕事"
%[Gmail]/All Mail "全てのメール"
%[Gmail]/Sent Mail "送信済みメール"
%[Gmail]/Trash "ゴミ箱"
%[Gmail]/Spam "迷惑メール"


最初設定で色んなページの参照と違ったのは, gnutlsがないと怒られた点. portsでインストールしました.

簡単なwanderlustの使い方

Emacsを立ち上げて,
M-x wl

で起動. 基本的にspaceかEnterで決定します.

通常モード
  • s: 未読メール更新
  • Shift+s: サマリ更新
  • o: 未読メールフォルダを開く
  • [, ]: 全てのフォルダを開く, 閉じる
  • Shift+e: ゴミ箱を空にする
  • M-t: オンライン/オフラインの切り替え
  • q: 終了
  • w: メールを書く


サマリモード
  • DEL: 読んでいるメールを上にスクロール
  • ENTER: 読んでいるメールを一行進める
  • -: 読んでいるメールを一行戻す
  • n: 次のメール
  • p: 一つ上のメール
  • Shift+h: ヘッダ表示(. で戻る)
  • s: 現在のフォルダの一覧表示
  • g: フォルダ移動
  • w: メールを書く
  • a: 返信
  • Shift+a: メールを引用してお返事を書く
  • f: 転送
  • Shift+e: メールの再編集
  • y: メール保存
  • Shift+z: ~/.addresses の更新

そしてメールを書くときは
  • C-c C-s: メール送信
  • C-c C-c: 送信してドラフトバッファ消去
  • C-c C-y: メールの引用
  • C-c C-k: 破棄
  • C-c C-x C-m: 最後に読んだメールを挿入
  • C-c C-x C-t: テキスト挿入
  • C-c C-x C-i: ファイルをエンコードして挿入

ちなみにアドレス帳は~/.addressに書きます. こ

2010年11月7日日曜日

Carbon Emacs の設定

こちらも取り急ぎ備忘録として。
最近webで情報を無理矢理ピックアップしてemacsを使いやすいようにsetupしました。

;; ロードパス
(setq load-path (cons "~/emacs/site-lisp" load-path))
(setq load-path (cons "~/emacs/site-lisp/w3m" load-path))
(add-to-list 'load-path "~/emacs/site-lisp/")

;; 画面の設定

(if window-system (progn 
 ;;ウィンドウサイズでフォルト
 (setq initial-frame-alist '((width . 200) (height . 52) (top . 0)(left . 0)))

 ;;文字の色
 (add-to-list 'default-frame-alist '(foreground-color . "white"))
 ;; 背景色
 (add-to-list 'default-frame-alist '(background-color . "black"))

))
;; カーソルの色を設定  
  (add-to-list 'default-frame-alist '(cursor-color . "Gray"))
  ;; マウスポインタの色を設定します。
  (add-to-list 'default-frame-alist '(mouse-color . "SlateBlue2"))
  ;; モードラインの文字の色を設定します。
  (set-face-foreground 'modeline "white")
  ;; モードラインの背景色を設定します。
  (set-face-background 'modeline "MediumPurple2")
  ;; 選択中のリージョンの色を設定します。
;  (set-face-background 'region "LightSteelBlue1")
  ;; モードライン(アクティブでないバッファ)の文字色を設定します。
  (set-face-foreground 'mode-line-inactive "gray30")
  ;; モードライン(アクティブでないバッファ)の背景色を設定します。
  (set-face-background 'mode-line-inactive "gray85")

;; ビープ音を消す 
(setq visible-bell t)

;; デフォルトの透明度を設定する (85%)
(add-to-list 'default-frame-alist '(alpha . (80 50)))




;; 文字色変更
;(if window-system (progn;
;
;(set-face-foreground 'font-lock-comment-face "MediumSeaGreen")
;(set-face-foreground 'font-lock-string-face  "purple")
;(set-face-foreground 'font-lock-keyword-face "blue")
;(set-face-foreground 'font-lock-function-name-face "blue")
;(set-face-bold-p 'font-lock-function-name-face t)
;(set-face-foreground 'font-lock-variable-name-face "black")
;(set-face-foreground 'font-lock-type-face "LightSeaGreen")
;(set-face-foreground 'font-lock-builtin-face "purple")
;(set-face-foreground 'font-lock-constant-face "gray")
;(set-face-foreground 'font-lock-warning-face "blue")
;(set-face-bold-p 'font-lock-warning-face nil)
;
;))

;; ファイルパス表示
(setq frame-title-format (format "%%f - Emacs@%s" (system-name)))

;; 行数表示
(line-number-mode t)

;; スタートアップページを表示しない
(setq inhibit-startup-message t)

;;バックアップファイルを作らない
(setq backup-inhibited t)

;; Macのキーバインドを使う. optionをメタキーにする
;;(mac-key-mode 1)
;(setq mac-option-modifier 'meta)


;; spotlightにとられないためのコード
;(mac-add-ignore-shortcut '(? )) 
;(mac-add-ignore-shortcut '(control))


;;範囲指定 Ctr+Space
(setq transient-mark-mode t)

;;シフト + 矢印で範囲選択
(setq pc-select-selection-keys-only t)
(pc-selection-mode 1)

;;; タブ文字はスペース4文字分
(setq default-tab-width 4)


;; フォント設定
;(if (eq window-system 'mac) (require 'carbon-font))
;(fixed-width-Set-fontset "hirakaku_w3" 10)
;(setq fixed-width-rescale nil)

;;メニューバーを隠す
;(tool-bar-mode -1)

;;対応する括弧を光らせる
(show-paren-mode 1)

;; hline 編集行
(defface hlline-face
  '((((class color)
      (background dark))
     ;;(:background "dark state gray"))
     (:background "gray10"
                  :underline "gray24"))
    (((class color)
      (background light))
     (:background "ForestGreen"
                  :underline nil))
    (t ()))
  "*Face used by hl-line.")
(setq hl-line-face 'hlline-face)
;;(setq hl-line-face 'underline)
;; 編集行のハイライト
(global-hl-line-mode)

;; ウィンドウ分割時に画面外へ出る文章を折り返す
(setq truncate-partial-width-windows nil)

ここまでがもろもろの設定。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;          コマンド群      ;;;;;;;;;;;;


;;選択範囲をインデントする
(global-set-key "\C-x\C-i" 'indent-region) 

;;リターンと改行でインデント
(global-set-key "\C-m" 'newline-and-indent) 

;;改行
(global-set-key "\C-j" 'newline) 

;;範囲指定コメント
(global-set-key "\C-c\C-c" 'comment-region)
;;上記解除
(global-set-key "\C-c\C-u" 'uncomment-region)  

使いやすくするためのコマンド群.
;;linum 設定
(require 'linum)
(global-linum-mode t)
;(setq linum-format "%d5")
;F5キーにON/OFFの切り替えを割り当てる
(global-set-key [f5] 'linum-mode)


;; Elscreen ;;

;;tab
(require 'elscreen)
(if window-system
 (define-key elscreen-map "\C-z" 'iconify-or-deiconify-frame)
  (define-key elscreen-map "\C-z" 'suspend-emacs))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 使い方
;; C-z c : 新規タブ
;; C-z k : タブ閉じる
;; C-z 0~9 : タブの切り替え(番号)
;; C-z n : 次のタブ
;; C-z p : 前のタブ
;; C-z a : 直前のウィンドウ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; tab 一覧表示 ;;
;; (defun elscreen-frame-title-update ()
;;   (when (elscreen-screen-modified-p 'elscreen-frame-title-update)
;;     (let* ((screen-list (sort (elscreen-get-screen-list) '<))
;;     (screen-to-name-alist (elscreen-get-screen-to-name-alist))
;;     (title (mapconcat
;;      (lambda (screen)
;;        (format "%d%s %s"
;;         screen (elscreen-status-label screen)
;;         (get-alist screen screen-to-name-alist)))
;;      screen-list " ")))
;;       (if (fboundp 'set-frame-name)
;;    (set-frame-name title)
;;  (setq frame-title-format title)))))

;; (eval-after-load "elscreen"
;;   '(add-hook 'elscreen-screen-update-hook 'elscreen-frame-title-update))



;; 'mcomplete 他

;; ミニバッファで M-x時のインクリメンタル補完
(require 'mcomplete)

;; よく使うヒストリを優先させる
(load "mcomplete-history")
(turn-on-mcomplete-mode)

;; cycle-mini
(require 'cycle-mini)
(define-key minibuffer-local-map [up] 'previous-history-element)
(define-key minibuffer-local-completion-map [up] 'previous-history-element)
(define-key minibuffer-local-must-match-map [up] 'previous-history-element)
(define-key minibuffer-local-ns-map [up] 'previous-history-element)
(define-key minibuffer-local-ns-map [down] 'next-history-element)
(define-key minibuffer-local-map [down] 'next-history-element)
(define-key minibuffer-local-completion-map [down] 'next-history-element)
(define-key minibuffer-local-must-match-map [down] 'next-history-element)


行数を表示するlinum, tab化するElscreen, 補完機能強化のmcomplete, cycle-miniの設定ファイル. いずれも
~/emacs/site-lisp/
配下に

  • linum.el
  • elscreen.el
  • mcomplete.el
  • mcomplete-history.el
  • cycle-mini.el

を置きます。
例によってこれで素人がCarbon Emacsを使える設定となりました。
linumがページを動かすたびに行数表示のため更新されるので少し動作がもっさりするのが不満。



ずぶの素人がなぜemacsかというと、学校でemacsしか使ったことがなく、vimよりも慣れているということです。
ぱっと書く程度のエディタならvimの方が便利そうなので、普通の使い方くらいは覚えます。
それも備忘録としてまた今度。