トップページunix
1001コメント247KB

Emacs part 20

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/09/03(日) 23:44:52
Emacs とはエディタか、環境か、はたまた友達か。

GNU Emacs - GNU Project - Free Software Foundation (FSF)
http://www.gnu.org/software/emacs/

emacs - SCM: CVS Repositories [Savannah]
http://savannah.gnu.org/cvs/?group=emacs

EmacsWiki
http://www.emacswiki.org/

Emacs 電子書棚
http://www.bookshelf.jp/
0161名無しさん@お腹いっぱい。2006/09/14(木) 13:44:51
その前に日本語を学べ。
0162名無しさん@お腹いっぱい。2006/09/14(木) 16:03:17
>>160
primeは?
>>158
正常です
0163名無しさん@お腹いっぱい。2006/09/14(木) 21:23:16
emacs21の.emacsで
background-colorに"light gray"を設定したあとにX上で立ち上げた時に
編集領域の左右に白く目立つ部分があるんですが、
どの変数をいじればここを変えられるでしょうか?
0164名無しさん@お腹いっぱい。2006/09/14(木) 21:31:16
>>151>>146かな?

その機能は emacs22 には残念ながらないようなので、
同じ要望を持つ人のためにも自作してどこかに提供してあげてください。


ちなみに、indent を emacs 経由で使ってもおかしくなるんでしょうか?
対象部分をリージョン選択して C-u M-| indent してみてもダメですか?
0165名無しさん@お腹いっぱい。2006/09/14(木) 21:32:56
>>163

