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

Emacs part 21

レス数が1000を超えています。これ以上書き込みはできません。
0001氷柱割り2007/01/08(月) 21:59:39
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/

前スレ
http://pc10.2ch.net/test/read.cgi/unix/1157294692/
0938名無しさん@お腹いっぱい。2007/05/28(月) 00:16:48
今、メジャーモード作りたくてelisp勉強中。
練習に、>>933 のを作ってみた。

(defun add_line_number ()
"add line number"
(interactive)
(save-excursion
(let ((max-line 0) (current-line 0))
(goto-char (point-max))
(setq max-line (count-lines (point-min) (point)))
(goto-char (point-min))
(setq current-line 1)
(while (<= current-line max-line)
(goto-line current-line)
(insert (format "%d " current-line))
(setq current-line (1+ current-line))
))))

修正した方がいいところがあれば指摘お願い。
09399332007/05/28(月) 00:24:25
>>937
たとえば
aaa
bbb
ccc
となっていると、普通に行番号をつけると
1 aaa
2 bbb
3 ccc
となりますが、指定した行数文足すとは 指定した数値から行番号を始めるということで
それが15だとすると
15 aaa
16 bbb
17 ccc
ということです。

宜しくお願いします
0940名無しさん@お腹いっぱい。2007/05/28(月) 00:31:18
>>938
まず関数名は、_ じゃなくて - でつなごう。

で、この書きかただと、whileループ内で行数が増えるような処理をやってしまうと、
増えた行は処理対象にならないじゃんか。
バッファの最後まで進めて処理するなら、
whileの条件式を (eobp) にしたりするほうがいいかなと。

あと、「次の行に進む」って処理は、フツーは (forward-line 1) を使う。

たとえばこんな感じ。
(defun add-line-number ()
(interactive)
(goto-char (point-min))
(save-excursion
(while (not (eobp))
(insert (format "%04d : " (1+ (count-lines (point-min) (point)))))
(forward-line 1))))


0941名無しさん@お腹いっぱい。2007/05/28(月) 00:35:23
>>939
前に疑似seqを作ったけど、それで代用できそうな感じだと分かった。
でも内容は>>938のみたいな感じなので、とりあえずそっち見て。
09429382007/05/28(月) 00:41:24
>>940 のをついか、C-u 4 M-x add-line-number でスタート数値を渡す。

(defun add_line_number (&optional start)
"add line number"
(interactive "p")
(or start (setq start 1))
(save-excursion
(let ((max-line 0) (current-line 1))
(goto-char (point-max))
(setq max-line (count-lines (point-min) (point)))
(goto-char (point-min))
(while (<= current-line max-line)
(goto-line current-line)
(insert (format "%d " (+ current-line)))
(setq current-line (1+ current-line))
))))

09439382007/05/28(月) 00:45:12
ごめん。
レス番間違えた。
942
× >>940
>>939

>>940
指摘ありがとうございます。勉強になります。
修正してみます。
09449382007/05/28(月) 01:05:43
>> 933

>> 940 の指摘してくれた修正を入れてみました。
これを.emacsにいれておけばできるのではないかと思います。
指定行数はコマンドの前にC-u (指定行数) です。

(defun add-line-number (&optional start)
"add line number"
(interactive "p")
(or start (setq start 1))
(save-excursion
(let ((current-line 1))
(goto-char (point-min))
(while (not (eobp))
(insert (format "%d " (+ start (count-lines (point-min) (point)))))
(forward-line 1)))))
0945名無しさん@お腹いっぱい。2007/05/28(月) 01:22:25
>>944
> (or start (setq start 1))

んー、ちょっと違和感。
(setq start (or start 1))
とすることが多いんじゃないかな。返り値を意識してみるといいんじゃないか
な。

