トップページunix
982コメント294KB

Emacs part12

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001今臭NGNG
今日も秀丸の起動から一日が始まります。
各種 Emacs 関連はこちらで。

Emacs part11 (前スレ)
http://pc3.2ch.net/test/read.cgi/unix/1075033822/

emacs撲滅委員会
http://pc3.2ch.net/test/read.cgi/unix/1073293910/
0827Emacs part13 スレの 1 ◆y1O6Cqv4XU NGNG
>>820
>>823

コテつけてから人にいちゃもんつけろよ。
それからなら俺の文句はいくら言ってもいいからよ。
勇気ねー奴等だな、ほんまに
0828名無しさん@お腹いっぱい。NGNG
>>826
> allout.el の hotspot 機能が面白いと思うので、

どんな機能?
0829名無しさん@お腹いっぱい。NGNG
>>824
> ./locals.texi:202: Cross reference to nonexistent node `Yet to be written' (perhaps incorrect sectioning?).
なんだから、locals.texi の最新の変更の前の時間に合わせてcheck outしる。あるいは、待つ。
0830名無しさん@お腹いっぱい。NGNG
>>827
コテつけるかどうかと何を発言してもいいかは無関係。
まだそんなことも知らないの?
0831名無しさん@お腹いっぱい。NGNG
>>828
そんな機能はない。
ソース中にない言葉を使われているのでサッパリサッパリだが
エスパーの俺が想像するに、isearch中に必要なところだけ
折り畳んであるのを一時的に開く機能じゃないだろか。
あれはEmacsの標準機能でそういうプロパティがあるのでそれほど難しくはない。
0832名無しさん@お腹いっぱい。NGNG
今から、新たにインストールするとすれば、EmacsかMuleのどちらがいい?
Muleは多言語対応らしいが、当方、使う非日本語はせいぜい英語くらいなのだが。
というか、最近のEmacsとMuleの違いって何?おまえらはどっち使ってる?
0833名無しさん@お腹いっぱい。NGNG
Muleなんてまだあるの?
0834826NGNG
>>831
ソースの中にあるよ。
;; - "Hot-spot" operation, for single-keystroke maneuvering and
;; exposure control. (See the outline-mode docstring.)

詳しくはソースの解説を見て欲しいが、
簡単に説明すると、
アウトラインの見出しの上にポインタがあるとき、
\C-c\C-f とかの面倒な prefix を省いて、
単なる f で outline-forward-current-level を実行できるって機能。
0835名無しさん@お腹いっぱい。NGNG
テキストプロパティはりつけて終わりかな。
0836名無しさん@お腹いっぱい。NGNG
Mule: Emacs 19 に対する非公式の多言語対応。
Emacs20 からは Mule パッチの作者さんが直接 Emacs 本体に組み込んだハズ。
0837名無しさん@お腹いっぱい。NGNG
>>826,824
831ではないが、hot-spotを勝手にhotspotにした方が悪い。
0838826NGNG
悪かった。心から懺悔する。涙を流して猛省する。
0839名無しさん@お腹いっぱい。NGNG
未だにNemacsも併用してる俺。
0840名無しさん@お腹いっぱい。NGNG
emacs, muleどちらも同じとすれば、muleの存在意義とは?
0841名無しさん@お腹いっぱい。NGNG
Solaris + gcc-3.3 or later だと、emacs-21.3.50 しかコンパイルできない。
0842825NGNG
>>825(outline-minor-mode
にコメントくれた人、ありがとう。
なんだかよくわからんから普通のoutline-minor-modeでがまんするわ。
0843名無しさん@お腹いっぱい。NGNG
ECB使ってみるとか。
# 大きいファイルだとバッファ切り替えごとに時間かかるのがなー。
0844825NGNG
>>843
こんなものがあったのですか。すげーですね。
ちょっとやりすぎな感も否めないがw

おもしろそうなのでたわむれてみます。
0845Emacs part13 スレの 1 ◆y1O6Cqv4XU NGNG
>>844
> おもしろそうなのでたわむれてみます。

でも多分、ECBは自然と使用しなくなると思うね。あれは使用しにくいから
0846825NGNG
>>845
やぱ、そうなのですか。orz
ECBのサイトやスクリーンショットを見たときはかなり魅力的に目に映ったのですが、
いまユーザーズマニュアルに目を通してて、ちょっと賦活レベルが下がってしまいました。
使いにくいかどうかはわかりませんが、なんせややこしい。。。w
0847名無しさん@お腹いっぱい。NGNG
そんなに使いにくいとは思わないけどなあ。とても便利とも思わないが。
基本的にはM-x ecb-activateするだけだよ。
やめるのはいつでもできるから、入れる暇が出来たら試してみれば?
0848Emacs part13 スレの 1 ◆y1O6Cqv4XU NGNG
>>844
わかる。
まず、自分好みのecbレイアウトを作るのにマニュアルをかなり読まなきゃならんからうざい。
俺は自分で ecb-layout-name を決めてから、 そのレイアウト名用に `ecb-layout-define' によって自分風の
レイアウトを作ったとおもう。
0849名無しさん@お腹いっぱい。NGNG
うざいのはお前。
0850587NGNG
ECB使ってるひとがいるのか.
587分かります?
0851Emacs part13 スレの 1 ◆y1O6Cqv4XU NGNG
>>849
> うざいのはお前。

