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

Emacs part 22

■ このスレッドは過去ログ倉庫に格納されています
0001Zeno ◆5nZQbNmQPs 2007/06/03(日) 08:46:53
Emacs は我々が毎日振れ合い愛憎する最強の汎用環境/エディタである.
このスレッドは皆が Emacs に関しての情報を共有し合う場である.
まあ気楽にやっていこうではないか

EmacsWiki http://www.emacswiki.org/
Emacs 電子書棚 http://www.bookshelf.jp/
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
NTEmacs スレッド http://pc11.2ch.net/test/read.cgi/software/1097170623/

前スレ http://pc11.2ch.net/test/read.cgi/unix/1168261179/

最新の stable リリースは「22.1」であり、本体は
* http://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
* http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-22.1-bin-i386.zip (Windows)
からダウンロード可能である.

ちなみに吾の名は Zeno -- Emacs を使用した情報操作の魔術師である.
0384名無しさん@お腹いっぱい。2007/08/05(日) 19:30:17
>>382
スレ違い。マルチ氏ね。

03853682007/08/05(日) 20:24:12
>>380
うーん、むずかしそうですね。

>>380 >>383
emacsで作るのは主にLaTeXやHTMLなんで、見栄えの問題ではないんですよね。
まあ自然言語はけっきょく最後は自分の目で確認しなきゃならないわけ
なので、きっとこの件であんまり困るべきではないんですね。しばらく
あきらめます。

(もうひとつの手は、emacsではfillせずに長い行で扱って、
カーソル移動をいじるというのがありますが、これもいろいろ問題があって・・・)

あと歌代さんのmgは、
いざというときのためにutf-8に対応しておいといてもらえないかなあ。




0386名無しさん@お腹いっぱい。2007/08/05(日) 23:00:31
>>368 ←こんな要求始めてみた。世の中いろんな人がいるなー。
0387名無しさん@お腹いっぱい。2007/08/05(日) 23:23:53
368 じゃないけど、無理だろうけどできたら便利だよなぁ。とは思ってたなぁ。
エスカレートすると文脈とか解釈してほしくなるんだろうけどw
0388名無しさん@お腹いっぱい。2007/08/05(日) 23:48:11
Mecabとかに流し込めば単語の区切りくらいはわかるから、
それで全体として最もデコボコにならない区切りを計算すれば出来なくはないんじゃないかな。
0389名無しさん@お腹いっぱい。2007/08/06(月) 00:09:31
まあ、別に作っても爆発するわけじゃないから、面白そうだと
思った人は作ってみるといいんじゃないかな。
0390名無しさん@お腹いっぱい。2007/08/06(月) 00:20:33
鼻から悪魔がでたりすることはあるかもしれない
0391名無しさん@お腹いっぱい。2007/08/06(月) 00:21:29
花から  あ、熊
0392名無しさん@お腹いっぱい。2007/08/06(月) 01:19:44
       //
     /  /   パカ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |
   /  | 彡  ( _●_) ミ
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0393名無しさん@お腹いっぱい。2007/08/06(月) 01:32:51
そこ、鼻でも花でもない
0394名無しさん@お腹いっぱい。2007/08/06(月) 03:10:28
つーか、おれは auto-fill なんてまったく使わなくて、
切りがいいところで改行してる。
今みたいに。
HTML や TeXみたいに処理系で fill してくれるんなら
これがベストジャマイカ。

0395名無しさん@お腹いっぱい。2007/08/06(月) 04:54:14
俺も。まあアルファベット圏では必須の機能だと思うが日本語では難しいと思うし
正直、勝手に文字が挿入されるのはちょっと気持ち悪い。
Emacsは表示行で改行してくれないので、physical-line.elを使わせてもらってる。
0396名無しさん@お腹いっぱい。2007/08/06(月) 04:59:11
負け犬!!
0397名無しさん@お腹いっぱい。2007/08/06(月) 16:35:30
>>396
おまえソープで口で逝っちゃってそのあと
起たなくてでも苦労して半勃起で入れようとしたら
中折れになって嬢に「しょうがないよ」って言われた
俺のこと言ってるのか?あん?
0398名無しさん@お腹いっぱい。2007/08/06(月) 17:18:47
EmacsでVisual StudioのIntelliSenseみたいな補完機能ってあるんかな?
Meadow使ってるんだが、そういうの使ったこと無くてよくわからない。