それと current-line が使われてないよ。
毎回 count-lines するのも無駄だからちゃんと使ってあげよう。
09469382007/05/28(月) 01:39:37
最後までありがとうございます。修正後、見直し怠ってました。
やはり、count-line使うより、+でインクリメントの方が良いのでしょうね。
(let ((current-line 1)) を消して、count-lineの方を使うか迷いました。

(defun add-line-number (&optional start)
"add line number"
(interactive "p")
(setq start (or start 1))
(save-excursion
(let ((current-line 0))
(goto-char (point-min))
(while (not (eobp))
(insert (format "%d " (+ start current-line)))
(setq current-line (1+ current-line))
(forward-line 1)))))
0947名無しさん@お腹いっぱい。2007/05/28(月) 13:43:00
元も子も無いようなこと言うようで悪いけど、 Emacs 22 なら、
replace-regexp を使えばできる。

aaa
bbb
ccc

ならば、a の先頭から c の先頭までをリージョンに入れて、 M-x replace-regexp。
5 からはじめるなら、
^ → \,(+ 5 \#)
かな。

ttp://steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
0948名無しさん@お腹いっぱい。2007/05/28(月) 14:06:13
>>947 へぇぇ、知らなんだ。
0949名無しさん@お腹いっぱい。2007/05/28(月) 15:36:44
>>840
>ところで,771氏が晒してくれた hiwin-modeを自分なりに改造して,
>非アクティブウィンドウの背景を変更するようにしたんだけど,
>ここで需要あったりするんだろうか…
>(アクティブウィンドウの背景色を変更する仕様だと
> shell-modeとかの挙動がおかしかったので

参考までに上げてみてくれると嬉しいけど、もう見てないかな。

0950名無しさん@お腹いっぱい。2007/05/28(月) 17:29:24
昔はquery-replace-regexp-evalでエッチラオッチラやっとったがのう。。。
0951名無しさん@お腹いっぱい。2007/05/28(月) 18:39:05
>>950
99年に登場してたのか。比較的最近使いだしてた俺…
09529332007/05/28(月) 20:24:05
皆様ありがとうございました。
勉強のついでとはいえ、私のために作っていただけたことに
非常に感謝しています。

本当にありがとうございました。
0953名無しさん@お腹いっぱい。2007/05/29(火) 23:13:33
バベル案内
http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm

有名なのかも知れませんが、
Emacsだけでなく言語の比較やらいろんなことにコメントしてある面白い記事だったので
置いていきますね。
0954名無しさん@お腹いっぱい。2007/05/29(火) 23:27:27
>>953
面白い記事紹介サンクス。
0955名無しさん@お腹いっぱい。2007/05/30(水) 12:42:07
Emacsを使うと、プロポーショナルで表示されるのですが
これを等幅で表示するにはどうすればいいですか?
0956名無しさん@お腹いっぱい。2007/05/30(水) 14:06:22
どうやったらプロポーショナルで表示されるのかそっちのほうを教えてくれ
0957名無しさん@お腹いっぱい。2007/05/30(水) 21:12:35
% emacs -nw
0958名無しさん@お腹いっぱい。2007/05/31(木) 09:35:08
いよいよ明日ですか?!
0959名無しさん@お腹いっぱい。2007/05/31(木) 09:47:50
c-modeで再インデントをしたいのですが、再インデントはどのようにすればいいのででしょうか?
0960名無しさん@お腹いっぱい。2007/05/31(木) 14:01:02
C-M-h C-\
0961名無しさん@お腹いっぱい。2007/05/31(木) 14:02:50
まちがえた。C-M-\ね。 C-M-h は C-x hでもどっちでも。
0962名無しさん@お腹いっぱい。2007/06/01(金) 13:31:23
Emacs21を使用しているのですが、
hogeというテキストをコピーしてC-u 5 C-y とやっても1回しかhogeがコピーされません。
一度に複数回テキストをコピーするにはどうしたら良いのでしょうか?
0963名無しさん@お腹いっぱい。2007/06/01(金) 14:29:18
C-u 5 C-x e を流用。
0964名無しさん@お腹いっぱい。2007/06/02(土) 01:31:05
マダァ-? (・∀・ )っ/凵⌒☆チンチン
0965名無しさん@お腹いっぱい。2007/06/02(土) 03:15:05
~が付いてるファイルはバックアップですよね?
#で囲まれたファイルは何でしょう?
0966名無しさん@お腹いっぱい。2007/06/02(土) 08:18:19
http://www.google.co.jp/search?hl=ja&q=emacs+%23+%7E+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97&lr=
0967名無しさん@お腹いっぱい。2007/06/02(土) 22:01:39
Latest stable release: 22.1 (June 2, 2007)
0968名無しさん@お腹いっぱい。2007/06/02(土) 22:49:02
このスレももうすぐ ver. 22!!!

0969名無しさん@お腹いっぱい。2007/06/02(土) 22:55:36
まだ23がtrunkになってないしバージョンうpしたという感じがしない
0970名無しさん@お腹いっぱい。2007/06/02(土) 23:00:53
>>967
時刻が 22.1 サンキュー
0971名無しさん@お腹いっぱい。2007/06/02(土) 23:40:41
Cygwin, mingw で EMACS__22_BASE ブランチの info を作りたいのですが
以下のようなエラーになります。

$ make info
[Please ignore a syntax error on the next line - it is intentional]
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
make - --unix -C ../man info
[Please ignore a syntax error on the next line - it is intentional]
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
make[1]: ディレクトリ `/cygdrive/c/Home/src/anoncvs/emacs/man' に入ります
makeinfo --force emacs.texi
makeinfo --force cc-mode.texi
cc-mode.texi:2719: 知らないコマンド `能:'.
(略
cc-mode.texi:XXXX: 知らないコマンド `能:'. でずらずら続く
略)
cc-mode.texi:6389: 知らないコマンド `能:'.
make[1]: *** [../info/ccmode] エラー 1
make[1]: ディレクトリ `/cygdrive/c/Home/src/anoncvs/emacs/man' から出ます
make: *** [info-gmake] エラー 2

cc-mode-texi を見てみるとエラーになっているのは @findex というコマンド
のようです。
Cygwin の texinfo は 4.8a-1 です。
なにをチェックして、なにをどう直せば良いかアドバイスお願いします。
make bootstrap; make install は出来て、Emacs 22.1 自体は使えています。
09729712007/06/02(土) 23:42:53
>>295 に答えがありました。すみません!
0973名無しさん@お腹いっぱい。2007/06/02(土) 23:48:57
しかも NTEmacsスレと間違えてスレ違いでした。
失礼しました。
0974名無しさん@お腹いっぱい。2007/06/03(日) 09:02:06
( ・∀・)つ 次スレ http://pc11.2ch.net/test/read.cgi/unix/1180828013/
0975名無しさん@お腹いっぱい。2007/06/03(日) 14:41:52
>>961
ありがとうございます

質問ばかりで申し訳ないのですが、
対応する括弧にジャンプするには、どうすればいいでしょうか?
Vimだと、%にあたる操作がしたいです。
0976名無しさん@お腹いっぱい。2007/06/03(日) 15:44:53
C-M-{f,b} とか?
0977名無しさん@お腹いっぱい。2007/06/03(日) 19:26:10
C-M-p/n でもいいと思うよ。
vim 使わないからわからないが。
0978名無しさん@お腹いっぱい。2007/06/03(日) 20:06:18
あー、コマンド的には p/n のほうが正しそうだね。
0979名無しさん@お腹いっぱい。2007/06/04(月) 05:28:40
こんにゃちわ
0980名無しさん@お腹いっぱい。2007/06/05(火) 00:53:45
22.1が出とるじゃないか。
09819552007/06/05(火) 02:09:22
>>956
わたしの環境だと、デフォルトでプロポーショナルで表示されてしまいます。

>>957
それ以外の方法はありませんか?
0982名無しさん@お腹いっぱい。2007/06/05(火) 13:37:11
ふつーにフォントを設定すりゃいいんじゃね?
0983名無しさん@お腹いっぱい。2007/06/05(火) 22:28:58
その変な「わたしの環境」とやらを晒さないのはなぜ?
09849552007/06/05(火) 23:27:27
>>983
22.1をオプションなしでビルドしても、プロポーショナルで表示されます。
.emacsは読み込ませてないので、デフォルトが適応されてると思います。
0985名無しさん@お腹いっぱい。2007/06/05(火) 23:29:48
>>984
環境って.emacsだけかよ。
せめてOSだとかぐらい書けよ。
0986名無しさん@お腹いっぱい。2007/06/05(火) 23:41:07
OSで環境が変わると思うって、どんな思考回路だよ
0987名無しさん@お腹いっぱい。2007/06/06(水) 00:19:24
>>955
情報が少ないのでうまくいくかどうか分からんが
(setq default-frame-alist
(cons '(font . "fontset-standard") default-frame-alist))
でどうよ?
0988名無しさん@お腹いっぱい。2007/06/06(水) 00:59:13
>>986
ディストリビューションによってsite-sitart.elの中身が異なってる可能性があるだろ。
0989名無しさん@お腹いっぱい。2007/06/06(水) 01:08:55
マックだったり、Windowsだったりしたら、
それはそれで笑えるがな。

まー、単なる釣りだろうから、さっさとスルー。
0990名無しさん@お腹いっぱい。2007/06/06(水) 01:29:18
>>988
自分でビルドしてるっていってるんだから、関係ないんじゃね?

>>989
WindowsにEmacsはねぇーだろ
0991名無しさん@お腹いっぱい。2007/06/06(水) 01:35:49
NTEmacsの立場が
0992名無しさん@お腹いっぱい。2007/06/06(水) 01:37:41
>>991
22.1
0993名無しさん@お腹いっぱい。2007/06/06(水) 02:06:32
startup screen のことを指してるんじゃないかとみた。
0994名無しさん@お腹いっぱい。2007/06/06(水) 04:29:51
>>990
22 から Cygwin が標準でサポートされてるだろ。
0995名無しさん@お腹いっぱい。2007/06/06(水) 05:27:11
私は、ここの Windows 版を使用中。

EmacsW32
http://www.ourcomments.org/Emacs/EmacsW32.html

この書き込みも EmacsW32 上の Navi2ch から書き込みしてます。
0996名無しさん@お腹いっぱい。2007/06/06(水) 08:06:01
というかnavi2chでAA見るのにプロポーショナルのほうがいいんだよ
だからどうやって設定してるのか教えろ
0997名無しさん@お腹いっぱい。2007/06/06(水) 08:15:31
http://ftp.gnu.org/gnu/emacs/windows/
0998名無しさん@お腹いっぱい。2007/06/06(水) 08:27:37
>996
それだけならモナーフォント使えばいいじゃん
0999名無しさん@お腹いっぱい。2007/06/06(水) 08:51:13
うむ
1000名無しさん@お腹いっぱい。2007/06/06(水) 08:52:16
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。