Emacs part12
レス数が950を超えています。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/
0858名無しさん@お腹いっぱい。
NGNG素直に customize-face しては?
0859名無しさん@お腹いっぱい。
NGNG0860名無しさん@お腹いっぱい。
NGNG俺は自分で subrp や byte-compile-function-p の結果を見て色付けしてる。
0861名無しさん@お腹いっぱい。
NGNG0863857
NGNGレスありがとうございます。
でも個々の関数を一つ一つsubrp や byte-compile-function-pを使用して
チェックするのは時間がかかりませんか?
自分のイメージとしては
"[^'[](\\([[:alpha:]0-9][[:alpha:]0-9/#=_-]+\\)"
にマッチする関数に色をつけたいのですが、これだと
(let (a (point)))
や
(defun foo (a) )
などの `a' の部分までマッチしてしまうので、このようなケースを見わけてフォントロックを
してくれるパッケージを探しています。
0864名無しさん@お腹いっぱい。
NGNGいや、だからそういう正規表現でいったんマッチさせて、
その結果を自力でチェックしてくんだよ。
俺は font-lock-keywords を利用していて、体感速度に不満はないよ。
編集のたびに全行をスキャンしてたら大変そうだけどね。
0865名無しさん@お腹いっぱい。
NGNG0866名無しさん@お腹いっぱい。
NGNG0867858
NGNGおもしろそうなので試しにやってみたよ。たしかに速度的には問題ないね。
でも同じ setq でも色付く所と付かない所があるな。どっかやり方が間違って
るんだろうけど(;´Д`)
0868名無しさん@お腹いっぱい。
NGNGとりあえず適当な設定例きぼん。< subrpとか利用したfontify
よさげだったら自分でも弄くってみよう。
0869名無しさん@お腹いっぱい。
NGNG正規表現が原因でなければ、
もともとのキーワードとの絡みで append とか prepend とかを指定する
必要があるって話かもしれない
0871名無しさん@お腹いっぱい。
NGNGこんなコード書くと無限ループになっちゃうんだけど、
(while (read-key-sequence "無限ループ。試すな危険"))
この状態から抜ける方法って何かあるかな?
0872名無しさん@お腹いっぱい。
NGNGなれなれしい文章が気に入らんが、ある
0873名無しさん@お腹いっぱい。
NGNGrー、
」´ ̄`lー) \
T¨L |_/⌒/ <- throw
`レ ̄`ヽ〈
| i__1
_ゝ_/ ノ
L__jイ´_ )
| イ
| ノ--、 r'⌒ヽ_
ゝ、___ノ二7 /´ ̄l、_,/}:\
|ーi | l_/ /__ィ::. ゝ~_ィ´:; ,ゝ
__〉 { (T´ |1:::. \_>、};;_」 <- catch
'ー‐┘ ! ` ̄''ァ一 、\ ヽ}
〈` ̄ ̄^`¬ノ .::〔 ̄´
1 ヽ .:::レ ヽ、
|_イー-、_;;j|_:. ゝ、
__,,,... -- |. {―――‐フゝ、 〉 -- ...,,,__
_,, -‐ ´ ,r|__ト, 1ニノ ー'´ ` ‐- ,,_
, ‐ ´ └―'´ `
0874871
NGNGなれなれしくてすまんです。
で、どうやればできます?
例えば、
(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 ""))
の状態に間違ってなっちゃった場合どうやれば抜けれるでしょうか?
が質問したい内容です。
0875871
NGNG>>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名無しさん@お腹いっぱい。
NGNGhttp://pc5.2ch.net/test/read.cgi/unix/1063880951/304
適当に試したものを貼ってみた。もっといいのできたらよろしく。
0877名無しさん@お腹いっぱい。
NGNG0878名無しさん@お腹いっぱい
NGNGみたいな設定を登録するファイルは、
Linuxなどでは、~/.Xdefaultsらしいが、
FreeBSDでではどこ?
あと、グラフィカルログインか否かで違ってくる?
0879名無しさん@お腹いっぱい。
NGNG~/Emacs
0880名無しさん@お腹いっぱい
NGNG0881名無しさん@お腹いっぱい。
NGNGそう言うお前は態度がでかくて横柄だな
0882名無しさん@お腹いっぱい。
NGNG0883名無しさん@お腹いっぱい。
NGNG'''文字列'''
の「文字列」の部分だけを色付けしたいのですが、フォントロックに
'("\\('''\\)\\([^']\\|'[^']\\|''[^']\\)+\\('''\\)" 2 font-lock-string-face )
を足しても最後の一文字しか色付けされません。どうやったらうまくいくでしょうか?
0884名無しさん@お腹いっぱい。
NGNGこれを
\\([^']\\)+
こうするんじゃ駄目なの?
0886名無しさん@お腹いっぱい。
NGNG>>883 のやつは () でくくった二番目を色付けするって意味?
だとしたら
\\([^']\\|'[^']\\|''[^']\\)+
これを
\\(\\([^']\\|'[^']\\|''[^']\\)+\\)
こうしないと駄目じゃないの?
0888871
NGNGregexp だけだと多分無理な気がするんで、こんなんでどうすかね?
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名無しさん@お腹いっぱい。
NGNG0890名無しさん@お腹いっぱい。
NGNG0891名無しさん@お腹いっぱい。
NGNG0892名無しさん@お腹いっぱい。
NGNGhttp://www.google.com/search?q=rail+site:gouketsu.net&hl=ja&lr=lang_ja&ie=Shift_JIS
みてがんがれ
0894名無しさん@お腹いっぱい。
NGNG自分も前使っていたんだけど、どこ行ったのか分からなくなったし、
Mule と Meadow の日本語バージョン名しか必要なかったから、自分で作ったよ。
0895名無しさん@お腹いっぱい。
NGNGおまえら、Speedbar使ってる?
0896名無しさん@お腹いっぱい。
NGNG0897895
NGNGアゲなのに、たったこれだけのレスがつくのに1時間かかるUNIX板が好き。
0898名無しさん@お腹いっぱい。
NGNG0899Linuxer
NGNGweb上に貼りたいときはテキストブラウザをemacs内で立ち上げるか、いったん保存して
他のアプリから貼り付けるかしてる。
最近、gnome-terminal内で-nwオプションで立ち上げるとターミナル自身のコピペ機能を
利用できることに気づいたが、なんかやだ。
なんとかならんのですか?
0900名無しさん@お腹いっぱい。
NGNG0901名無しさん@お腹いっぱい。
NGNG> X上で動くemacsでも、emacs -> mozilla等、他アプリにコピペ出来ないのが痛いな。
普通(?)はできる訳だが。
0902名無しさん@お腹いっぱい。
NGNGなぜ出来なくなっちゃってるんだろうね。
0903名無しさん@お腹いっぱい。
NGNG本当に出来ないのなら、ディストリのスレに行った方がいいと思う。
勘違いしてるかもしれないけど、
Emacs の kill-ring と X の clipboard は別だよ。
clipboard 経由なら emacs <-> 他アプリ でコピペ出来る。
0904名無しさん@お腹いっぱい。
NGNG本当に。
0905名無しさん@お腹いっぱい。
NGNGclipboardじゃなくてprimary selectionじゃないっけ?
0906Linuxer
NGNGおまえら、おまえら、ありがとう。
おれは顔から火が出た。
emacsのキルリングはクリップボードとは別物だから仕方がないとあきらめていた。
あるとしたらラッパーかなんかが外部に落ちてる程度かと思っていた。
ちゃんと、別物は別コマンドとして用意されていたんだな。
まじ、はずかしい。
0907名無しさん@お腹いっぱい。
NGNG0908名無しさん@お腹いっぱい。
NGNG別コマンドというか、普通にマウスでドラッグして範囲指定すれば
clipboardに入るよね?
0909名無しさん@お腹いっぱい。
NGNG箇所が [ ] で囲まれていくんですが、これをクリアする方法ってないん
でしょうか。
0910名無しさん@お腹いっぱい。
NGNGそれってrecursive-editに入った状態じゃないの?
0911名無しさん@お腹いっぱい。
NGNGhelp-with-tutorial やっとけ。
0912909
NGNGありがとうございます。
ESC ESC ESC やってみましたが、 *Backtrace* バッファが開いて
Debugger entered--Lisp error: (error "Cannot return from the debugger in an error")
と表示されてしまいました。
で、いろいろ試してたら、M-x top-level で直りました。
0913名無しさん@お腹いっぱい。
NGNG0915909
NGNGC-x o で元のバッファに戻っていたのが敗因でした。
q でデバッガを抜ければいいのね。
0916名無しさん@お腹いっぱい。
NGNGキーボードでする場合は明示的に
(define-key global-map "\M-w" 'clipboard-kill-ring-save)
としないと無理
0917名無しさん@お腹いっぱい。
NGNGよくわからんが elisp の info の Window system selections ってとこに
いろいろ書いてある。
でも、コピペするんなら普通に M-w で selection に入るので、
それでいけるよ。
0918名無しさん@お腹いっぱい。
NGNGnil: 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名無しさん@お腹いっぱい。
NGNGPRIMARY(とSECONDARY)を使って、C-c/C-x/c-vのように明示的なコピー&ペーストの
操作があるときだけCLIPBOARDを使うって規約がどっかにあったと思うんだが
ICCCMだっけ?
PRIMARYもCLIPBOARDも同じ機構だけど使われ方が微妙に違った気がする。
0920名無しさん@お腹いっぱい。
NGNG0921名無しさん@お腹いっぱい。
NGNG0922名無しさん@お腹いっぱい。
NGNGリモートの cygwin の Xwin.exe に表示させようとすると起動しません。
.emacs を読み込みに行っている気配もありません。
何が起こっているのか知りたいのですが、emacs の起動時の
振舞を逐一表示させるデバッグモードもしくは verbose モード
のようなものはありませんか?
0923名無しさん@お腹いっぱい。
NGNG0924名無しさん@お腹いっぱい。
NGNGでもどっちかというと、Emacs以前にXの問題のような気がする。
ほかのXクライアントはちゃんと出るのか? xeyesとか。
その次はXのリソースの指定があれば一旦全部無効にして、-qつけて試すとか。
0925名無しさん@お腹いっぱい。
NGNGhttp://freedesktop.org/wiki/Standards_2fClipboardsWiki
これかな。
GNU Emacs のデフォルト動作がこれから激しく逸脱してるのは間違いない。
0926名無しさん@お腹いっぱい。
NGNG0927名無しさん@お腹いっぱい。
NGNGGNOME も KDE も動いてます。
xgalaga でゲームもできてるんです。
フォントが足りないから?とかおもって xfs でフォントを引っ張ってきてみたり、
depth の問題?とかおもってdepthもいろいろと変えて試してみたんですが。
つかれたので emacs -nw で使うことにします。
0928927=922
NGNG0929名無しさん@お腹いっぱい。
NGNGいうのを経験したことがあるんだけど、そのときはどうやったんだっけか、
思い出せない。
0930名無しさん@お腹いっぱい。
NGNG普段は、c-basic-offsetを2にしてるんですが、4や8もあるんですよね。
動的に変えたいんですが、便利なminor-modeとかないっすか?
0931名無しさん@お腹いっぱい。
NGNGCは書かないので便利なelispとかは知らないが、
M-x change-offsetとかすると、c-basic-offsetをバッファローカルにして、
現在が2なら4,4なら8,8なら2に変更するコマンドを書くのは?
別にミニバッファから数値読み込んでもいいが。
0932名無しさん@お腹いっぱい。
NGNG0933名無しさん@お腹いっぱい。
NGNGなんとか速くする方法ありませんか?
0934名無しさん@お腹いっぱい。
NGNG0935名無しさん@お腹いっぱい。
NGNGあ、それ私も何回も思った。 読んだソースに合わせてインデントの深さ
を設定してくれるだけでもえらく便利になるな。
0936名無しさん@お腹いっぱい。
NGNGファイルに Local Variable を記述するしかないんじゃないですかね.
ファイルの最後にこんな感じ.
/* Local Variables: */
/* c-basic-offset: 2 */
/* End: */
もしくは一行目に
/* -*- c-basic-offset: 2 -*- */
かな.
ファイルを開くと Local Variable になりますよ.
0937名無しさん@お腹いっぱい。
NGNG中身を調べて適当にモードや変数を変える関数を加えるくらいなら
簡単にできそうだな。
0938名無しさん@お腹いっぱい。
NGNG結局インデントが合わなかったり
たまたまマッチさせた行がインデントおかしかったりすることもあるし
>>936の方法に限っていないけどソース以外のところでチェックしないと無理だと思うよ
0939名無しさん@お腹いっぱい。
NGNG私は hook でファイルのパスを調べてタブとインデントを設定してます。
たいていの場合、同じプロジェクトのファイルは同じパス以下にあって、
プロジェクト単位ではタブとインデントが統一されてるから。
いじるプロジェクトが増減すると設定も見直さなきゃならないけど、
その都度 M-: ほげほげするよりは楽だし、
うっかり違う設定で commit しちゃうと悪いので。
0940名無しさん@お腹いっぱい。
NGNGpbf-modeってのがあるね。
0941名無しさん@お腹いっぱい。
NGNGttp://homepage1.nifty.com/blankspace/emacs/sticky.html
を便利に使わせてもらっていますが、たまに input-method をフランス語
キーボード (french-azerty) にすると、シフト + セミコロンが句読点 (".")
に割り当てられているのでセミコロンが入力できなくなります。
競合を解決するか、この時だけ sticky-shift を無効にするにはどうしたら
よいでしょうか?
へぼい質問で申し訳ありませんが、よろしくお願いします。
0942名無しさん@お腹いっぱい。
NGNGhook の一種だけど, autoinsert 使えば同じコトがもっと楽にできるよ.
オレは普段 Meadow 使ってるから
デフォルトのコーディングシステムは sjis なんだけど
perl とか shell-script とか書くときは euc がいいからこんな風にしてる.
(setq auto-insert-alist
'(((cperl-mode . "Shell-Script mode magic number") ""
'(setq buffer-file-coding-system 'euc-jp-unix)
"#!/usr/bin/perl\n\n"
"### " (file-name-nondirectory (buffer-file-name)) "\n\n"
_ "\n\n### " (file-name-nondirectory (buffer-file-name)) " ends here.\n")
((sh-mode . "Shell-Script mode magic number") ""
'(setq buffer-file-coding-system 'euc-jp-unix)
"#!/bin/sh\n\n"
"### " (file-name-nondirectory (buffer-file-name)) "\n\n"
_ "\n\n### " (file-name-nondirectory (buffer-file-name)) " ends here.\n")
(("bin/[^.]+[^/]\\'" . "Shell-Script mode magic number") ""
'(when (eq major-mode default-major-mode)
(sh-mode)
(setq buffer-file-coding-system 'euc-jp-unix)
(insert "#!/bin/sh\n\n")
(insert "### " (file-name-nondirectory (buffer-file-name)) "\n\n")
(insert "\n\n### " (file-name-nondirectory (buffer-file-name)) " ends here.\n")
(forward-line -3)))
(("^[^.]+\\.el\\'" . "Emacs Lisp header") ""
'(setq buffer-file-coding-system 'euc-jp-unix)
";;; " (file-name-nondirectory (buffer-file-name)) " -*- mode: Emacs-Lisp -*-\n\n"
_ "\n\n;;; " (file-name-nondirectory (buffer-file-name)) " ends here.\n")))
0943名無しさん@お腹いっぱい。
NGNG既存のファイルについては変更を加えないこと.
プロジェクトのファイルを編集しても大丈夫.
蛇足だけど .html は html-helper-mode 使っているから
html-helper-insert-new-buffer-strings が新規ファイル作成のときだけ
呼ばれるから, コーディングシステムはここで変えてる.
(defadvice html-helper-insert-new-buffer-strings
(around html-helper-coding activate)
ad-do-it
(set-buffer-file-coding-system 'euc-jp-unix))
これも既存ファイルを勝手に変えないから便利.
0944名無しさん@お腹いっぱい。
NGNGautoinsert って変数も設定できるんですね。
今まで新規作成時のテンプレートとしてしか使ってなかったです。
確かにこの方が楽そう。試してみます、ありがとう。
0945名無しさん@お腹いっぱい。
NGNGと思ったけど、auto-insert-alist の docstring を読む限り、
最初にマッチしたやつしか有効にならないみたい。
それだとグローバルに適用させるには hook のほうが楽かな…
0946名無しさん@お腹いっぱい。
NGNG>>942の
>(("bin/[^.]+[^/]\\'" . "Shell-Script mode magic number") ""
これなら ~/bin/なんとか とか /usr/local/bin/かれこれ
みたいなファイルを find-file で作成すれば
auto-mode-alist にないファイル (拡張子なしとか) も
shell-script-mode になるよ, って設定なので,
この部分をプロジェクトの数だけ用意すればオッケ.
ただし, 先に書いてあるものから優先されるので
記述の順番は気をつけてね.
0947946
NGNGまぁ, そういうコトです….
0948Emacs part13 スレの 1 ◆y1O6Cqv4XU
NGNGhttp://en.wikipedia.org/wiki/Image:Heckert_GNU_white.png
誰か新しいGNUキャラクター作ってやれよ
0949名無しさん@お腹いっぱい。
NGNG妙に擬人化しすぎだな。
0950名無しさん@お腹いっぱい。
NGNG0951名無しさん@お腹いっぱい。
NGNG0952名無しさん@お腹いっぱい。
NGNG家ではビルドできなかった。
あと、-O3 は不可。-O2 可。OS は FreeBSD-5.3stable です。
多分、emacs-unicode-2 でもこのパッチを当てないとビルドできないと思う。
--- emacs-21.3.50/lisp/Makefile.origSun Dec 12 05:40:49 2004
+++ emacs-21.3.50/lisp/MakefileSun Dec 12 05:41:21 2004
@@ -177,7 +177,7 @@
autoloads: $(lisp)/loaddefs.el doit
wd=$(lisp); $(setwins); \
echo Directories: $$wins; \
-$(EMACS) $(EMACSOPT) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
+$(EMACS) $(EMACSOPT) -l emacs-lisp/autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
$(lisp)/subdirs.el:
$(MAKE) $(MFLAGS) update-subdirs
0953名無しさん@お腹いっぱい。
NGNG( ´_ゝ`)フーン
0954名無しさん@お腹いっぱい。
NGNG俺まさにいまから -O3 他最適化オプション満載で
リビルドしようと思っていたのに。
0955名無しさん@お腹いっぱい。
NGNGSolaris 9だと当てなくてもOK
0956名無しさん@お腹いっぱい。
NGNGC-e の挙動がおかしくなった.最悪.
0957名無しさん@お腹いっぱい。
NGNG(vertical-motion 0)
の動作が行頭へ移動に戻ったからね。
physical-line.el とやらを変更する必要があるかも。
レス数が950を超えています。1000を超えると書き込みができなくなります。