Icicles、CEDET?anything?
なんか調べてるとそれっぽそうなのは見つかったんだけどいまいちわからないわ。
0399名無しさん@お腹いっぱい。2007/08/06(月) 22:05:30
とにかくそれっぽそうなのが見つかったら片っ端から使ってみりゃいいと思う。
0400名無しさん@お腹いっぱい。2007/08/06(月) 22:24:27
>>398

M-/ でいいんじゃないのかなー
0401名無しさん@お腹いっぱい。2007/08/06(月) 23:43:57
>>400
いやーdabbrevごときと比べちゃいかんだろ。

0402名無しさん@お腹いっぱい。2007/08/06(月) 23:48:49
>>397

いや、39才・魔法の使い手の俺のことだろうw
0403名無しさん@お腹いっぱい。2007/08/07(火) 00:06:42
cedetはperlの解析してくれれば、いいんだけどなぁ。
0404名無しさん@お腹いっぱい。2007/08/07(火) 00:35:05
>>401
IntelliSense自体、dabbrevをインスパイヤしたんじゃないのw
04053982007/08/07(火) 03:46:03
しばらくM-/使ってみます。
慣れたら便利になるだろうと思います。

出来れば補完候補一覧を表示する機能。。探します。
どのOSでも動く環境ってことで選ぶとEmacsとViくらいしか自分の中で選択肢がないです。

自分はRuby,C++,TeXを扱っているのでやはりEmacsが一番使いやすいかなーと。
安定してるし、VSに比べたら軽いし。
0406名無しさん@お腹いっぱい。2007/08/07(火) 03:48:00
重いけどeclipse使っちゃえば
0407名無しさん@お腹いっぱい。2007/08/07(火) 03:58:55
;;; pabbrev.el --- Predictive abbreviation expansion
;; Website: http://www.russet.org.uk

これってそういうのに使える?
IntelliSenseっていうのわからないし、こいつも話聞いただけなんで
よくわらないんだけど。

まあ、おれは dabbrevつかい。
typo した関数名が dabbrev で増殖してしまうのが悲しい。
0408名無しさん@お腹いっぱい。2007/08/07(火) 07:36:08

あるワードの上にカーソルを置くと、それに対応する部分のワードを
点滅させる(対応括弧での点滅みたいな感じで)には
どんな機能を使うのがよいのでしょうか?
04094082007/08/07(火) 07:37:37
ABC1ってワードの上にカーソルをおいたとき、XYZ1を点滅させたいです。
0410名無しさん@お腹いっぱい。2007/08/07(火) 08:17:24
>>405
複数選択は作ろうとがんばってる人がいるよ。
ttp://d.hatena.ne.jp/khiker/20070728/emacs_dabbrev#c

まだM-/の置き換えにはならないけどね(複数選択が必要になったときのみ実行かな)。

あとTAGSファイル作って読み込んでおけば補完されやすくなるし、
元関数に簡単にジャンプできるからメソッド(引数)の確認も簡単。
C++ならgtagsとetagsと併用すればなおいい。
etagsは、複数選択できないけどetags-select.el入れればできる。

おっと補完の話だった。おいらは使っていないけどabbrevも使いこなすといいらしい。
bookshelf でも読み直すといい。
IntelliSenseは、馬鹿でもある程度使いやすくするMSの文化。
Emacsを使うなら古くて回りくどい部分もあるけど、ちゃんと設定していけば使えないことも無い。
世界中の多くのプログラマが古くから使っているんで、Emacsの文化と思ってそれに慣れていけばいい。
どうしてもほしいのならElisp勉強して作ればいい。コードはたくさん転がっているし流用可能。

