Emacs part 27
■ このスレッドは過去ログ倉庫に格納されています
0001Zeno
2008/11/09(日) 08:48:02スレッドルールは以下の通り:
* 初心者にやさしく接すること
* Emacsユーザーとの仲間意識をしっかり持って、馴れ合いを怠らないこと
* このスレでのコミュニケーションを前スレ以上に活発にすること (用がなくとも、毎日の書き込みが理想)
* 部外者/非Emacsユーザーの書き込みも可。但し、女性の書き込みは場の雰囲気を乱すので不可
* 自分で書いた便利なコード/アイディアは他人とシェアしようと試みること
_/l__
/ く
| ´ω` | ぐにゅう emacs
| C='|
* Emacs スレッドのマスコットキャラである「ぐにゅう君」 (↑のAA) と
吾 (Zeno ◆5nZQbNmQPs) への挨拶も忘れないように!
GNU Emacs - Free Software Foundation (FSF) http://www.gnu.org/software/emacs/
EmacsWiki http://www.emacswiki.org/
Emacs 電子書棚 http://www.bookshelf.jp/
Emacs CVS Repositories [Savannah] http://savannah.gnu.org/cvs/?group=emacs
Emacs Lisp List http://www.damtp.cam.ac.uk/user/sje30/emacs/ell-date.html
最新の stable リリース (22.2) のダウンロード http://ftp.gnu.org/pub/gnu/emacs/emacs-22.2.tar.gz
Windows用 NTEmacs の最新ダウンロード https://sourceforge.jp/projects/ntemacsjp/files/
前スレ http://pc11.2ch.net/test/read.cgi/unix/1218093847/
CVS先端: cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
Emacs は世界を救う!
0143名無しさん@お腹いっぱい。
2008/11/19(水) 18:30:38可能です
0144名無しさん@お腹いっぱい。
2008/11/19(水) 18:36:55自分では役に立ってると思ってんのかな。
0145名無しさん@お腹いっぱい。
2008/11/19(水) 18:39:130146名無しさん@お腹いっぱい。
2008/11/19(水) 18:43:290147名無しさん@お腹いっぱい。
2008/11/19(水) 18:45:350148名無しさん@お腹いっぱい。
2008/11/19(水) 18:59:30ミニバッファなんて常に書き換えられるから、
まともに機能するようなものを作ろうとなるとかなり大変そうだし
0149名無しさん@お腹いっぱい。
2008/11/19(水) 19:45:41インタラクティブに実行すればできる。
0150名無しさん@お腹いっぱい。
2008/11/19(水) 19:59:37どの関数をインタラクティブに実行すればできるのでしょうか?
0151名無しさん@お腹いっぱい。
2008/11/19(水) 20:14:07ひょっとして出来無いの?
0152名無しさん@お腹いっぱい。
2008/11/19(水) 20:17:440153名無しさん@お腹いっぱい。
2008/11/19(水) 20:56:59(for ((i=0;i<100;i+=4)) ; do echo $i ; sleep 1; done) | zenity -progress -auto-close
こんなのを実行する感じですか?
でもemacsでやりたいんですよね。
0154名無しさん@お腹いっぱい。
2008/11/19(水) 21:15:320155名無しさん@お腹いっぱい。
2008/11/19(水) 21:58:01書き換えられても一瞬で元に戻りやがるやついるやん
0156名無しさん@お腹いっぱい。
2008/11/19(水) 22:45:47ミニバッファにこだわらず、
小さめの別バッファ(ウィンドウ)作って、そこに書いて、5秒後に消す、
とかじゃだめなの?
0157名無しさん@お腹いっぱい。
2008/11/19(水) 23:41:05そんなんじゃ、それっぽくないだろ。
0158名無しさん@お腹いっぱい。
2008/11/20(木) 03:22:07という格言は忘れるべきではない。
0159名無しさん@お腹いっぱい。
2008/11/20(木) 03:32:29それってなに?
0160名無しさん@お腹いっぱい。
2008/11/20(木) 04:31:13> このスレは、質問してる奴の方が「できる人」っぽいという不思議なスレだな。
一部、解答(したふりを)している人間にホラ吹きがいるようだからね。
0161名無しさん@お腹いっぱい。
2008/11/20(木) 04:33:370162名無しさん@お腹いっぱい。
2008/11/20(木) 04:34:17だからホラ吹きなんじゃん。
0163名無しさん@お腹いっぱい。
2008/11/20(木) 04:46:260164名無しさん@お腹いっぱい。
2008/11/20(木) 08:23:31(pop-to-buffer foo) や (display-buffer foo) を実行すると、
フレームの下半分に foo のバッファがポップアップされますが、
上のバッファがポップアップされた間隔分、上に持ち上げられてしまい、
その後、下のポップアップバッファ上で (delete-buffer)をしても、
前の視点が戻りません (画面が上に持ち上げられたまま)。
(pop-to-buffer foo) をしても、元のバッファの視点は同じで、
ポップアップされた間隔分上に持ち上げられなくするにはどうすればいいですか?
0165名無しさん@お腹いっぱい。
2008/11/20(木) 08:42:580166名無しさん@お腹いっぱい。
2008/11/20(木) 09:34:39(read) が read_minibuffer を中で実行してるみたいですね。
実際それでやっても同様のことができました。
どうやって状態を保存してるのかは時間がなくてトレースできなかったのですが、
(read) は何かのインプットを待ち構えてしまうので、できるなら
そうならずに同様のことができれば最高なんですが。。
0167名無しさん@お腹いっぱい。
2008/11/20(木) 12:56:49python.el
でlocale関係の命令呼ばれるとエラーでる
それやっても治らなかった
0168名無しさん@お腹いっぱい。
2008/11/20(木) 13:03:19import pylab
したいだけなのに変に苦労しないといけないのはpython.el使ってる人が実はあんまりいないってことなのか
0169名無しさん@お腹いっぱい。
2008/11/20(木) 13:10:02そういうことだ。
0170名無しさん@お腹いっぱい。
2008/11/20(木) 15:35:270171名無しさん@お腹いっぱい。
2008/11/20(木) 17:24:29自動で挿入されるんですが保存したときに体裁が崩れてしまいます。
修正したいんですがどこで(どういう関数が)この挿入をしているのか
わかりません。どなたかおしえてくだしあ
;;
;; tmp.el
;;
;; Made by A A
;; Login <a@a-laptop>
;;
;; Started on Sun Nov 6 00:00:00 2008 A A
Last update Sun Nov 6 00:00:03 2008 A A
↑こういうのです
0172名無しさん@お腹いっぱい。
2008/11/20(木) 17:49:37(let ((s (window-start)))
(display-buffer foo)
(set-window-start (selected-window) s))
とか
(let ((s (window-start))
(w (selected-window)))
(pop-to-buffer foo)
(set-window-start w s))
でいいのでは。で、 foo に用が無くなったら
(delete-window-on foo)
0173名無しさん@お腹いっぱい。
2008/11/20(木) 18:35:39少なくとも私の環境では、どちらを試しても
ポップアップされた間隔分、上位のバッファが上に持ち上げられますね
(カーソルが元々画面の半分目以下に位置していた場合)。
その点、C の read_minibuffer 関数を内部で使用している関数 (例えば
>>165さんの (read) ではその現象が生じないんです。
ただ、その場合、何かのインプット待ち状態になってしまうので、融通がきかないのです。
0174名無しさん@お腹いっぱい。
2008/11/20(木) 20:44:46http://pc11.2ch.net/test/read.cgi/linux/1067706152/551
で, リージョンの文字をSKKの辞書形式に変換するelispを書いたのですが,
わからないことがあるので質問させてください.
上記の関数ではreplace-regexp-in-string でマッチした文字を16進数に
変換するためにformatを使っているのですが, あらかじめ設定した変数を
渡さずにマッチした文字を取得する方法がわかりませんでした.
match-stringで取れるかと思ったのですが, replace-regexp-in-string内部
では使えない(?)みたいです.それができれば
(kill-new
(concat
"(concat \""
(replace-regexp-in-string
"[\\\\;/\r\n\"]"
(format "\\x%x" (string-to-char 一致した文字))
(buffer-substring (region-beginning) (region-end)) nil t)
"\")"))
みたいに綺麗に書けるはずなので, ぜひやり方を知りたいです.
; formatの上にconcatとか激しく無駄だ…orz
0175名無しさん@お腹いっぱい。
2008/11/20(木) 20:48:36autoinsertだっけ
0176名無しさん@お腹いっぱい。
2008/11/20(木) 20:49:270177名無しさん@お腹いっぱい。
2008/11/20(木) 21:03:23了解です. もう一度マニュアルを読み直してみます.
0178名無しさん@お腹いっぱい。
2008/11/20(木) 21:12:39個人で雛形を用意してauto-insertを使って雛形を挿入するとそ
の雛形にさらに>>171みたいなのを追加するんで困ってます。
defaultのどこかの設定がやっていると思うのですが自分では探
せませんでした。
バッファを保存するとコメントになっていた
;; Last update Sun Nov 6 00:00:03 2008 A A
を
Last update Sun Nov 6 00:00:03 2008 A A
のように置き換えてしまいます。どうしたらよいでせうか
0179名無しさん@お腹いっぱい。
2008/11/20(木) 21:57:45(current-window-configuration)の値を自分で管理。
(setq x (current-window-configuration))
〜
(set-window-configuration x)
0180名無しさん@お腹いっぱい。
2008/11/20(木) 22:12:46その動き、timestamp じゃないか?
time-stamp-line-limit
time-stamp-format
time-stamp-start
time-stamp-end
このへんの設定を教えてもらえれば分かるかも。
0181名無しさん@お腹いっぱい。
2008/11/20(木) 23:10:49すいません。力不足でtime-stamp-*の値とかどうなってるのか
調べられませんでした。
見当違いかもしれませんが自分の.emacsにはtime-stampの設定で
(if (not (memq 'time-stamp write-file-hooks))
(setq write-file-hooks
(cons 'time-stamp write-file-hooks)))
と書いています。
0182172
2008/11/20(木) 23:20:41じゃ、 read の代わりに recursive-edit を使って、
(save-window-excursion (display-buffer foo) (recursive-edit))
または
(save-window-excursion (pop-to-buffer foo) (recursive-edit))
元に戻すときは
(exit-recursive-edit)
でどうですかね。 recursive-edit から抜けるのを忘れそうですが。
0183名無しさん@お腹いっぱい。
2008/11/20(木) 23:27:47を保存するたびに
Last update Sun Nov 6 00:00:03 2008 A A
の後ろが二文字ずつ削除されていき、
Last update Sun Nov 6 00:00:03 2008 A Ahogehogehoge..
のようにその下の行がくっついてしまいます。
0184名無しさん@お腹いっぱい。
2008/11/20(木) 23:29:42調べてみたらどうやらindent-relativeが関連してるらしい。
無効に設定できないものですか?
教えて下さい。
0185名無しさん@お腹いっぱい。
2008/11/20(木) 23:43:580186名無しさん@お腹いっぱい。
2008/11/20(木) 23:51:07*scratch* バッファにこれ書いて、最後の ) のうしろで C-j 押して出た結果を教えて。
(format "%d\n%s\n%s\n%s\n"
time-stamp-line-limit
time-stamp-start
time-stamp-end
time-stamp-format)
0187名無しさん@お腹いっぱい。
2008/11/20(木) 23:53:14書き方がわかりません。。。
lispの本買って勉強しますから
今回は.emacsに書くスクリプトの形式で教えてくれませんか?
0188名無しさん@お腹いっぱい。
2008/11/20(木) 23:54:29「無効」って、どういう状態を期待しているの?
text-mode ってソースコードを書くためのものじゃないから、
インデントは前の行に合わせたほうが都合がいいんじゃないかと思うんだけど、
常に固定幅のタブを挿入したいのならば >>185 のような方法になると思う。
0189名無しさん@お腹いっぱい。
2008/11/20(木) 23:59:30(add-hook 'text-mode-hook
'(lambda ()
(setq paragraph-start "^\\([- ・<\t\n\f]\\|(?[0-9a-zA-Z]+)\\)")
(setq indent-line-function tab-to-tab-stop)
;;(setq indent-tabs-mode nil)
))
こんな感じかな。
タブじゃなくて半角空白で埋めたいなら、2つめのコメントを外して。
0190>>188>>189
2008/11/21(金) 00:00:57>>189の paragraph-start の設定はオレの好みなので無視してください。
0191名無しさん@お腹いっぱい。
2008/11/21(金) 00:43:04自分で書いたdiaryの日にも祝日とは別の色をつけたいのですが、どうやればいいのやら・・・(できるの?)
0192名無しさん@お腹いっぱい。
2008/11/21(金) 00:59:02emacs22 でどうやって書けば良いの?
0193>>188>>189
2008/11/21(金) 01:03:410194名無しさん@お腹いっぱい。
2008/11/21(金) 01:38:15m を押せば?
0195名無しさん@お腹いっぱい。
2008/11/21(金) 01:49:52thx微妙に色変わってたw
あとはfont-lockいぢればいいのですねありがとうございました
0196名無しさん@お腹いっぱい。
2008/11/21(金) 01:55:260197名無しさん@お腹いっぱい。
2008/11/21(金) 02:00:290198名無しさん@お腹いっぱい。
2008/11/21(金) 02:16:35C-c Enter . じゃダメなの?
もちろんBROWSEファイルを読み込んでおかないとダメだけど。
0199名無しさん@お腹いっぱい。
2008/11/21(金) 06:55:40こいつバカすぎて笑った
0200名無しさん@お腹いっぱい。
2008/11/21(金) 07:48:260201名無しさん@お腹いっぱい。
2008/11/21(金) 08:09:35xterm-mouse-mode だと一応反応する。
>>197の言っている M-` とほぼ同じだけど。
0202名無しさん@お腹いっぱい。
2008/11/21(金) 11:34:38とりあえずこのままのせます。よろしくお願いします
Debugger entered--Lisp error: (void-variable time-stamp-line-limit)
(format "%d\n%s\n%s\n%s\n" time-stamp-line-limit time-stamp-start
time-stamp-end time-stamp-format)
eval((format "%d\n%s\n%s\n%s\n" time-stamp-line-limit time-stamp-start
time-stamp-end time-stamp-format))
eval-last-sexp-1(t)
eval-last-sexp(t)
eval-print-last-sexp()
call-interactively(eval-print-last-sexp)
recursive-edit()
byte-code(" @=?"?!A@)=??\"
Zy`|cb? \" ?!??!? [unread-command-char debugger-args x debugger-buffer
noninteractive debugger-batch-max-lines -1 debug backtrace-debug 4 t
backtrace-frame lambda 5 pop-to-buffer debugger-mode debugger-setup-buffer
count-lines 2 "...\n" message "%s" buffer-string kill-emacs "" nil
recursive-edit middlestart buffer-read-only standard-output] 4)
debug(error (void-variable time-stamp-line-limit))
(format "%d\n%s\n%s\n%s\n" time-stamp-line-limit time-stamp-start
time-stamp-end time-stamp-format)
eval((format "%d\n%s\n%s\n%s\n" time-stamp-line-limit time-stamp-start
time-stamp-end time-stamp-format))
0203名無しさん@お腹いっぱい。
2008/11/21(金) 11:35:50eval-last-sexp-1(t)
eval-last-sexp(t)
eval-print-last-sexp()
call-interactively(eval-print-last-sexp)
recursive-edit()
byte-code(" @=?"?!A@)=??\"
Zy`|cb? \" ?!??!? " [unread-command-char debugger-args x debugger-buffer
noninteractive debugger-batch-max-lines -1 debug backtrace-debug 4 t
backtrace-frame lambda 5 pop-to-buffer debugger-mode debugger-setup-buffer
count-lines 2 "...\n" message "%s" buffer-string kill-emacs "" nil
recursive-edit middlestart buffer-read-only standard-output] 4)
debug(error (void-variable time-stamp-end))
eval(time-stamp-end)
eval-last-sexp-1(t)
eval-last-sexp(t)
eval-print-last-sexp()
call-interactively(eval-print-last-sexp)
0204名無しさん@お腹いっぱい。
2008/11/21(金) 14:48:50How came you laughed at 174?
0205>>188>>189
2008/11/21(金) 23:25:50問題の現象が出たあと (つまり >>178 のような操作をしたあと) で >>186 をやってください。
0206名無しさん@お腹いっぱい。
2008/11/22(土) 00:02:46"8
Time-stamp:[ ]+\\\\?[\"<]+
\\\\?[\">]
%02d-%3b-%:y %02H:%02M:%02S %u
"
こうやって調べることができるのですね。とても勉強になります。
ありがとうございます。
0207名無しさん@お腹いっぱい。
2008/11/22(土) 01:06:460208名無しさん@お腹いっぱい。
2008/11/22(土) 01:35:060209名無しさん@お腹いっぱい。
2008/11/22(土) 02:29:08注文よろしいでしょうか?
Can you elaborate on that?
ピザを注文したいのですが。
Is it because of any hobbies you have that you say ピザを 注文したいのですが?
注文いいですか?
I would appreciate it if you would continue.
マルゲリータ L サイズパン生地のヤツとコーラをお願いします。
Maybe your sex life have something to do with this.
毒男でわるかったな!
Go on, don't be afraid.
…
I need a little more detail please.
そこ掘り下げるんすか…
Do you really think そこ 掘り 下げるんすか?
0210名無しさん@お腹いっぱい。
2008/11/22(土) 10:46:59ttp://gigazine.net/index.php?/news/comments/20080609_command_line_pizza/
0211名無しさん@お腹いっぱい。
2008/11/22(土) 11:28:07キーバンドエミュレーションがよく出来ているエディタって何かある?
0212名無しさん@お腹いっぱい。
2008/11/22(土) 12:01:15jEdit + jEdit Emacs Emulation Package とか?
http://www.clapper.org/software/jedit/
0213名無しさん@お腹いっぱい。
2008/11/22(土) 12:06:11たぶん Visual Studio の Emacs キーバインドじゃない?
0214名無しさん@お腹いっぱい。
2008/11/22(土) 13:01:510215名無しさん@お腹いっぱい。
2008/11/22(土) 14:18:15サクラエディタでそういう設定かプラグインがあった。
結構再現度高かったよ。
0216名無しさん@お腹いっぱい。
2008/11/22(土) 14:23:00まあ Visual Studio 以外は使う気はしないけど。
0217名無しさん@お腹いっぱい。
2008/11/22(土) 15:15:27「正しさとは何なのだろうか」まで読んだ。
0218名無しさん@お腹いっぱい。
2008/11/22(土) 16:55:080219名無しさん@お腹いっぱい。
2008/11/22(土) 17:07:43これならEmacs Lispでも普通に実装できるな…
0220名無しさん@お腹いっぱい。
2008/11/22(土) 23:10:08そのページだけ読んでみたけど、ちょっと少ないかなぁ..
だたjEditは結構よくできてる。最近はJAVAでもサクサクだな。
>>213
そもそも、VSのEmacsエミュレーションが期待はずれだったから
もうちょい何とかなんないかなぁと思って質問してみたんだよね。
>>214
Eclipseはあまり好きでないので..
特にLinuxでインスコしようとすると、尋常じゃない数の依存
パッケージをインストールしようとするからちょっと躊躇する。
>>215
いまいち分からんかったけど、XKeymacsなるものを見つけた。
取り合えずこれ使ってみるかな。
0221名無しさん@お腹いっぱい。
2008/11/23(日) 01:26:33> そのページだけ読んでみたけど、ちょっと少ないかなぁ..
"Those are just some of the key bindings. Consult the shortcuts.properties file in the downloaded package for the complete list of bindings."
って書いてあるぜ。
0222名無しさん@お腹いっぱい。
2008/11/23(日) 01:40:52これはなかなかいいツールだよ
自分もVSとかNetBenasとか使っててかゆいところに手が届かないときはこれに頼ってる
まあ最近はIDEとか触る必要もなくなったんで現状どうなってるか知らないけど
0223名無しさん@お腹いっぱい。
2008/11/23(日) 12:39:020224名無しさん@お腹いっぱい。
2008/11/23(日) 16:48:140225名無しさん@お腹いっぱい。
2008/11/23(日) 16:58:55ターミナルなど、 '-nw' で起動した場合はそれだと効果がないようです。
0226名無しさん@お腹いっぱい。
2008/11/23(日) 19:46:57(global-set-key "\e" 'navi2ch)
0227名無しさん@お腹いっぱい。
2008/11/23(日) 20:03:39俺の環境では動かなかったよ
viper-keym.elちょこっと見たが、そんな単純なことじゃないと思うんだが
0228名無しさん@お腹いっぱい。
2008/11/23(日) 20:12:430229名無しさん@お腹いっぱい。
2008/11/23(日) 21:06:42ALT-某という方法とESC 某という方法があって、
Emacsは後者が入力された時に、ESCと某の時間間隔が短い時は、
前者に変換して受け取り、M-某として扱うという実装が行われてきた。
時間間隔を便りにしないとISO-2022などのエスケープシーケンスを
うまく扱うことができないから。
この辺りの機能はオンオフできるけど、
バージョンによって結構違うから、
M-x emacs-versionの結果を書いた方がいい。
0230名無しさん@お腹いっぱい。
2008/11/23(日) 21:16:04その値を変えてしまうと、M-x が効かなくなっちゃいますよね... orz=3
>>229
興味深い説明ありがとうございます。
今はバージョン 23.0.60 を使用しています。
僕も>>227さんがviper-keym.elというヒントをくださったので、
その中身を研究しようかと考えてます(elispはほぼ初心者なんですが)。
0231名無しさん@お腹いっぱい。
2008/11/23(日) 23:22:03エディタの流儀に合わせた方が楽な場合も多いよ。
特に初心者のうちはなおさら。
0232名無しさん@お腹いっぱい。
2008/11/24(月) 00:15:160233名無しさん@お腹いっぱい。
2008/11/24(月) 00:19:03やっぱり、どうやってviper-modeが(-nwでも)escapeに
関数をマッピングしているのか、分かりませんでした。
誰かそれを実現できた人がいたら、どうやったか是非おしえてください。
0234名無しさん@お腹いっぱい。
2008/11/24(月) 00:38:04電源メーターが三日連続で下がり続けてる。
なんだこれ。
Emacsのパワーに家庭用コンセントがついてこれてないのか?
0235名無しさん@お腹いっぱい。
2008/11/24(月) 01:29:19とりあえず、viperからESC関連のとこを抜き出してみたよ。
------------------------------------------------------------------------------
(defvar viper-vi-intercept-map (make-sparse-keymap))
(define-key viper-vi-intercept-map viper-ESC-key 'viper-intercept-ESC-key)
(defcustom viper-ESC-key (if (viper-window-display-p) [(escape)] "\e")
(defun viper-window-display-p ()
(and (viper-device-type) (not (memq (viper-device-type) '(tty stream pc)))))
(defsubst viper-device-type ()
(if (featurep 'xemacs)
(device-type (selected-device))
window-system))
------------------------------------------------------------------------------
ようするに、単にウィンドウシステムの環境かどうかで、[(escape)]と"\e"を
切り替えてるだけだな。
ただ、同じ事をglobal-set-keyでやるとうまく行かない。
globalじゃなくてkeymapを作ればうまく行くんじゃないの?試してないけど。
0236名無しさん@お腹いっぱい。
2008/11/24(月) 04:47:230237名無しさん@お腹いっぱい。
2008/11/24(月) 10:00:13いや、ひげぽんではない人かもしれないけど。
0238名無しさん@お腹いっぱい。
2008/11/24(月) 10:18:560239名無しさん@お腹いっぱい。
2008/11/24(月) 11:39:09> 前者に変換して受け取り、M-某として扱うという実装が行われてきた。
逆だ逆。
0240名無しさん@お腹いっぱい。
2008/11/24(月) 14:27:06だよなぁ… 最初に >>239 を読んで「アレ?」と思った…
ということは神速で ESC(Ctrl-[)-x って入力するとエスケープシーケンスと誤認させる
ことも可能?
0241名無しさん@お腹いっぱい。
2008/11/24(月) 22:12:44EmacsからOutputzへ投げるやつやばいね。中毒になったわw
0242名無しさん@お腹いっぱい。
2008/11/24(月) 22:47:28無職の人?
■ このスレッドは過去ログ倉庫に格納されています