紹介マニアMoinMoin

Emacsに関連してよくあるかもしれない質問集です

Emacs21.3.5 on Carbon

ネットワークが遅い

方法はいろいろあります。

tcp.elの利用

(require 'tcp)
(defadvice process-status (after process-status-advice)
  (let ((ps ad-return-value))
    (setq ad-return-value
  (cond
   ((not (equal (car (process-command (ad-get-arg 0))) tcp-program-name)) ps)
   ((eq ps 'run) 'open)
   ((or (eq ps 'signal) (eq ps 'exit)) 'closed)
   (t ps)))))
(ad-activate 'process-status)

ソースコード変更

http://pc.2ch.net/test/read.cgi/mac/1034581863/363

configure後にできるsrc/config.hで

#define HAVE_GETADDRINFO 1

をコメントアウトしてコンパイルしたら、待ち時間がなくなりました。

との事

/* #define HAVE_GETADDRINFO 1 */

PATHはどうなってるの?

/usr/bin:/bin:$HOME にパスがとおっています。

.emacsにたいして

 (setenv "PATH" 
         (concat '"/usr/local/bin:/sw/bin:" (getenv "PATH")))

とかでパス追加可能

フォントの設定

 (create-fontset-from-fontset-spec
  (concat
        "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-monaco16,"
        "japanese-jisx0208:-apple-osaka-medium-r-normal--16-160-75-75-m-160-jisx0208.1983-sjis,"
        "ascii:-apple-monaco-medium-r-normal-*-14-*-*-*-*-*-mac-roman"))
(set-default-font "fontset-monaco16")

大きく感じる場合は、

 (create-fontset-from-fontset-spec
  (concat
        "-*-fixed-medium-r-normal-*-12-*-*-*-*-*-fontset-monaco12,"
        "japanese-jisx0208:-apple-osaka-medium-r-normal--14-140-*-m-140-jisx0208.1983-sjis,"
        "ascii:-apple-monaco-medium-r-normal-*-12-*-*-*-*-*-mac-roman"))
(set-default-font "fontset-monaco12")

なんてどうでしょうか??

ヒラギノにする場合は以下な感じです。

ヒラギノ角ゴ

(create-fontset-from-fontset-spec
 (concat
  "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-hiragino16,"
  "japanese-jisx0208:-apple-\203q\203\211\203m\203m\212\333\203s pro w4-medium-r-normal--16-160-75-75-m-160-jisx0208.1983-sjis,"
  "katakana-jisx0201:-apple-\203q\203\211\203m\203m\212\333\203s pro w4-medium-r-normal--14-140-75-75-m-140-mac-roman,"
  "ascii:-apple-monaco-medium-r-normal-*-14-*-*-*-*-*-mac-roman"))
(set-default-font "fontset-hiragino16")
(setq default-frame-alist (append '((font . "fontset-hiragino16"))))

SSHでBackspaceがうまくきかない

;;; help key変更
;; BackSpaceをC-hに変更
;; sshする時の都合上
(global-set-key "\C-h" 'backward-delete-char)
;;(define-key fence-mode-map "\C-h" 'fence-backward-delete-char)
;;(define-key henkan-mode-map "\C-h" 'henkan-quit)
;;(define-key isearch-mode-map "\C-h" 'isearch-delete-char)

(global-set-key "\M-?" 'help-for-help)
;;(define-key fence-mode-map "\M-?" 'fence-mode-help-command)

もっと簡単にする場合は

;; deleteキーとC-hを交換
(load-library "term/keyswap")

shellでC-hがbackspaceになれてしまったのと、sshでうまくbackspace効かなかったのでこれだけは変更する事にした。

コメントアウトしてある所はエラーになりますが。。。ある環境はで必要です_o_

全角空白、タブ、末尾の無駄な空白の色付け

font-lockを利用します。

オリジナルは以下のサイトの模様です。

http://homepage1.nifty.com/blankspace/emacs/color.html

またこのサイトより古いものがemacs.helpのnewsに流れている模様です。

(defface my-mark-tabs
  '(
    (t
     (:foreground "red" :underline t)
     )) nil)
(defface my-mark-whitespace
  '(
    (t
     (:background "gray")
     )) nil)
(defface my-mark-lineendspaces
  '(
    (t
     (:foreground "SteelBlue" :underline t)
     )) nil)

(defvar my-mark-tabs 'my-mark-tabs)
(defvar my-mark-whitespace 'my-mark-whitespace)
(defvar my-mark-lineendspaces 'my-mark-lineendspaces)

(defadvice font-lock-mode (before my-font-lock-mode ())
  (font-lock-add-keywords
   major-mode
   '(
     ("\t" 0 my-mark-tabs append)
     (" " 0 my-mark-whitespace append)
     ("[ \t]+$" 0 my-mark-lineendspaces append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)

font-lockが有効なモードでしか色がつきません。

その他に

http://www.emacswiki.org/cgi-bin/wiki.pl?ShowWhiteSpace

http://www.emacswiki.org/cgi-bin/wiki.pl?CategoryFaces

を参照してください。

EOFに色を付けたい場合は以下のスレッドを参照してください。

http://www.ysnb.net/meadow/meadow-users-jp/1999/msg00625.html

以下な感じで可能。 http://www.emacswiki.org/cgi-bin/wiki.pl?HighlightEndOfBuffer

にあった。ので修正した。

(defun my-mark-eob ()
  (let ((existing-overlays (overlays-in (point-max) (point-max)))
        (eob-mark (make-overlay (point-max) (point-max) nil t t))
        (eob-text "[EOB]"))
    ;; Delete any previous EOB markers.  Necessary so that they don't
    ;; accumulate on calls to revert-buffer.
    (dolist (next-overlay existing-overlays)
      (if (overlay-get next-overlay 'eob-overlay)
          (delete-overlay next-overlay)))
    ;; Add a new EOB marker.
    (put-text-property 0 (length eob-text)
                       'face '(foreground-color . "slate gray") eob-text)
    (overlay-put eob-mark 'eob-overlay t)
    (overlay-put eob-mark 'after-string eob-text)))
(add-hook 'find-file-hooks 'my-mark-eob)

(if (eobp)
    (function)
    ))

とかではうまくいかないのだった。まあ当然ですね。意味がちがうから。。<eof>

http://member.nifty.ne.jp/~satomii/software/jaspace.el

バイトコンパイルをTerminalからする

emacs -batch -f batch-byte-compile file-name

まちがって終了してしまう

C-x C-cをまちがっておしてしまう場合は以下を.emacsに記述

(add-hook 'kill-emacs-query-functions
          (lambda ()
            (y-or-n-p "Finish?")
            ))

バグ報告

M-x report-emacs-bug RET

の場所になります。


CategoryEmacs

紹介マニアMoinMoin: EmacsFAQ (last edited 2006-02-26 21:00:42 by )