ま、がんばれ。
0411名無しさん@お腹いっぱい。2007/08/07(火) 08:45:40
>>410
後半要約するとロートルの使ってる使いにくい環境に慣れろと
0412名無しさん@お腹いっぱい。2007/08/07(火) 09:01:06
>>405
ttp://cedet.sourceforge.net/intellisense.shtml
これがそのまんまじゃねーの?
本家くらい調べろよ。
0413名無しさん@お腹いっぱい。2007/08/07(火) 09:30:24
最近、C-xC-cで終了できないことがよくある。
C-xC-cでも無反応で、何度かC-gしているうちに終了できるように
なるんだけど、原因は何だろうか。確実な再現手順は不明。
長く使ってる後におこりやすい。とりあえずmewと(server-start)と
navi2chとcvsとispellとw3mを使わないとだいじょうぶみたいだけど
正確なところは不明。

今朝のCVS先端で不定期に現象が出るが、22.1リリースのちょっと前
くらいからこうだった気がする。
0414名無しさん@お腹いっぱい。2007/08/07(火) 09:39:57
elispに原因があればtoggle-debug-on-quitしてみるとわかるかも。
04153982007/08/07(火) 14:30:17
>>412
SemanticのIntelliSense機能をドキュメントよんでインストールしてみたけど、そう簡単にいかないんですね。
CEDETをインスコしてみたけど、Semanticのロードでエラーがでるなぁ。。。

エディタの設定だけで時間が過ぎるとかなんかだめなので、暇を見て調べつつやってみようかと思います。
M-/をタブに割り当てて使ってみてます。毎回Escまで手を伸ばすのはちょっとめんどくさいので。
それなりに快適に使えてるけど。。。やっぱり読み込んだライブラリから補完する機能ってほしいね。
CEDETとか読んでるとSpeedbarとかがそれに該当するみたいだということまでは把握したんだけど。

>>410
これなんかすごく使いやすそうに見える。使ってみたいなぁ。
abbrev逝ってきます。やっぱり過去の情報はきちんと読み込まないとだめですね。
ばかな俺にはIntelliSenseが会っていたということか。。。

ぶっちゃけGUIアプリ組まないならそれほど巨大なプロジェクトは扱わないと思ってたんだけど、
研究室の大きなプロジェクトとかが結構半端内サイズに昇華していたので、探したりしてました。


いろいろ情報サンクス。
いろいろ使ってみて、自分なりな環境を再現できたらここにまた書きにこようかと思います。
0416名無しさん@お腹いっぱい。2007/08/07(火) 19:55:03
>>413
kill-emacs-hook になんか変な関数が登録されてたりしない?
0417名無しさん@お腹いっぱい。2007/08/07(火) 20:09:44
たとえばemacs21.1以上をサポートするelispを書くとして、
それ以後に追加された関数や引数を利用していると警告してくれる
シロモノはないですか?
0418名無しさん@お腹いっぱい。2007/08/07(火) 22:40:52
補完はeclipse手放せない理由のひとつだな。
それにdabbrevならあるし。
kill ringないけど。