(set-face-background 'fringe "red")

のことかな。色はお好きなものを使ってください。
0166名無しさん@お腹いっぱい。2006/09/14(木) 21:35:51
誰かchanges-mode拡張して
fringeに変更箇所表示する拡張してくれないかなー
そもそもfringeのいじり方がいくら探してもさっぱり分からんが
0167名無しさん@お腹いっぱい。2006/09/14(木) 21:40:12
>>164
口調が違うから同一人物じゃないと思う
0168名無しさん@お腹いっぱい。2006/09/14(木) 21:51:52
>>165
どんぴしゃです!ありがとうございます。

ところで、-nwで起動した時だけ
モードラインの背景を↓みたいにしたいのですが
(set-face-background 'modeline "grey10")
.emacsではどう検出すればいいんでしょうか?
重ね重ねすみませんι
0169名無しさん@お腹いっぱい。2006/09/14(木) 21:57:38
>>168

(set-face-foreground 'mode-line "light sea green")
(set-face-background 'mode-line "gray20")
(set-face-bold-p 'mode-line t)
(set-face-italic-p 'mode-line t)
(set-face-underline-p 'mode-line t)

どれでもお好きに設定ください。

0170名無しさん@お腹いっぱい。2006/09/14(木) 21:59:05
-nwのときだけですか。
>>169は取り下げます。すみません。
0171名無しさん@お腹いっぱい。2006/09/14(木) 22:05:39
(unless window-system (set-face-background 'modeline "grey10"))
0172名無しさん@お腹いっぱい。2006/09/14(木) 22:16:15
>>171
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

ありがとうございます。レスポンス早かった…
0173名無しさん@お腹いっぱい。2006/09/16(土) 00:59:09
gc-cons-threshold の最適値が知りたい。
0174名無しさん@お腹いっぱい。2006/09/16(土) 01:53:27
メモリ無限につむのが最適
0175名無しさん@お腹いっぱい。2006/09/16(土) 17:20:27
(global-set-key "\C-q\C-d" 'hogehoge)
ってしようとすると怒られます
C-qなんてどうせ使わないから、別機能呼出しのプレフィックスに割り当てたいんですが、
そんな事は絶対に不可能なんでしょうか?
0176名無しさん@お腹いっぱい。2006/09/16(土) 18:26:04
>>175
とりあえずこうしとけばできるみたい

(global-set-key "\C-q" nil)
0177フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/09/16(土) 18:27:31
>>175 使うだろうが
0178名無しさん@お腹いっぱい。2006/09/16(土) 19:08:14
>>176
ウホッ!! できた! サンクス!
0179名無しさん@お腹いっぱい。2006/09/17(日) 01:06:56
>>175
自動インデント付きのモードで ^I を入力したいときに使うぞ。
0180名無しさん@お腹いっぱい。2006/09/17(日) 04:55:46
ミニバッファで改行入れるのにも使うし、
開き括弧など入れるときにはよく使ってるな。
0181名無しさん@お腹いっぱい。2006/09/17(日) 09:30:55
改頁文字の挿入にも使う
0182名無しさん@お腹いっぱい。2006/09/17(日) 11:24:05
>>176な人は(global-set-key "\C-q\C-q" 'quoted-insert)でいいんじゃね?
0183名無しさん@お腹いっぱい。2006/09/18(月) 06:18:50
whileによって移動させつつカーソル下のfaceを調べようとしてるんですが、
空白だったり行末だったりするとNo face selected.と出てしまうので
カーソル下の文字が何なのか、もしくはfaceが設定されているかどうか
チェックする方法はありますでしょうか
0184名無しさん@お腹いっぱい。2006/09/18(月) 08:14:23
>>183
(apropos "^char-[ab]")
(apropos "^get-[ct]")
(apropos "^previous-[pc]")
(apropos "^next-[pc]")
0185名無しさん@お腹いっぱい。2006/09/18(月) 10:16:28
func (arg_1, arg_2)

func (arg_2, arg_1)
としたいときどうやってますか?

func (arg1, arg2)
なら M-t 一発なんですが
0186名無しさん@お腹いっぱい。2006/09/18(月) 10:32:08
C-M-t
0187名無しさん@お腹いっぱい。2006/09/18(月) 10:33:56
普通に消して書き直せばいいじゃん
0188名無しさん@お腹いっぱい。2006/09/18(月) 11:04:14
>>186
できました
ありがとうございます

>>187
C-M-t いいですよ
0189名無しさん@お腹いっぱい。2006/09/18(月) 13:48:29
>>184
行けそうです。感謝。
0190名無しさん@お腹いっぱい。2006/09/18(月) 14:26:39
あー、M-t ってこういう時に使えるのか。なるほど…。
0191名無しさん@お腹いっぱい。2006/09/18(月) 14:59:18
wordやsexpの定義がmodeごとに違うからね。
0192名無しさん@お腹いっぱい。2006/09/18(月) 17:08:38
表示しているバッファの中から
指定した正規表現にマッチするものを含む行だけを
キルリングに挿入するようなlisp関数はありますか?
0193名無しさん@お腹いっぱい。2006/09/18(月) 17:40:03
つくればあるもーん
0194名無しさん@お腹いっぱい。2006/09/18(月) 18:04:57
>>193
ワロタ
0195名無しさん@お腹いっぱい。2006/09/18(月) 18:06:40
作らなきゃないという事か?
0196名無しさん@お腹いっぱい。2006/09/18(月) 18:10:15
ないことは証明できないけど、
さがすより作った方が早そう。
01971922006/09/18(月) 18:19:13
実装を教えて下さい
elisp意味分かんない…
0198名無しさん@お腹いっぱい。2006/09/18(月) 18:36:09
いい機会だから勉強するといいよ。
0199名無しさん@お腹いっぱい。2006/09/18(月) 18:58:01
とりあえずinfoのEmacs Lisp Introからかな。
0200名無しさん@お腹いっぱい。2006/09/18(月) 19:11:25
(defun hoge (regexp)
  (interactive "sRegexp: ")
  (let (r)
    (save-excursion
      (goto-char (point-min))
      (while (re-search-forward regexp nil t)
        (let ((start (progn (beginning-of-line) (point))))
          (forward-line)
          (setq r (cons (buffer-substring start (point)) r))))
      (kill-new (apply #'concat (nreverse r))))))
0201名無しさん@お腹いっぱい。2006/09/18(月) 19:26:34
次は「これをどうすればいいんですか?」な予感。
0202名無しさん@お腹いっぱい。2006/09/18(月) 20:03:50
無闇に魚を与えるな
魚の獲り方を教えろ
0203名無しさん@お腹いっぱい。2006/09/18(月) 20:56:01
お前さんの言ってるのは正のフィードバックがなされている時のみ有効。
現状では一人に魚の獲り方を教えるより多数に魚を与える方がコストが低い。
0204名無しさん@お腹いっぱい。2006/09/18(月) 21:15:38
ん?よくわからんぞ
負のフィードバックがなされると、具体的にどういうことが起こって
都合が悪いのだ?
0205名無しさん@お腹いっぱい。2006/09/18(月) 21:55:49
きちんと教えてちゃんと理解させれば、教えられた側が教える側になってく
というのが正のフィードバックね。
記名コミュニティではこういう現象が確認できるんだけど、2chのような
匿名コミュニティではそうではない。
それどころか「教育的」な対応をすると反発するアホがいて、かえって
荒れることすらあるわけ。
2chにおける質問への対応は、叩いたり指導したりするのではなく、答えだけ
教えてお帰りいただくのが、やり取りが最少で済み、スレが荒れる可能性
も低くなるってこと。
02061922006/09/18(月) 22:01:21
Info 読みました
>>200 を~/.emacs
にコピペしてやっていくことにします
これからはちゃんと勉強します
自分で実装します
すみませんでした
0207名無しさん@お腹いっぱい。2006/09/18(月) 22:33:00
>>205
> 2chにおける質問への対応は、叩いたり指導したりするのではなく、答えだけ
> 教えてお帰りいただくのが、やり取りが最少で済み、スレが荒れる可能性
> も低くなるってこと。
同意できないな。安直に反応すると同様の質問が繰り返される事態を招くだけかと。
FAQすら読めない水準にまで落ちる可能性が否定できない。荒れる以前の問題。
0208名無しさん@お腹いっぱい。2006/09/18(月) 22:59:32
>>207
安直に反応しなくても同様の質問がくりかえされるんだってば。
そこらの初心者とか質問とか書いてあるスレ行って
FAQ に載ってる質問
過去に同じスレで回答のあった質問
を数えてみ。
0209名無しさん@お腹いっぱい。2006/09/18(月) 23:21:30
まわりくどい回答や妙なちょっかいを出すヤシがきっかけになって
煽り合いになることもあるので時には回答だけ出すのもアリ
その辺の対応はスレの状況次第、時と場合によりけり
0210名無しさん@お腹いっぱい。2006/09/18(月) 23:22:32
まとめ:なんでもアリ
0211名無しさん@お腹いっぱい。2006/09/18(月) 23:45:27
>>208
俺もそう思う
ああいう質問する人間は安直な反応が返ってくるかどうかなんて
いちいち確認しないだろうしな
0212名無しさん@お腹いっぱい。2006/09/19(火) 00:03:07
>>208
同じ質問が別の人達によって繰り返されるのは
しょうがないと思うよ。
FAQとか過去レスにあるならポインタ示せばいいだけ。
過去スレで何度も繰り返されてるなら
FAQとしてまとめとかない方が悪い。

問題なのは同じ人が同じ態度で質問を繰り返すこと。
これには厳しい態度で臨まないと苦労することになる。
0213名無しさん@お腹いっぱい。2006/09/19(火) 00:27:07
「名無しさん@お腹いっぱい。」が同じ質問を何度も繰り返している。
0214名無しさん@お腹いっぱい。2006/09/19(火) 01:39:09
emacsでC#の開発って出来ますか?
JDE+ECBみたいな環境を望んでいます。
0215名無しさん@お腹いっぱい。2006/09/19(火) 09:58:52
つくればできるもーん
0216名無しさん@お腹いっぱい。2006/09/19(火) 14:45:35
>>215
ワロタ
0217名無しさん@お腹いっぱい。2006/09/19(火) 15:33:43
文字コードを指定して保存するのはどうやるの?
0218名無しさん@お腹いっぱい。2006/09/19(火) 15:46:25
>>217
C-x C-m f でバッファの文字コードを変えてから保存... とかじゃだめですか?

C-x C-m f euc-jp-unix C-x C-s
0219名無しさん@お腹いっぱい。2006/09/19(火) 15:48:20
>>217
質問する前にググれ
0220名無しさん@お腹いっぱい。2006/09/19(火) 16:00:48
>>218
C-x C-m f euc-jp-unix C-x C-f
は知ってたけど、応用利くとは知らなかったす。

>>219
スマンコ
0221名無しさん@お腹いっぱい。2006/09/19(火) 16:01:30
マンコって
0222フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/09/19(火) 16:48:16
>>203
同意。
>>204-212
そういう議論でスレが伸びるのも正直ウザイ。
暇な人が答えてあげればいいだろ。
ここIDないんだから便乗質問かもしれんし。
>>221
10^4個
0223名無しさん@お腹いっぱい。2006/09/19(火) 17:57:45
>>222 がアボーンで見れない
0224名無しさん@お腹いっぱい。2006/09/19(火) 19:02:00
>>223
見る価値ないから大丈夫。
0225名無しさん@お腹いっぱい。2006/09/20(水) 05:51:42
emacsのlispって、物凄く優秀だったり根気強く作られてるにも関わらず
さっぱり使われてないってのが結構あるね。
よく出来た新作が発表されてもバグや使い勝手に関する難癖しかついてなかったり。
それでも作り続けられてるというのがまた謎めいてる。
0226名無しさん@お腹いっぱい。2006/09/20(水) 06:27:36
>>225
自分が使いたいから作る、っていうスタンスで作ってる人が多いから。
0227名無しさん@お腹いっぱい。2006/09/20(水) 08:15:20
あと、
・本家tar玉にマージされる基準がよくわからない。
・Emacs固有のパッケージ管理システムがない。
というのが大きいかも。

自分も使っているOSでpackageになってないelispは、
ちょっと使うかどうか逡巡する。
0228名無しさん@お腹いっぱい。2006/09/20(水) 10:53:53
自分でpackage作ってsend-prすればいいじゃん。
0229名無しさん@お腹いっぱい。2006/09/20(水) 10:59:19
>>227
> ・Emacs固有のパッケージ管理システムがない。
そこで XEmacs ですよ。
0230名無しさん@お腹いっぱい。2006/09/20(水) 11:19:35
firefoxの拡張はfirefox任せで、
全然問題ないどころか、かえって使いやすい。
Emacsのelispパケージ管理もEmacsに任せたいね。
0231名無しさん@お腹いっぱい。2006/09/20(水) 11:53:05
>>229
XEmacsからそこだけは持ってきて欲しいな。
0232名無しさん@お腹いっぱい。2006/09/20(水) 18:04:29
言いだしっぺキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0233名無しさん@お腹いっぱい。2006/09/20(水) 19:32:32
>>230
それは、firefoxの拡張はfirefoxで閉じてるからだよ。
C++で書いたXPCOMコンポーネントのコンパイルが必要だったりとかすると、
やはり同じ問題が出る。
例えばEclipseでも、all Javaの拡張は問題ないが、
ネイティブモジュールが必要なCDT等で問題が出ている。
0234名無しさん@お腹いっぱい。2006/09/21(木) 07:17:15
emacsならもんだいない?
0235名無しさん@お腹いっぱい。2006/09/21(木) 14:59:40
emacs 固有のパッケージシステムなんて作っても誰もメンテしないよ、きっと。
rpm とか apt とか NetInstall でいいじゃない。
0236名無しさん@お腹いっぱい。2006/09/22(金) 04:58:34
パッケージなんかめんどいから、cvs co して自分でインストール。
emacs 関係だけだが。

0237名無しさん@お腹いっぱい。2006/09/22(金) 21:15:55
すみません、MHC (Emacs 上のスケジュール管理ソフト)のスレッドがないので
こちらで質問させてください。
mhc2ol の逆方向の同期ができるプログラムってありませんか?
やりたいことは Nokia 702nk2 という携帯と mhc の同期なのですが、
Outlook 経由だとできそうなので…
0238名無しさん@お腹いっぱい。2006/09/22(金) 22:31:55
mhcってナツカシス
0239名無しさん@お腹いっぱい。2006/09/22(金) 22:41:36
Palm 挟めば出来るだろ。本末転倒だけどな。
0240名無しさん@お腹いっぱい。2006/09/23(土) 16:37:13
行中央にカーソル飛ばすことって簡単にできますか?
0241名無しさん@お腹いっぱい。2006/09/23(土) 17:50:45
コマンドはないと思いますが、作るのは容易でしょう。
0242名無しさん@お腹いっぱい。2006/09/23(土) 20:26:49

どっちかな?

;; ウィンドウの中央にカーソル移動
(move-to-column (/ (window-width) 2) t)

;; 現在論理行の中央にカーソル移動
(move-to-column (/ (save-excursion (end-of-line) (current-column)) 2) t)
02432372006/09/25(月) 12:05:41
>>239
たしかにそうですね。Palm も持ってるんですが、
最近調子悪くなってきたので、できれば 702nk2 に
乗り換えようと思っていたのです…
やっぱり mhc の前途は暗そうですね。
0244名無しさん@お腹いっぱい。2006/09/25(月) 12:36:06
>>243 もしかして、WristPDAで使ってる人?

mhc→iCalendar辺りに変換するスクリプトを書いて、
あとはごにょごにょってのが一番だと思う。
02452372006/09/25(月) 13:39:57
>>244
いや、ふつうに Clie を使ってました。WristPDA も面白そうですね。

> mhc→iCalendar辺りに変換するスクリプトを書いて、
> あとはごにょごにょってのが一番だと思う。

なるほど、iClender にして Multisync を使うということですよね。
自分のスキルがついてくるかどうか分かりませんが、調べてみます。
ありがとうございました。
0246名無しさん@お腹いっぱい。2006/09/25(月) 16:35:44
もしくは、google calendar API に投げ込んで、
ネットワークシンクを心掛けるとか?
0247名無しさん@お腹いっぱい。2006/09/26(火) 03:02:57
compile コマンドを使ってプログラムをコンパイルしているのですが、
コンパイルした後、どうやってコンパイラーからの exit-status
を得ることができるのでしょうか?
compile.el にはそういう関数が定義されてなかったようなので。
0248名無しさん@お腹いっぱい。2006/09/26(火) 08:20:57
compile-internalの中で、
call-processの返り値を使って捨てている。

ただしcompilation-exit-message-functionを書き換えれば取得可能。
statusを見てmodelineを書き換える(内容を返す)関数。
0249名無しさん@お腹いっぱい。2006/09/26(火) 13:25:10
Emacs 22 だと lisp/term/keyswap.el がないのはなんでだろう?
機能にアサインするわけじゃないから
DEL と C-h の入れかえにはコッチ使えって聞いているのに

21.3のツリーからコピーしてきちゃって使ってるんだが大丈夫かな?
0250名無しさん@お腹いっぱい。2006/09/26(火) 13:28:43
global-set-key でいいんじゃね
0251名無しさん@お腹いっぱい。2006/09/26(火) 13:54:10
>>249
lisp/obsolete/keyswap.elにあるが、
漏れはEmacsの指示通り
lisp/term/bobcat.elを使うようにした。
0252名無しさん@お腹いっぱい。2006/09/26(火) 13:56:14
> - With Emacs 21.1 and later, you can control the effect of the
> <Backspace> and <Delete> keys, on both dumb terminals and a
> windowed displays, by customizing the option
> `normal-erase-is-backspace-mode', or by invoking `M-x
> normal-erase-is-backspace'. See the documentation of these
> symbols (*note Emacs Lisp documentation::) for more info.
02532492006/09/26(火) 20:04:52
>250-252
レス感謝.RTFFとでもいったところか,かたじけない.

ただ X 上で独立フレームで起動したばあい:
normal-erase-is-backspace-mode の 0/1 にかかわらず backspace は
<DEL> として動くし,C-h はどちらにせよヘルプコマンドとなり,
delete が <DEL> かカーソル位置消しかに切りかわるのみ.
また keyboard-translate で C-h と C-?(\177) とを交換しても
delete ではヘルプコマンドは動作しないようね.

個人的には,X上では C-<key> と制御キーとを区別するとか,
またデフォルトで delete が C-d, backspace が <DEL> として機能するあたりに
かえって問題がありそうだなと思うのだけれど.

まぁヘルプはメニュークリックか適当に他のキーにあてればまぁいいのかな.
0254名無しさん@お腹いっぱい。2006/09/26(火) 21:00:53
(define-key function-key-map [backspace] [?\C-h])
02552492006/09/26(火) 21:37:23
>254
恐縮の至り.


当面の憂いは晴れました.ありがとう
0256名無しさん@お腹いっぱい。2006/09/26(火) 23:09:03
M-x desktop-save
で .emacs.desktop に保存されるファイルのパスなんだが
デフォルトでは絶対パスで保存されるんだが
相対パスで保存出来ない?
0257名無しさん@お腹いっぱい。2006/09/27(水) 01:33:53
>>256
(setq desktop-file-name-format 'tilde)
しておけば、ホーム以下のパスなら~/...として記録されるようだよ。
ホームをnfsしてるマシンによってmountするパスが違うくらいのことには
対応できそうだけど。

それで足りなければ、
desktop-saveから呼ばれるdesktop-file-nameで記録するファイル名を決めてる
ので、それを好きなように再定義するかアドバイスすればよいかと。
0258名無しさん@お腹いっぱい。2006/09/27(水) 21:32:01
>>257
21.4のdesktop.el見てみたけどdesktop-file-name見つからないなぁ
とりあえず土日かけてもうちょっと見てみますです
0259名無しさん@お腹いっぱい。2006/09/28(木) 07:27:07
>>258
22のやつ使え。
0260名無しさん@お腹いっぱい。2006/09/29(金) 07:53:49
>255
(keyboard-translate ?\177 ?\^h)
(keyboard-translate ?\^h ?\177)
■ このスレッドは過去ログ倉庫に格納されています