Emacs Part 12

このエントリーをはてなブックマークに追加
>>912
先生、半角カタカナが入力できません!
>>913
M-x report-emacs-bug
>>913
冗談でしょ? 本当なの?
916名無しさん@お腹いっぱい。:04/08/25 19:29
M-x compileであるプロジェクトをビルド中に,
別のプロジェクトをビルドしようとM-x compileすると,
A Compilation process is running; kill it? (yes or no)
と聞かれ,同時に複数のプロジェクトをビルドできません.
これってなんとかならないもんでしょうか?
なお使用しているのはGNU Emacs 21.3.1です.
bueerをrename
>>917
どうもありがとうございます.
そういうことでしたか.
すごいtypoだな
920916:04/08/25 20:08
bueerのrename処理をcompilation-mode-hookに入れようと思うのですが,
bueer名に
現在のパス?(ファイルを訪問してなくてもC-x C-fすればミニバッファに
Find file: hogeと表示されますよね.そのhogeの部分のことです.)
を追加しようと思います.
このパスを取得する関数が分からないのですが,どなたかご存知ないでしょうか?
宜しくお願いします.
(cueeent-directory)
緊張して間違えた(w

(deeault-directory)
923916:04/08/25 20:14
(buffer-file-name)
ってやつは試してみましたが,
これはファイルを訪問してない場合nilが返って来るので
使いたくないです.
924916:04/08/25 20:19
>>921,922
(cueeent-directory)
(deeault-directory)
も*scratch*で試しましたが
*Backtrace*バッファが開いてエラーとなってしまうのですが,
これは事前に何かのファイルをロードしたりする必要があるのでしょうか?

伝わらないとまずいので,上記で試したのは
(current-directory)
(default-directory)
です.
変数だよ
なんか俺の emacs は obsolete のようだ。もう buffer は廃止されたのですね。
(default-directory)はxemacs-21.4ではdiredに。

>>926
bueerの時代です。
928916:04/08/25 20:37
皆さんどうもありがとうございました.
.emacsに以下を入れてうまく行きました.

(add-hook
'compilation-mode-hook
'(lambda ()
(rename-bueeer (concat "*compilation*<" deeault-directory ">"))
))

(customizeで設定しようとしたけど,何だかよく分からないで手こずってしまいました.)
解決しちったみたいだけど、
compilation-bueer-name-function を設定するほうが正道かも。
930916:04/08/25 21:15
>>929
おおっ!
そんなものがありましたか.以下に書き換えました.

(setq compilation-bueer-name-function
(function (lambda (mode)
(concat "*compilation*<" default-directory ">"))))

どうもありがとう御座いました.
藻前ら順応しすぎ。
後で讀む人は困りそう。
>>926
がないと理解できなかった。
端末での emacs を使うときのことだけど、4月ごろの 21.3.50 (FreeBSD 4.9) は meta キーは使用できる。
さっきビルドした 21.3.50 (FreeBSD 5.2.1) は meta キーが効かない。
4月のビルドは emcws のパッチを当ててある。さっきのビルドは emcws + multi-tty を当ててある。
6月のビルドも今試してみたら、meta キー効いてなかった。これは emcws パッチのみだけど。
なんかパッチは関係なさそうです。
あ、kterm では meta キー効かなかったけど、rxvt だと効いた。
TERM=kterm です。
端末の問題の可能性があるから、
X で試してみたら。
X ではずっと使えてます。
情報を小出しにしているようで申し訳ないのですが、同じ kterm 上で zsh では
meta キーは使用でき、emacs では使用できません。
ああ、ホントに大事なことを書き忘れていた。
端末上で M-a などを入力すると
Wrong type argument: integerp, nil
って表示されることを。
よくわからんが
meta と alt の問題はどう?
>>915
Coding system for keyboard input:
E -- euc-japan (alias of japanese-iso-8bit)
Coding system for terminal output:
E -- euc-japan (alias of japanese-iso-8bit)

Terminal は PuTTY or TeraTerm の同じ環境で
半角カタカナ 表示○ 入力○ emacs-21.3
半角カタカナ 表示○ 入力× emacs-21.3.50

21.3.50 だと、以下のエラーがでて入力できず。
Wrong type argument: integerp, katakana-jisx0201

*Backtrace*
Debugger entered--Lisp error: (wrong-type-argument integerp katakana-jisx0201)
encoded-kbd-self-insert-iso2022-8bit(nil)