javaの開発生産性はeclipse>超えられない壁>emacs
それ以外はemacs>>>>eclipse(jdt)
0419名無しさん@お腹いっぱい。2007/08/07(火) 23:57:53
>>418
jdeでとメソッドや変数の保管が出来るよ。
ただし、X使用時だけど。
0420名無しさん@お腹いっぱい。2007/08/08(水) 01:17:11
Emacsのshellで、実行中のプロセスを強制終了させるとき、
Ctrl-Cでは効かないのですが、
どのようなコマンドを打てばいいのですか?
killではなく、SIGINTの割り込みを発生させたいのです。
0421名無しさん@お腹いっぱい。2007/08/08(水) 04:48:47
>>420
C-c C-cじゃだめ?
0422名無しさん@お腹いっぱい。2007/08/08(水) 06:08:47
>>420
C-h C-m
0423名無しさん@お腹いっぱい。2007/08/08(水) 08:22:55
そんくらいググレよ。カス。
0424名無しさん@お腹いっぱい。2007/08/08(水) 10:06:32
ググる前に describe-mode しろ。
0425名無しさん@お腹いっぱい。2007/08/08(水) 11:07:01
>>421
C-c C-cも試しましたが、shell画面に「C-c C-c」と表示されるだけで、
プロセスは終了されませんでした。
0426名無しさん@お腹いっぱい。2007/08/08(水) 13:54:34
meadowでそんなことあったな。
っていうか環境ぐらい書け。
0427名無しさん@お腹いっぱい。2007/08/08(水) 13:59:26
Cygwinか?
0428名無しさん@お腹いっぱい。2007/08/08(水) 14:59:54
>>426
環境書き忘れていました。
申し訳ございません。

WindowsXP(Home) + Meadow3.00
ベースとなるEmacsのバージョンは22.0.90.1です。

>>427
はい、MeadowでCygwinのbashを起動したときに
C-c C-cによるプロセス制御が効かないのです。
eshellでもC-c C-cが効きませんでした。
0429名無しさん@お腹いっぱい。2007/08/08(水) 16:12:32
同じ症状があったが windowsは ptyがないから signal 送るのは
無理なんだと諦めてた。
0430名無しさん@お腹いっぱい。2007/08/09(木) 01:56:39
Cygwin 版 Emacs 使えばなんとかなるんじゃね?
0431名無しさん@お腹いっぱい。2007/08/10(金) 21:57:02
Meadow の場合は fakecygpty を使えばよいのでは?
0432名無しさん@お腹いっぱい。2007/08/12(日) 03:43:33
outlineで畳み込んだときの...に色を付けてみたいんだけど、できないのかなぁ。
0433名無しさん@お腹いっぱい。2007/08/13(月) 23:14:37
Emacsでタブを入力するにはどうしたらいいんですか?
0434名無しさん@お腹いっぱい。2007/08/13(月) 23:17:25
>>433
^Q^I
0435名無しさん@お腹いっぱい。2007/08/13(月) 23:22:50
>>434
C-q C-iってことですかね?
入力できませんでした
04364352007/08/13(月) 23:41:33
途中で書き込んでしまいました

C-q C-iを入力するとミニバッファに
C-q TAB is undefined
と表示されます
0437名無しさん@お腹いっぱい。2007/08/14(火) 00:16:00
>>436

emacs -q で起動した場合でもそうなる?
0438名無しさん@お腹いっぱい。2007/08/14(火) 00:33:04
M-x quoted-insert C-i
0439名無しさん@お腹いっぱい。2007/08/14(火) 08:09:53
20年も前のコードだけど
(add-hook 'find-file-hooks
(function
(lambda () (if (string-match "[Mm]akefile" buffer-file-name)
(setq indent-tabs-mode t)
(setq indent-tabs-mode nil) ))))

(add-hook 'find-file-not-found-hooks
(function
(lambda () (if (string-match "[Mm]akefile" buffer-file-name)
(setq indent-tabs-mode t)
(setq indent-tabs-mode nil) ))))
0440名無しさん@お腹いっぱい。2007/08/14(火) 08:35:55
>>439
今のEmacsのmakefile-modeには不要。
普通にindent-tabs-modeという変数があるよと言えばいいのに。
0441名無しさん@お腹いっぱい。2007/08/14(火) 09:27:27
>>440
つ 露出狂
0442名無しさん@お腹いっぱい。2007/08/15(水) 01:00:32
find-file のフックなんかで解決するのは
今どきのやり方じゃないな。
でも20年の歴代ものなら仕方ないか。
0443名無しさん@お腹いっぱい。2007/08/15(水) 22:05:19
elispにperlのtestみたいな機能の関数ってある?
2つのファイルに違いがあるかどうかだけ知って、
それをifの条件で使用したいんだけど。
0444名無しさん@お腹いっぱい。2007/08/15(水) 22:17:47
>>443
あるよ
0445名無しさん@お腹いっぱい。2007/08/15(水) 22:49:22
>>444
なんてコマンド?
0446名無しさん@お腹いっぱい。2007/08/15(水) 23:08:46
>>445
コマンド? コマンドがどうかしたの?
0447名無しさん@お腹いっぱい。2007/08/15(水) 23:10:19
知らないならいいよ。
0448名無しさん@お腹いっぱい。2007/08/15(水) 23:25:55
diff 使えバカ
0449名無しさん@お腹いっぱい。2007/08/16(木) 00:00:51
>>448
diffの使い方を教えてください。
0450名無しさん@お腹いっぱい。2007/08/16(木) 05:41:02
一発でbuffer-file-nameをkill-ringに入れてくれるコマンドはないでしょうか?

