emacs

mewの中でのサーチ

Ctrl + r とかすると、インクリメンタルサーチ。そこで検索キーワードを入力する前に[Enter]すると、通常のサーチになって、日本語での検索も可能になる。

サーチ

MIGEMOという便利な物があると N くんから聞く。

色付けが鬱陶しい。識別方法として色を使う利便性は理解できるが、色使いが悪いと逆に視認性が良くない。ということで、色を off にしたい。

vine3.x の場合、.emacs.el の 47 行目 .emacs-faces.el を呼び出しているところをコメントにすると、かなり幸せになれる。(mode によって色が付けられたりする。例えば mew とか。)

あとは各 mode 毎に色付けしているところを弄れば良いはず。( mew の例を後述)

この他の安直な方法としては、

TERM=vt100 emacs -nw

mew mode で色付けを消す

(setq mew-use-highlight-mark nil)
(setq mew-use-highlight-body nil)
(setq mew-use-highlight-url nil)
(setq mew-use-highlight-header nil)

てな具合に変数を設定すれば良い。例えば vine3.x なら、.mew.el の最後に上の行を付け加えれば良い。

yc

とても便利な canna client ( http://www.ceres.dti.ne.jp/~knak/yc.html )

unix domain socket な cannaserver の場合、4.0.0 以上の yc を。

emacs -nw して使っていると、変換している途中(変換の文節を広げたとき)で

Wrong type argument: characterp, nil

となってしまいキー入力が全く効かない状態になることがある。 さて、これは何が悪いのやら。(要検証)

LANG 関連ではなさそう。フェンス幅より文節を広げる操作をした時に固まるっぽい?

coding setting

Ctrl-x RET f utf-8
Ctrl-x RET t utf-8
Ctrl-x RET k utf-8

emacs の dired

Vine3.x の .emacs.el を Vine4.x で使うと、dired で表示したファイルを開くことができない。.emacs.el を Vine4.x のものに差し替えるか、以下の 1行を .emacs.el に付け加えればよい。

(add-hook 'dired-mode-hook  '(lambda ()(setenv "LANG" "C")))

色 2

上の方で記述したような方法で emacs の色づけを止める以外に、font-lock-mode を変更する手があるようだ。というか、こっちの方が真っ当な方法かもしれない。

font-lock とは編集しているテキストの構文に従って、様々な (font) face(文字表示のスタイル)を使って強調表示するもののようである。

というわけで、この font-lock-mode を off にしてしまえば、色づけも何もしなくなるというわけ。全面的に font-lock-mode を off にするのなら、.emacs に

(global-font-lock-mode 0)

とでも書いておけば良い。あぁ、plane で読み易い。

face

定義されている face のリストは

M-x list-faces-display

とすればわかる。

quail input method

nn で「ん」にするには

(setq quail-japanese-use-double-n t)

emacs lisp

起動後の scratch バッファは lisp-interaction-mode 。 S式を記述し、行末で C-j するとその式を評価する。

一般に lisp-interaction-mode に入るには

M-x lisp-interaction-mode

lisp なファイルを読み込んで実行させるには、

M-x load-file

したあとに、ファイル名を指定すればよい。

emacs23 で anthy-el

timeout 値が大きいせいで、変換の応答が悪い。 anthy-el を load した後に以下を加えておけば ok

(if (>= emacs-major-version 23)
  (setq anthy-accept-timeout 1))

recenter

何故か C-l すると font-lock-mode を enable した上で recenter することに気付く。文字への装飾は不要なので非常に塩梅が悪い。

原因がすぐに分からなかったので、手っ取り早く .emacs の末尾に以下を追記

(defun my-recenter ()
  (interactive)
  (recenter))
(global-set-key "\C-l" 'my-recenter)

時間ができたら、.emacs を見直してみよう

M-=

region 選択した後、M-= で文字数カウント

起動時のメッセージを消したり、空の scratch buffer にしたり

emacs 起動時に、Welcome to GNU Emacs... というメッセージが出るのを抑制するには

(setq inhibit-startup-message t)

空っぽの scratch buffer にするには

(setq initial-scratch-message nil)

それぞれ .emacs 辺りに書いておけばよい

Symbol's value as variable is void: last-command-char

何ぞ symbol を入力しようとしたときに 'Symbol's value as variable is void: last-command-char' とか言われたら、 last-command-char を last-command-event に書き換えればよい。これは emacs24.x で last-command-char が obsolete になったため。sed でも使ってエイヤッと置換するのが楽ですね。

ファイルの文字コードを明示的に指定するには

何で間違えるのかよくわからないが、時折文字コード判別を間違えてしまうことがある。(本来なら誤認識自体を抑制すべきだが、とりあえずそれはさておくとして、、)先頭行に次のような文字列を入れておけば emacs が coding をそれを読んで開いてくれる。

-*- coding: utf-8 -*-

例えば C の source なら

/* -*- coding: utf-8 -*- */

HTML ファイルなら

<!-- -*- coding: utf-8 -*- -->

のような行を加えておけばよい

参照:emacs manual: Specifying a File's Coding System

タイムスタンプの挿入

テキストファイル内に修正時のタイムスタンプを入れるには、.emacs に

(add-hook 'write-file-hooks 'time-stamp)

を書いておき、テキストファイルの 8行目までに

Time-stamp: < >

のように入力しておけばよい。保存時に < > の間に保存時刻&ユーザ名を入れてくれる。

あらかじめ文字コードを指定してファイルを開くには

文字コードの誤認識に関連して。あらかじめ文字コードを指定しておいて、ファイルを開く方法について。emacs 起動後に、次のように

C-x Enter c

を入れると文字コードを聞いてくるので

utf-8 Enter

のようにすれば、以下のコマンドはその文字コードで実行することになるので、続けて

Ctrl-x Ctrl-f

として開きたいファイルを選べば良い まとめて書けば

C-x Enter c '文字コード' Enter Ctrl-x Ctrl-f

開いたファイルを別の文字コードで再読込するには

ある utf-8 ファイルを開いたら SJIS と誤認識され文字化けしているとしよう。この場合は次のように

Ctrl-x Enter r utf-8 Enter

とすると、当該ファイルから revert する?と聞いてくるので yes とすれば指定した utf-8 で読み込み直してくれる。

文字コードの指定

文字コード誤認識の話のつづき。通常、日本語環境を指定する場合、

(set-language-environment "Japanese")

に加えて、default の文字コードを指定するために

(set-default-coding-systems 'utf-8)

とするか、

(prefer-coding-system 'utf-8)

とする方法がある。(この2つの指定の違いが何なのかはきちんと調べてない。)

読み込み時の文字コード認識に関していえば、prefer-coding-system の方が良いようだ。set-default-coding-systems では失敗することがある。

Last modified:2019/08/28 18:34:30
Keyword(s):[emacs]
References:[Software]