rxvtは\M-aを\C-[aに変換してるでしょ。
入力した後、M-x view-lossageしてみて。
こーんなにも情報を小分けして書かれると、
多少相手にする気があっても、情報を整理する段階で脳内から消えてしまうな。
945916:04/08/26 19:33
お世話になっております.
昨日の*compilation*の質問をした者です.

diredで~以下のあるディレクトリ,例えば~/hoge/に移動してM-x compileすると,
バッファ名は*compilation*<~/hoge/>となるようになったのですが,
この~をルートからのフルパスに展開しようと思いまして,
昨日お教え頂いたcompilation-buffer-name-functionを
(setq compilation-buffer-name-function
(function (lambda (mode)
(cond
(string-equal (substring default-directory 0 2) "~/") (concat "*" (downcase mode) "*</home/916/" (substring default-directory 2) ">")
t (concat "*" (downcase mode) "*<" default-directory ">")))))
のように設定しました.するとM-x compileで
Symbol's value as variable is void: string-equlと
ミニバッファにエラーが表示されるようになりました.
*scratch*で試すとstring-equlは旨く動くのですが,
string-equlを使うには何か他に処理が必要なのでしょうか?
あるいは,他の方法でもいいですから~をフルパスに置換するような方法を
どなたかご存知でしたらお教え頂けないでしょうか.
宜しくお願いします.
946916:04/08/26 19:40
>>945
自己レスです.
condをifにしたら動きました.失礼しました.
(setq compilation-buffer-name-function
(function (lambda (mode)
(if (string-equal (substring default-directory 0 2) "~/")
(concat "*" (downcase mode) "*</home/916/" (substring default-directory 2) ">")
(concat "*" (downcase mode) "*<" default-directory ">")))))
947916:04/08/26 20:09
945はcondの括弧が抜けていました.
(setq compilation-buffer-name-function
(function (lambda (mode)
(cond
((string-equal (substring default-directory 0 2) "~/") (concat "*" (downcase mode) "*</home/916/" (substring default-directory 2) ">"))
(t (concat "*" (downcase mode) "*<" default-directory ">"))))))
expand-file-name
949916:04/08/26 20:16
>>948
待っておりました!
(expand-file-name default-directory)
ですね.どうもありがとう御座います.
string-equl
view-lossage したら、M-a は ESC a に変換されてました。
>ESC a ESC x v i e w SPC l o SPC RET
952916:04/08/26 21:56
>>950
これはまじボケです.写し間違えました.

M-x grepに干渉するみたいなのでちょっと変えました.
grepの方は実行した回数に合わせてバッファ*grep*<NN>を新生するようにしました.
(setq grep-buffer-index -1)
(setq compilation-buffer-name-function
(function (lambda (mode)
(cond
((string-equal mode "Compilation") (concat "*" (downcase mode) "*<" (expand-file-name default-directory) ">"))
((string-equal mode "grep") (concat "*" (downcase mode) "*<" (number-to-string (setq grep-buffer-index (1+ grep-buffer-index))) ">"))
(t (concat "*" (downcase mode) "*")))
)))
c-; にキーを割り当てたいのですが (control ?\;) だとX上だけで
コンソールでは変化無しです。
何か良い方法はありませんでしょうか?
C-;を表現する文字コードがなけりゃ当たり前だと思うが。
キーを押した・離したというイベントが飛んでいくXと違って、
端末の入出力というのは「文字」が行き来するわけだ、基本的には。わかる?

どうしても使いたきゃ C-x @ c ; とすれ。
なんかムカつく。
できない、とかだけ書いてあるより
勉強になって、はるかにいいじゃないか。
そういえばコンソールだと c-/ で undo にならないんだがこれは普通?
>>957
undo になったよ
ミニバッファにも Undo! って出てきた

M-x version
GNU Emacs 21.3.50.2

mlterm-2.8.0
>>957
コンソールのキーバインディングの問題。

例えばLinuxだと、loadkeysで設定。
keycode 53 = slash question
control keycode 53 = Control_underscore
コンソールと言ってもいろいろあるが。
emacs-lisp-mode で";;;"で始まる行の色を変えたいと思うのですが
(";;"と区別するため)

(font-lock-add-keywords
'emacs-lisp-mode
'(
(";;;.*$" . xxx-face)
))

でやっても";;;で始まる行は
xxx-faceにはならないで,font-lock-comment-faceのままです.
どうしたらよいでしょうか?
C-h f font-lock-add-keywords すれ。