「自分で書け」はわかってます。
aproposでbuffer-file-nameは見てみました。


0451名無しさん@お腹いっぱい。2007/08/16(木) 05:48:45
「自分で書け」をわかってない。
0452名無しさん@お腹いっぱい。2007/08/16(木) 05:52:49
(defun copy-filename-as-kill ()
"Copy BUFFER's full pathname into the kill ring.
If prefix arg is 0, copy the directory part.
If prefix arg is other than nil and 0, copy the basename."
(interactive)
(let ((s
(if (= 0 (prefix-numeric-value current-prefix-arg))
default-directory
(if (buffer-file-name)
(if (null current-prefix-arg)
(buffer-file-name)
(file-name-nondirectory (buffer-file-name)))
""))))
(kill-new s)))
04534502007/08/16(木) 06:27:26
わーい。

0454名無しさん@お腹いっぱい。2007/08/16(木) 10:08:42
「オープンソースだと、バグとかあっても自然に直ってる」
という言葉を思い出した。
0455名無しさん@お腹いっぱい。2007/08/16(木) 12:32:26
聞いたことねえな
0456名無しさん@お腹いっぱい。2007/08/17(金) 06:40:32
ボクが考えました><
0457名無しさん@お腹いっぱい。2007/08/17(金) 19:24:06
>>452
なんで buffer-file-name を2回も呼び出してんの?
0458名無しさん@お腹いっぱい。2007/08/19(日) 18:35:58
mac(OS X)から外部マシンにsshで入って作業しているのですが、
emacsが立ち上がらなくなりました。
以下のエラーが出ます。

Xlib: connection to "localhost:10.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
emacs: Cannot connect to X server localhost:10.0.
Check the DISPLAY environment variable or use `-d'.
Also use the `xhost' program to verify that it is set to permit
connections from your machine.

対処法が分かる方がいたら教えてもらえますか。

ちなみに、このマシンにはいる為に、間に2つのマシンを
通るのですが、この2つではemacsは立ち上がります。
0459名無しさん@お腹いっぱい。2007/08/19(日) 18:38:37
emacs -nw
じゃだめなんだろうなきっと。
0460名無しさん@お腹いっぱい。2007/08/19(日) 19:46:07
もしくは ssh -X か ssh -Y
0461名無しさん@お腹いっぱい。2007/08/19(日) 20:24:05
素直にed使えばいいじゃない
0462名無しさん@お腹いっぱい。2007/08/19(日) 20:44:57
>>460
ssh -Xはやってるんですけどね。
0463名無しさん@お腹いっぱい。2007/08/19(日) 20:52:15
>>459
ありがとうございます!
このモードでは立ち上がりました。
0464名無しさん@お腹いっぱい。2007/08/19(日) 21:25:28
こんな阿呆がEmacs使う世の中に誰がした
0465名無しさん@お腹いっぱい。2007/08/19(日) 21:26:47
鯖がXフォワーディングを許可してないとかかね?

