Emacs Part 41
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2012/09/07(金) 18:10:22.94Emacs Part 40
http://toro.2ch.net/test/read.cgi/unix/1328958449/
0362名無しさん@お腹いっぱい。
2012/10/13(土) 08:34:52.59color-moccur使いたいんだけど*Moccur*バッファで
候補移動しても元バッファの表示が切り替わらないんだわ
本来は該当行にジャンプするよね?
0363名無しさん@お腹いっぱい。
2012/10/13(土) 10:27:32.27NTEmacsスレで聞いたほうがいいと思うけど、
GoogleIMEなら素のNTEmacsでも別にそんなに問題なく使えるよ。
0364名無しさん@お腹いっぱい。
2012/10/13(土) 11:09:35.61grupackのNTEmacsを使えばいいよ
パッチ適用済みだし
0365名無しさん@お腹いっぱい。
2012/10/13(土) 11:16:41.450366名無しさん@お腹いっぱい。
2012/10/13(土) 11:33:37.460367名無しさん@お腹いっぱい。
2012/10/13(土) 17:55:03.85gnupackとGoogle IMEだと取り合いになってうまくいかないんだよなぁ。
前gnupackスレでも尋ねたんだがうまくいかなかった。
0368名無しさん@お腹いっぱい。
2012/10/13(土) 18:58:47.600369名無しさん@お腹いっぱい。
2012/10/13(土) 19:10:55.820370名無しさん@お腹いっぱい。
2012/10/13(土) 19:50:10.890371名無しさん@お腹いっぱい。
2012/10/13(土) 22:44:44.82■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■ 〜〜 ■■■■■■
■■■■■■〜〜〜〜〜〜■■■■■■
■■■■■ 〜〜〜〜〜〜〜〜 ■■■■■
■■■■■ ■■〜〜■■ ■■■■■
■■■■■ ■■■■〜〜■■■■ ■■■■■
■■■■ || ■■■■ 呼んだ?
■■■■■ 〓〓〓〓||〓〓〓〓 ■■■■■
■■■■ 〓〓 || 〓〓 ■■■■
■■■■ // \\ ■■■■
■■■■ //( ●● )\\ ■■■■
■■■■ // ■■■■■■ \\ ■■■■
■■■■■ / ■■■■■■■■ \ ■■■■■
■■■■■ ■/〓〓〓〓〓〓\■ ■■■■■
■■■■■■ ■ /▼▼▼▼▼▼\ ■ ■■■■■■
■■■■■■■■■ ▼▼▼▼▼▼ ■■■■■■■■■
■■■■■■■■■ ■■ ■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
0372名無しさん@お腹いっぱい。
2012/10/14(日) 03:32:24.41*test foo
のような*一つとそれに続く行末までの文字列を(elispで処理できるよう)取得し、
そのあとでその行を削除したいのですが、どうすればよいでしょうか
ただし、
**hoge
**bar
のようにバッファ内には*が二つ以上続くものは何度も出てくるのですが
それらには何も影響を与えたくないです
0373名無しさん@お腹いっぱい。
2012/10/14(日) 08:27:35.91(save-excursion
(goto-char (point-min))
(save-match-data
(search-forward-regexp "^[*][^*]")
(let ((text (buffer-substring (line-beginning-position) (line-end-position))))
(forward-line 1)
(delete-region (match-beginning 0) (point))
text を使う処理
)))
行頭以外とかも考えるなら、 * の列を探して、長さ 1 だった場合にだけ処理する、ってのが簡単かな。
0374名無しさん@お腹いっぱい。
2012/10/14(日) 11:35:54.06気になったのですが、save-match-dataとsearch-forward-regexpを組み合わせて処理するのと
replace-regexpだけで処理することにはどういう違いがあるのでしょうか
0375名無しさん@お腹いっぱい。
2012/10/14(日) 11:57:14.630376名無しさん@お腹いっぱい。
2012/10/14(日) 12:44:54.210377名無しさん@お腹いっぱい。
2012/10/14(日) 15:57:12.55replace-regexp の docstring に書いてあるように、これは対話的に使うためのコマンド。
push-mark や undo-boundary を呼んでるから、以降の編集作業に影響するかも。
>>376
対象がバッファ先頭とかにあると一致しなそう。
0378名無しさん@お腹いっぱい。
2012/10/14(日) 20:59:17.26なるほど、replace-regexpでは単なる置換以上のことをしてしまうのですね
なぜ対話的にしか使わないかと疑問に思っていましたがそうだったのですか
0379名無しさん@お腹いっぱい。
2012/10/14(日) 21:48:30.58大学の勉強用にNTEmacs入れて、その後でCygwin入れたんですが、Error (initialization): User nas no home directoryが表示されるようになりました
Cygwin入れる時に環境変数HOMEを追加したのが関係してるんでしょうか?
問題なく動きますが気に掛かります
0380名無しさん@お腹いっぱい。
2012/10/14(日) 22:21:57.16windows環境ならそちらを使えばよいのでは?
0381名無しさん@お腹いっぱい。
2012/10/14(日) 22:34:21.37インストール手順に関して情報が溢れていたので、まずgnupackでないやつでやっていました。
今度また時間が出来たら試してみます。
0382名無しさん@お腹いっぱい。
2012/10/15(月) 00:45:15.24この結果が5になります。
common lispでは6になりました
これはemacsにバグがあるということですか
0383名無しさん@お腹いっぱい。
2012/10/15(月) 00:53:53.360384名無しさん@お腹いっぱい。
2012/10/15(月) 04:29:48.15けれども以下のようにしても上手くいかないんですが、何故でしょうか?
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
(lambda ()
(setq whitespace-line-column column)))))
(let ((lis '((emacs-lisp-mode 100) (lisp-mode 150)))) ; デフォルトではfill-columnのままがいい
(mapcar (lambda (x) (apply set-whitespace-line-column x))
lis))
; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
0385名無しさん@お腹いっぱい。
2012/10/15(月) 08:43:04.54(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
`(lambda ()
(setq whitespace-line-column ,column)))))
あるいは Emacs 24 系で lexical-binding を使うか。
0386名無しさん@お腹いっぱい。
2012/10/16(火) 01:34:49.36> ; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
(kill-local-variable 'whitespace-line-column)
0387名無しさん@お腹いっぱい。
2012/10/16(火) 05:02:23.98lambdaがclosureを生成しないなんて・・・
(lambda ()
(lexical-let ((column column))
(if column
(setq whitespace-line-column column)
(kill-local-variable 'whitespace-line-column)))))))
だと駄目なんですね。(当たり前だけど。) http://emacswiki.org/emacs/DynamicBindingVsLexicalBinding を見てみましたが、
lambdaにclosureを生成させるには lexical-binding を使うしかないんですかね。(cl使っても無理?)
0388名無しさん@お腹いっぱい。
2012/10/16(火) 05:04:40.39kill-local-variable だとdefalut値(fillcolumn使うとか書いてるくせにwhitespace.elには80でhard codeしてる・・・)
を使うのでうまくいきません。結局次の様にしました。
(make-variable-buffer-local 'whitespace-style)
(setq-default whitespace-style
'(face
tabs spaces newline trailing space-before-tab space-after-tab
space-mark tab-mark newline-mark
lines-tail))
(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
`(lambda ()
(if ,column
(setq whitespace-line-column ,column)
(setq whitespace-style
(srfi-1:remove (lambda (x) (eq 'lines-tail x))
whitespace-style)))))))
(let ((lis '((emacs-lisp-mode nil))))
(mapc (lambda (x) (apply #'set-whitespace-line-column x))
lis))
;; srfi-1:remove
(defun srfi-1:remove (pred xs)
(loop for x in xs
unless (funcall pred x)
collect x))
0389名無しさん@お腹いっぱい。
2012/10/16(火) 05:31:17.16ありがとうございました。
ところで、変数に関しては lexical-let を使えばいいとして、関数内関数はどうすればいいんでしょう。
(defun f (&rest args)
(defun aux (lis)
...)
(aux args))
(defun g (x y)
(defun aux (x y)
(... (mapcar #'f '(...))))
(aux x y))
とかやって意味不明なエラーを前に数時間を無駄にしたよ…
f-aux, g-auxとかするというのはナシで。
http://lists.gnu.org/archive/html/help-gnu-emacs/2010-12/msg00269.html
(let ((fac (lambda (x) (if (zerop x) 1 (* x (funcall fac (1- x)))))))
(funcall fac 10))
これはちょっときもちわるい。あんまりdynamic bindingに依存したくない。
0390名無しさん@お腹いっぱい。
2012/10/16(火) 05:36:35.12(defun set-whitespace-line-column (mode column)
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
(add-hook hook
(lexical-let ((column column))
(lambda ()
(if column
(setq whitespace-line-column column)
(setq whitespace-style
(srfi-1:remove (lambda (x) (eq 'lines-tail x))
whitespace-style))))))))
0391名無しさん@お腹いっぱい。
2012/10/16(火) 09:03:47.02cl だけど。
0392名無しさん@お腹いっぱい。
2012/10/16(火) 15:11:13.070393名無しさん@お腹いっぱい。
2012/10/16(火) 17:13:55.36できるだけデフォルトで使いたい気持ちもあるんだけど便利にしたい気もする
0394名無しさん@お腹いっぱい。
2012/10/16(火) 19:28:57.45そもそもCL系では関数内関数をschemeみたく自然に書けないんですね。
(defun my-map (proc &rest lis)
(flet ((aux (proc lis)
(mapcar proc (car lis))))
(aux proc lis)))
(defun mul2 (lis)
(flet ((aux (x)
(* 2 x)))
(my-map (lambda (x) (aux x))
lis)))
(mul2 '(1 2 3))
; => error! wrong-number-of-arguments (lambda (proc lis) (block aux (mapcar proc (car lis)))) 1)
emacs lispだとfletやlabels使ってもだめ。CLだとどっちでもちゃんと動くのに。
0395名無しさん@お腹いっぱい。
2012/10/16(火) 19:35:57.53http://d.hatena.ne.jp/Nobuhisa/20090123/1232720807
(require 'cl)
(defun foo (x)
(print "YesWeCan")
(if (> x 0)
(labels ((foo (x)
(print "!")
(if (> x 0) (foo (1- x))) ))
(foo x) )))
(defun bar (x)
(print "YesWeCan")
(if (> x 0)
(flet ((bar (x)
(print "!")
(if (> x 0) (bar (1- x))) ))
(bar x) )))
(foo 5) ; => "YesWeCan" "!" "!" "!" "!" "!" "!"
(bar 5) ; => "YesWeCan" "!" "!" "!" "!" "!" "!"
0396名無しさん@お腹いっぱい。
2012/10/16(火) 19:37:16.27http://d.hatena.ne.jp/kitokitoki/20090816/p9
(require 'cl)
(defun a ()
(labels
((a ()
'b))
'a))
(a)
; => (lambda nil (quote b))
(funcall (a))
; => b
(defun c ()
(flet
((c ()
'd))
'c))
(c)
; => c
(funcall (c))
; => c
0397名無しさん@お腹いっぱい。
2012/10/17(水) 00:48:16.38ELisp は dynamic binding だからね。
(defun mul2 (lis)
(lexical-let ((aux (lambda (x) (* 2 x))))
(my-map (lambda (x) (funcall aux x))
lis)))
みたいな、かっこわるい解なら思いつくけど。
0398名無しさん@お腹いっぱい。
2012/10/17(水) 04:15:21.52次のバージョンでどんな機能をいれるとか、
その手のEmacs最新動向ってどこみればわかるんでしょうか?
http://www.gnu.org/software/emacs/
とかだと8月の更新以降アナウスないですし。
0399名無しさん@お腹いっぱい。
2012/10/17(水) 05:00:32.13emacs-devel mailing listのアーカイブを見る + subscribeする
Savannah Emacs page
ttp://savannah.gnu.org/projects/emacs/
を見て最新リポジトリをゲットする
0400名無しさん@お腹いっぱい。
2012/10/17(水) 09:31:39.00俺は毎日これを見るのが楽しみ。
0401名無しさん@お腹いっぱい。
2012/10/17(水) 10:44:37.570402名無しさん@お腹いっぱい。
2012/10/17(水) 21:35:08.820403名無しさん@お腹いっぱい。
2012/10/17(水) 22:25:51.120404名無しさん@お腹いっぱい。
2012/10/17(水) 22:51:15.52reddit は昔ほど投稿ないよね
0405名無しさん@お腹いっぱい。
2012/10/18(木) 22:46:14.62helm-c-moccur-enable-auto-look-flag t ; 現在選択中の候補の位置を他のwindowに表示する
0406名無しさん@お腹いっぱい。
2012/10/18(木) 23:07:39.21occur だの grep は多分それで望みどおりになるんじゃないかな
0407名無しさん@お腹いっぱい。
2012/10/18(木) 23:17:54.75それならわからない。すまん。
0408名無しさん@お腹いっぱい。
2012/10/20(土) 09:20:14.62いまどき Emacs って;いわば、化石食べてる原始人みたいなものか。
0409名無しさん@お腹いっぱい。
2012/10/20(土) 09:33:42.370410名無しさん@お腹いっぱい。
2012/10/20(土) 09:40:09.540411名無しさん@お腹いっぱい。
2012/10/20(土) 09:43:30.50食べるものがアンモナイトきによく食べてました
0412名無しさん@お腹いっぱい。
2012/10/20(土) 13:30:41.48vimmerにああいうこと言われるのが納得いかん。
歴史は確かにemacsの方がずいぶん長いが、
作りはvimの方が古くさいだろうJK
0413名無しさん@お腹いっぱい。
2012/10/20(土) 18:07:14.28日本語もおぼつかない池沼は相手にするだけ時間のムダ
0414名無しさん@お腹いっぱい。
2012/10/20(土) 18:52:04.81おれはそこでemacsを動かして使うよ
0415名無しさん@お腹いっぱい。
2012/10/20(土) 18:57:49.200416名無しさん@お腹いっぱい。
2012/10/20(土) 19:32:42.310417名無しさん@お腹いっぱい。
2012/10/21(日) 08:47:30.17つまり、化石を食べていたようなものということ。
そこに危機感をもたないかぎり IT では今後勝てない。
単純に論理的なはなし。
0418名無しさん@お腹いっぱい。
2012/10/21(日) 09:30:52.660419名無しさん@お腹いっぱい。
2012/10/21(日) 09:44:01.17基地外の分際でITとかw
0420名無しさん@お腹いっぱい。
2012/10/21(日) 10:17:23.630421名無しさん@お腹いっぱい。
2012/10/21(日) 11:09:33.610422名無しさん@お腹いっぱい。
2012/10/21(日) 17:27:27.08なれるとあれいいな。
0423名無しさん@お腹いっぱい。
2012/10/21(日) 17:50:39.09光ケーブルの口の方が小さいし量子暗号が使えていいかな^^
0424名無しさん@お腹いっぱい。
2012/10/22(月) 06:24:35.02未来の人間は完全滅菌されたバイオプールの中で
強制的にドーパミン注射を打たれてユートピアな世界の幻想を見させ続けられるんだよ
プログラミングなんて泥臭いことしないよ
そんで寿命を迎えたらダストボックスにポイって強制排出される
ちなみにgoogleで働いてるemacs hackerとして有名なsteve yeggeはemacsで60万行の
javaを一人で書いたけどeclipsを使う人たちはもっと生産性が高いんでしょ?
ム板のeclipsスレの最近のレスはこんな感じ↓
445 名前:デフォルトの名無しさん[sage] 投稿日:2012/10/21(日) 15:43:57.17
Junoにしたら、エディタのタブの右クリックメニーでの「新しく開く」ってのが無くなった。
同一ファイルを複数開くのは対応しなくなったの?
446 名前:デフォルトの名無しさん[sage] 投稿日:2012/10/21(日) 18:19:16.57
>>445
「ウィンドウ」メニューの
「新規エディター」でどう?
0425名無しさん@お腹いっぱい。
2012/10/22(月) 06:30:50.140426名無しさん@お腹いっぱい。
2012/10/22(月) 08:47:26.44ぶっちゃけ steve yegge だったら eclipse 使っても同じぐらい生産性高いこと出来るだろ。
そもそもエディタで言語設計してるわけじゃないんだぞ?
だいたいそういう比較始めると底辺 emacs ユーザが引き合いにだされてm9(^Д^)プギャーされるだけだろうに。
0427名無しさん@お腹いっぱい。
2012/10/22(月) 13:23:59.380428名無しさん@お腹いっぱい。
2012/10/22(月) 15:05:24.590429名無しさん@お腹いっぱい。
2012/10/22(月) 15:06:10.660430名無しさん@お腹いっぱい。
2012/10/22(月) 17:17:48.88特にUTF-8関連(ttp://nijino.homelinux.net/emacs/emacs23-ja.html)のパッチを貼ってるから。
調べるにも面倒なんで、ダイレクトな質問スマソ。
0431名無しさん@お腹いっぱい。
2012/10/22(月) 19:53:45.060432名無しさん@お腹いっぱい。
2012/10/22(月) 19:58:06.410433名無しさん@お腹いっぱい。
2012/10/22(月) 19:59:00.02ありがとうございます。このまま23.4使います。
0434名無しさん@お腹いっぱい。
2012/10/22(月) 20:02:48.98lexical binding だけ
0435名無しさん@お腹いっぱい。
2012/10/22(月) 20:55:03.54JITコンパイルとかIncremental GCとか。
今更そんなのモダンじゃねーと言われそうだけど、実装するのは大変なんだろうね。
0436名無しさん@お腹いっぱい。
2012/10/22(月) 21:20:36.510437名無しさん@お腹いっぱい。
2012/10/22(月) 22:25:41.26これまではemacs22で特に設定せずにちょうどいい大きさのフォントで表示されていたのですが,
サーバが変わりemacs23になってから,やたらと小さいフォントで表示されてしまって困っています。
-nwで…とも思ったのですが,C-x52で複数のウィンドウを開いて作業することに慣れてしまっていて,
できれば,フォントの設定をしたいと思っています。
cygwinのxlsfontでフォントの一覧などは表示できることを確認したのですが,
webで検索しても,どのフォントをどのように設定すればいいのかわかりません。
適当なフォントを選んで.emacsでemacs23のフォントを設定する方法を教えていただけないでしょうか。
0438名無しさん@お腹いっぱい。
2012/10/22(月) 22:45:26.62(set-fontset-font "fontset-standard" nil (font-spec :name "xlsfont で出た名前"))
(add-to-list 'default-frame-alist '(font . "fontset-standard"))
fontset-standard は別に好きな名前で構わない。
set-fontset-font の第二引数では文字セット等を指定できて任意の文字セットや
任意の文字のみ別のフォントを指定も可能。
0439437
2012/10/22(月) 23:07:36.51全くわかっていませんが,ご指示通りに設定したところ大きなフォントで表示されました。。
-nwで起動すると
error: Fontset `fontset-standard' does not exist
と表示されてしまいますが,こちらは自力で何とかしてみたいと思います。
ありがとうございました。
0440名無しさん@お腹いっぱい。
2012/10/23(火) 13:10:46.891) あああ
2) いいい
3) ううう
となったんですが、これはどのコマンドでしょうか?
0441名無しさん@お腹いっぱい。
2012/10/23(火) 13:18:24.150442名無しさん@お腹いっぱい。
2012/10/23(火) 13:42:25.07> orgモードで箇条書きをしてたのですが、何かの拍子に、
> 1) あああ
> 2) いいい
> 3) ううう
>
> となったんですが、これはどのコマンドでしょうか?
いや、箇条書きの1) 2) 3) が付与されました。
0443名無しさん@お腹いっぱい。
2012/10/24(水) 18:07:21.84手がホームポジションから動かず高速に入力できそうだと思ったので、
C-;を押した時にC-cを押したとemacsに思わせたいのですが、どうすればよいでしょうか?
C-aをC-cにするなら(keyboard-translate ?\C-a ?\C-c)で良いみたいなのですが、
?\C-;ではうまくいきませんでした。
0444名無しさん@お腹いっぱい。
2012/10/24(水) 18:21:46.320445名無しさん@お腹いっぱい。
2012/10/24(水) 18:30:40.97うちの環境では
(global-set-key (kbd "C-; C-s") 'isearch-forward)
なら動くけど
(global-set-key "\C-;\C-s") 'isearch-forward)
だと (error "Invalid modifier in string") でダメ。
あと define-prefix-command とか見てみれば?
0446443
2012/10/24(水) 18:42:29.02(keyboard-translate ?\C-; ?\C-c)がダメなのは;以降がコメントアウトされてしまうからのようなので
(keyboard-translate (kbd "C-;") ?\C-c)としたのですが
(wrong-type-argument integerp [67108923])と言われてしまいます。
普通のコマンドにC-;を割り当てた場合正常に動作するので、認識はしていると思います。
0447名無しさん@お腹いっぱい。
2012/10/24(水) 19:18:34.60keyboard-translate は文字(文字コード)のみを引数にとることができる。
つまり、文字コードで表現できるキーしか変換できないということ。
\C-a はすなわちASCII制御文字の ^A のことだから扱えるけど、
対応する制御文字がない \C-; とか、それ以外にも \M-a とかも無理。
そういうときには key-translation-map を使う。
(define-key key-translation-map (kbd "C-;") (kbd "C-c"))
0448443
2012/10/24(水) 22:50:35.14なるほど!分かりやすいです。(\で;をエスケープする発想が出てきませんでした。)
きれいに動くようになりました。
ありがとうございました。
0449名無しさん@お腹いっぱい。
2012/10/26(金) 09:15:36.51それはええマックスだったね。
0450名無しさん@お腹いっぱい。
2012/10/26(金) 10:24:28.820451名無しさん@お腹いっぱい。
2012/10/27(土) 03:21:43.590452名無しさん@お腹いっぱい。
2012/10/27(土) 15:15:13.97ttp://d.hatena.ne.jp/m2ym/20110120/1295524932
最新版(v0.5.1)とEmacs23.2.1で使っているのですが、
今までこの様にしていて使っていました。
(add-to-list 'popwin:special-display-config '("*anything" :regexp t :height 20 :position bottom))
これが:position bottomとrightの時はうまく動くのですが、leftやtopにするとどうもうまく動きません。
C-x 2などで分割している状態でポップアップさせると、
表示自体は、うまく左や上にポップアップされるのですが、
それを閉じた時ウィンドウが消えて1つになってしまいます。
0453名無しさん@お腹いっぱい。
2012/10/27(土) 17:40:38.11どこかに関数一覧とその機能を日本語で書いた説明ないかな
0454名無しさん@お腹いっぱい。
2012/10/27(土) 17:48:19.270455名無しさん@お腹いっぱい。
2012/10/27(土) 18:01:27.150456名無しさん@お腹いっぱい。
2012/10/27(土) 18:23:23.870457名無しさん@お腹いっぱい。
2012/10/27(土) 19:01:38.45使ってる
0458452
2012/10/27(土) 19:19:45.30popwin.elで登録情報を:position leftとした場合、
ウィンドウ分割時、ポップアップはうまくいくのですが、
ポップアップが消えると、ウィンドウ分割まで消えてしまって困っています。
何か対処法はないでしょうか?
>>457
:position leftでウィンドウ分割した状態で
ポップアップウィンドウを閉じた場合、元のウィンドウ情報は消失しないでしょうか?
0459名無しさん@お腹いっぱい。
2012/10/27(土) 19:30:59.11そんだけの情報で何を教えろというのか。
正常に動作するし、他の何かとの相性が悪いんじゃないかくらいしか言えん。
0460名無しさん@お腹いっぱい。
2012/10/28(日) 00:46:15.30相手にしてると逆に生産性を下げることになる。
0461名無しさん@お腹いっぱい。
2012/10/28(日) 01:41:54.62■ このスレッドは過去ログ倉庫に格納されています