君はなんでそうもしつこく俺に粘着するの?
もうちょっと大人になりなされ
0852名無しさん@お腹いっぱい。NGNG
しつこくって……俺は今のECBの話題以外はお前とは関係ないぞ。被害妄想な奴。

0853名無しさん@お腹いっぱい。NGNG
>>851
粘着されたくないなら名無しになるといいよ。
0854名無しさん@お腹いっぱい。NGNG
>>850
たぶんデフォルトでは無理じゃないかな。
semantic cacheのとりかたとか、ファイル単位に依存してるし。

ただ、ecb-post-process-semantic-taglistという仕組みがあって
taglistを受け取ってtaglistを返す関数を登録できるので、
バッファローカル変数とかで設定した関連ファイルのタグをリストに追加するような
関数を登録すればできそう。その関数書くのはちょっと面倒そうだけれども。
0855825NGNG
とりあえず入れてみました。
しばらく使ってみます。
(でもすでに「スゲースゲー」って遊んだ後の微妙な雰囲気を感じていますが。。。)
なぜかsemanticロード時にちょいエラーがでるのでこいつも解決しないと。
ありがとう。
0856850NGNG
>>854
そうですかぁ.
レスどうもありがとうございました.
0857名無しさん@お腹いっぱい。NGNG
lisp-interaction-mode やemacs-lisp-modeでLisp関数だけを色付けしてくれる
font-lockパッケージはありませんか?
Lispプログラミングしていると関数と変数の見分けがつきにくいので、あると
かなり助かります。
0858名無しさん@お腹いっぱい。NGNG
>>857
素直に customize-face しては?
0859名無しさん@お腹いっぱい。NGNG
Lisp関数に何らかの face attribute がなければcustomize-faceしようがないと思うのですが。
0860名無しさん@お腹いっぱい。NGNG
>>857
俺は自分で subrp や byte-compile-function-p の結果を見て色付けしてる。
0861名無しさん@お腹いっぱい。NGNG
あ、byte-code-function-p の間違い。
0862858NGNG
>>861 ああ、そういうことか。
>>859 失礼。
0863857NGNG
>>860
レスありがとうございます。
でも個々の関数を一つ一つsubrp や byte-compile-function-pを使用して
チェックするのは時間がかかりませんか?

自分のイメージとしては
"[^'[](\\([[:alpha:]0-9][[:alpha:]0-9/#=_-]+\\)"
にマッチする関数に色をつけたいのですが、これだと
(let (a (point)))