ところで、ずっと使っていたら左下にMEM FULLってでてかなり重くなった。
あまりに遅かったからkillしちゃったんだけど、これって何か対応策はあるの?
0466名無しさん@お腹いっぱい。2007/08/20(月) 07:54:31
設定いじってコンパイルしなおし
0467名無しさん@お腹いっぱい。2007/08/20(月) 21:54:55
C-` や ESC ESC のキーバインドを変更したいんですけど、
どう書けばいいんでしょうか?
0468名無しさん@お腹いっぱい。2007/08/20(月) 22:30:09
>>467
マニュアルのCustomaizing Key Bindingsを見ると良い。
0469名無しさん@お腹いっぱい。2007/08/20(月) 22:36:19
>>467
C-`は最初から何もバインドされていないからいいとして、
ESC ESC は prefix じゃない?
emacs19 だったら ESC ESC は eval-expression がバインドされていたんじゃなかったっけ。

それでもいいなら
(define-key global-map [?\C-`] 'undefined)
(define-key esc-map "\e" 'undefined)
0470名無しさん@お腹いっぱい。2007/08/21(火) 04:44:25
指定行範囲だけを置換えしたいのですが、どのようにすればいいのでしょうか?
また、Vimみたく
:30,45s/^/okikae/gc
みたく1行で入力し置き換える方法はないでしょうか?
0471名無しさん@お腹いっぱい。2007/08/21(火) 05:43:46
narrow-to-region
0472名無しさん@お腹いっぱい。2007/08/21(火) 09:58:56
続けて2回マークするとtransなんたらmodeに入るのでそのときに
置換すると範囲内のみになるよ。
0473名無しさん@お腹いっぱい。2007/08/21(火) 19:03:20
>>468-469
thx.
0474名無しさん@お腹いっぱい。2007/08/21(火) 20:22:27
そういえばいつの間にか >>1 のテンプレが変わってるな。
アレが好きだったのに。
0475名無しさん@お腹いっぱい。2007/08/21(火) 20:29:22
「アレ」ってなに?
0476名無しさん@お腹いっぱい。2007/08/21(火) 21:11:06
そもそも>>1が見えない
04772702007/08/22(水) 05:51:52
>>472
うぇー、これ知らなかった。リージョンのマークだけかと思ってた。
0478名無しさん@お腹いっぱい。2007/08/23(木) 13:28:44
snippet.el、smart-snippet.el以外のtextmateのスニペットを実現するElispってありますか?
0479名無しさん@お腹いっぱい。2007/08/23(木) 22:52:28
emacs 22.1.50.1 (CVS) 20070822 らへんと,ちょっとその前で,
lisp/startup.el で,
(defun normal-splash-screen (&optional hide-on-input)

(defun normal-splash-screen (&optional static)
に変更されていて,親切なのか余計なお世話なのか,スプラッシュがウザくなった.
いちいち q を押さないといけなくなった.
以前のようなスプラッシュ表示するためには,
normal-splash-screen を直接書き換えないとやっぱりダメ?
どうしたらいいでしょうか?
あ,(setq inhibit-startup-message t) とかは無しね.
あくまで以前のような(emacs 22.1 stable)スプラッシュにしたいだけだから.
0480名無しさん@お腹いっぱい。2007/08/24(金) 01:04:16
>>479
> あ,(setq inhibit-startup-message t) とかは無しね.
t にした上で、
after-init-hook で昔の normal-splash-screen 呼べばいいと思うんだが。
0481名無しさん@お腹いっぱい。2007/08/24(金) 02:42:58
わけありで、他のアプリとは無関係に、Emacsの中だけ
CapsLockをCtrlにして使いたいのですが、
どのようにしたらそのようにできるでしょうか。
.emacs.elの中だけで対処できると有難いのですが。
0482名無しさん@お腹いっぱい。2007/08/24(金) 03:23:53
Depends on window system.
0483名無しさん@お腹いっぱい。2007/08/24(金) 08:15:15
CygwinのXサーバでSolarisのEmacsを利用してます。
この場合、可能でしょうか。
Meadowだと独自の関数があるっぽいですね。
■ このスレッドは過去ログ倉庫に格納されています