(defun foo (a) )
などの `a' の部分までマッチしてしまうので、このようなケースを見わけてフォントロックを
してくれるパッケージを探しています。
0864名無しさん@お腹いっぱい。NGNG
>>863
いや、だからそういう正規表現でいったんマッチさせて、
その結果を自力でチェックしてくんだよ。
俺は font-lock-keywords を利用していて、体感速度に不満はないよ。
編集のたびに全行をスキャンしてたら大変そうだけどね。
0865名無しさん@お腹いっぱい。NGNG
Ctrl + [right]のキーをセットしたいんですけど、どう書けばよいんですかね?
0866名無しさん@お腹いっぱい。NGNG
[(control right)]じゃね?
0867858NGNG
>>864
おもしろそうなので試しにやってみたよ。たしかに速度的には問題ないね。
でも同じ setq でも色付く所と付かない所があるな。どっかやり方が間違って
るんだろうけど(;´Д`)
0868名無しさん@お腹いっぱい。NGNG
面白そうだけど、自分で設定してまでやってみたいとは思ってないから、
とりあえず適当な設定例きぼん。< subrpとか利用したfontify
よさげだったら自分でも弄くってみよう。
0869名無しさん@お腹いっぱい。NGNG
>>864
正規表現が原因でなければ、
もともとのキーワードとの絡みで append とか prepend とかを指定する
必要があるって話かもしれない
0870869NGNG
あーすまん、>>867 だった。
0871名無しさん@お腹いっぱい。NGNG
質問!
こんなコード書くと無限ループになっちゃうんだけど、
(while (read-key-sequence "無限ループ。試すな危険"))
この状態から抜ける方法って何かあるかな?
0872名無しさん@お腹いっぱい。NGNG
>>871
なれなれしい文章が気に入らんが、ある
0873名無しさん@お腹いっぱい。NGNG

        rー、
    」´ ̄`lー) \
    T¨L |_/⌒/  <- throw
     `レ ̄`ヽ〈
       |  i__1
     _ゝ_/ ノ
      L__jイ´_ )
        |  イ
         |  ノ--、           r'⌒ヽ_
        ゝ、___ノ二7  /´ ̄l、_,/}:\
         |ーi |   l_/ /__ィ::.  ゝ~_ィ´:; ,ゝ
        __〉 {      (T´ |1:::.  \_>、};;_」 <- catch
       'ー‐┘       ! ` ̄''ァ一 、\ ヽ}  
               〈` ̄ ̄^`¬ノ .::〔 ̄´  
                   1  ヽ   .:::レ  ヽ、
                |_イー-、_;;j|_:.   ゝ、
                __,,,... -- |. {―――‐フゝ、   〉 -- ...,,,__
        _,, -‐ ´       ,r|__ト,    1ニノ ー'´       ` ‐- ,,_
    , ‐ ´         └―'´                     `

0874871NGNG
>>872
なれなれしくてすまんです。

で、どうやればできます?
例えば、
(while (and (not finish)
(setq key (read-key-sequence "無限ループ。試すな危険")))
(when (eq 'keyboard-quit (lookup-key key))
(setq finish t)
(message "finish!")))
とかして明示的に抜けるようにすれば抜けれますけど、>>871 みたいな、そうことを考
えてないコードじゃだめですよね?

もともとの質問が悪かったかもしれないんですが、
(while t)
とか
(while (read-string ""))
だったら C-g (keyboard-quit) で抜けることができるけど、
(while (read-key-sequence ""))
の状態に間違ってなっちゃった場合どうやれば抜けれるでしょうか?
が質問したい内容です。

0875871NGNG
訂正。
>>874 の最初のコードは
(let (finish key)
(while (and (not finish)
(setq key (read-key-sequence "無限ループ。試すな危険")))
(when (eq 'keyboard-quit (lookup-key (current-global-map) key))
(setq finish t)
(message "finish!"))))
です。
0876名無しさん@お腹いっぱい。NGNG
>>868
http://pc5.2ch.net/test/read.cgi/unix/1063880951/304
適当に試したものを貼ってみた。もっといいのできたらよろしく。
0877名無しさん@お腹いっぱい。NGNG
canna
0878名無しさん@お腹いっぱいNGNG
emacs*Background: DarkSlateGray
みたいな設定を登録するファイルは、
Linuxなどでは、~/.Xdefaultsらしいが、
FreeBSDでではどこ?
あと、グラフィカルログインか否かで違ってくる?
0879名無しさん@お腹いっぱい。NGNG
>>878
~/Emacs
0880名無しさん@お腹いっぱいNGNG
>>879 thanx
0881名無しさん@お腹いっぱい。NGNG
>>872
そう言うお前は態度がでかくて横柄だな
0882名無しさん@お腹いっぱい。NGNG
……
0883名無しさん@お腹いっぱい。NGNG
emacs で

'''文字列'''

の「文字列」の部分だけを色付けしたいのですが、フォントロックに

'("\\('''\\)\\([^']\\|'[^']\\|''[^']\\)+\\('''\\)" 2 font-lock-string-face )

を足しても最後の一文字しか色付けされません。どうやったらうまくいくでしょうか?
0884名無しさん@お腹いっぱい。NGNG
\\([^']\\|'[^']\\|''[^']\\)+
これを
\\([^']\\)+
こうするんじゃ駄目なの?
0885883NGNG
>>884
それだと、

'''I'm emacs.'''

が文字列の場合に「I」しかマッチしなくなってしまうので。。。
0886名無しさん@お腹いっぱい。NGNG
font-lock の仕組みよくわからんけど、
>>883 のやつは () でくくった二番目を色付けするって意味?
だとしたら
\\([^']\\|'[^']\\|''[^']\\)+
これを
\\(\\([^']\\|'[^']\\|''[^']\\)+\\)
こうしないと駄目じゃないの?
0887883NGNG
>>886
やっぱりダメでした。
0888871NGNG
>>883
regexp だけだと多分無理な気がするんで、こんなんでどうすかね?
matcher を関数にするときって、成功したらその最後の位置まで point を動かしとか
ないといけないんですね。初めて知った。じゃないと無限ル・・・

(defun 883-font-lock-matcher (bound)
(let (beg end)
(save-match-data
(and (search-forward "'''" bound t)
(setq beg (match-end 0)))
(and (search-forward "'''" bound t)
(setq end (match-beginning 0))))
(when (and beg end)
(set-match-data
(list (save-excursion (goto-char beg) (point-marker))
(save-excursion (goto-char end) (point-marker))))
t)))

(let ((buf-name "*font-lock-test*"))
(and (get-buffer buf-name)
(kill-buffer buf-name))
(setq test-font-lock-keywords '((883-font-lock-matcher . font-lock-string-face)))
(with-current-buffer (get-buffer-create buf-name)
(set (make-local-variable 'font-lock-defaults)
'(test-font-lock-keywords))
(turn-on-font-lock)))
0889名無しさん@お腹いっぱい。NGNG
railの最新版ってどこにある?
0890名無しさん@お腹いっぱい。NGNG
cvs.fan.gr.jp:/var/cvs
0891名無しさん@お腹いっぱい。NGNG
つながんねー
0892名無しさん@お腹いっぱい。NGNG
>>889
http://www.google.com/search?q=rail+site:gouketsu.net&hl=ja&lr=lang_ja&ie=Shift_JIS
みてがんがれ
0893883NGNG
>>888
そんなやり方もあったのかと感心しています
それはいいですね。体感スピードも問題なしです
勉強になりました
0894名無しさん@お腹いっぱい。NGNG
>>889
自分も前使っていたんだけど、どこ行ったのか分からなくなったし、
Mule と Meadow の日本語バージョン名しか必要なかったから、自分で作ったよ。
0895名無しさん@お腹いっぱい。NGNG
Speedbar、なにげに避けていたが使ってみると便利だな。
おまえら、Speedbar使ってる?
0896名無しさん@お腹いっぱい。NGNG
使ってない。
0897895NGNG
>>896
アゲなのに、たったこれだけのレスがつくのに1時間かかるUNIX板が好き。
0898名無しさん@お腹いっぱい。NGNG
そんだけのレスで(意識して)アゲ続ける895のイカれた脳がスキ。
0899LinuxerNGNG
X上で動くemacsでも、emacs -> mozilla等、他アプリにコピペ出来ないのが痛いな。
web上に貼りたいときはテキストブラウザをemacs内で立ち上げるか、いったん保存して
他のアプリから貼り付けるかしてる。
最近、gnome-terminal内で-nwオプションで立ち上げるとターミナル自身のコピペ機能を
利用できることに気づいたが、なんかやだ。
なんとかならんのですか?
0900名無しさん@お腹いっぱい。NGNG
なるよ。
0901名無しさん@お腹いっぱい。NGNG
>>899
> X上で動くemacsでも、emacs -> mozilla等、他アプリにコピペ出来ないのが痛いな。
普通(?)はできる訳だが。
0902名無しさん@お腹いっぱい。NGNG
>>899
なぜ出来なくなっちゃってるんだろうね。
0903名無しさん@お腹いっぱい。NGNG
>>899
本当に出来ないのなら、ディストリのスレに行った方がいいと思う。

勘違いしてるかもしれないけど、
Emacs の kill-ring と X の clipboard は別だよ。
clipboard 経由なら emacs <-> 他アプリ でコピペ出来る。
0904名無しさん@お腹いっぱい。NGNG
そうやって linux 板にクズを押し付けるのはやめてくれよ。
本当に。
0905名無しさん@お腹いっぱい。NGNG
>>903
clipboardじゃなくてprimary selectionじゃないっけ?
0906LinuxerNGNG
>>900-904
おまえら、おまえら、ありがとう。
おれは顔から火が出た。
emacsのキルリングはクリップボードとは別物だから仕方がないとあきらめていた。
あるとしたらラッパーかなんかが外部に落ちてる程度かと思っていた。
ちゃんと、別物は別コマンドとして用意されていたんだな。
まじ、はずかしい。
0907名無しさん@お腹いっぱい。NGNG
x-select-enable-clipboard
0908名無しさん@お腹いっぱい。NGNG
>>906
別コマンドというか、普通にマウスでドラッグして範囲指定すれば
clipboardに入るよね?
0909名無しさん@お腹いっぱい。NGNG
エラーを起こすと、そのたびにモードラインのモードを表示している
箇所が [ ] で囲まれていくんですが、これをクリアする方法ってないん
でしょうか。
0910名無しさん@お腹いっぱい。NGNG
>>909
それってrecursive-editに入った状態じゃないの?
0911名無しさん@お腹いっぱい。NGNG
>>909
help-with-tutorial やっとけ。
0912909NGNG
>>910,911
ありがとうございます。

ESC ESC ESC やってみましたが、 *Backtrace* バッファが開いて

Debugger entered--Lisp error: (error "Cannot return from the debugger in an error")

と表示されてしまいました。

で、いろいろ試してたら、M-x top-level で直りました。
0913名無しさん@お腹いっぱい。NGNG
C-] でいけるよ。
0914909NGNG
>>913
おおっ、ほんとだ。サンクス。
0915909NGNG
というか、いままで *Backtrace* バッファが表示されたときに、
C-x o で元のバッファに戻っていたのが敗因でした。
q でデバッガを抜ければいいのね。
0916名無しさん@お腹いっぱい。NGNG
>>908
キーボードでする場合は明示的に
(define-key global-map "\M-w" 'clipboard-kill-ring-save)
としないと無理
0917名無しさん@お腹いっぱい。NGNG
clipboard と selection って違うのか。
よくわからんが elisp の info の Window system selections ってとこに
いろいろ書いてある。
でも、コピペするんなら普通に M-w で selection に入るので、
それでいけるよ。
0918名無しさん@お腹いっぱい。NGNG
x-select-enable-clipboard が
nil: kill-ring が CLIPBOARD に同期しないので Gtk アプリにペーストできない
t: CLIPBOARD が PRIMARY セレクションより優先されるので、CLIPBOARD に何か
入ってる場合は kterm 等から Emacs にペーストできない
と、t でも nil でも不具合があるので、こんなん書いて対処してる。
(defun my-x-get-selection (type)
(or (condition-case nil (x-get-selection type 'COMPOUND_TEXT)
(error nil))
(condition-case nil (x-get-selection type 'STRING)
(error nil))))
(defun my-select-selections ()
(interactive)
(let ((l (list (my-x-get-selection 'CLIPBOARD)
(my-x-get-selection 'PRIMARY)
(condition-case nil (x-get-cut-buffer 0)
(error nil))))
(x-select-enable-clipboard t) c)
(save-window-excursion
(with-temp-buffer
(dotimes (i (length l))
(insert (format "%d: %s\n" i (nth i l))))
(goto-char (point-min)) (delete-other-windows)
(switch-to-buffer (current-buffer))
(while (progn (setq c (read-char "which string to be killed? "))
(not (and (>= c ?0)
(<= c (+ (length l) ?0))))))
(let ((s (nth (- c ?0) l)))
(kill-new s)
(message "%s" s))))))
0919名無しさん@お腹いっぱい。NGNG
昔からXでやってるような選択でコピーして中ボタンでペーストするようなのは
PRIMARY(とSECONDARY)を使って、C-c/C-x/c-vのように明示的なコピー&ペーストの
操作があるときだけCLIPBOARDを使うって規約がどっかにあったと思うんだが
ICCCMだっけ?

PRIMARYもCLIPBOARDも同じ機構だけど使われ方が微妙に違った気がする。
0920名無しさん@お腹いっぱい。NGNG
混乱するからcxyをここで例えに使うな。馴染みの無い人だって沢山いる。
0921名無しさん@お腹いっぱい。NGNG
gtk版だとgtkのコピー、ペーストに対応してる?
0922名無しさん@お腹いっぱい。NGNG
ローカルのコンソールの X からだと emacs が起動するのに、
リモートの cygwin の Xwin.exe に表示させようとすると起動しません。
.emacs を読み込みに行っている気配もありません。

何が起こっているのか知りたいのですが、emacs の起動時の
振舞を逐一表示させるデバッグモードもしくは verbose モード
のようなものはありませんか?
0923名無しさん@お腹いっぱい。NGNG
ありません
0924名無しさん@お腹いっぱい。NGNG
~/.emacsの読み込み中のエラートラップは--debug-initだっけ。
でもどっちかというと、Emacs以前にXの問題のような気がする。
ほかのXクライアントはちゃんと出るのか? xeyesとか。
その次はXのリソースの指定があれば一旦全部無効にして、-qつけて試すとか。

0925名無しさん@お腹いっぱい。NGNG
>>919
http://freedesktop.org/wiki/Standards_2fClipboardsWiki
これかな。

GNU Emacs のデフォルト動作がこれから激しく逸脱してるのは間違いない。
0926名無しさん@お腹いっぱい。NGNG
cua-mode
レス数が900を超えています。1000を超えると表示できなくなるよ。