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

Emacs Part 41

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2012/09/07(金) 18:10:22.94
前スレ

Emacs Part 40
http://toro.2ch.net/test/read.cgi/unix/1328958449/
0362名無しさん@お腹いっぱい。2012/10/13(土) 08:34:52.59
おいちょっと教えて
color-moccur使いたいんだけど*Moccur*バッファで
候補移動しても元バッファの表示が切り替わらないんだわ
本来は該当行にジャンプするよね?
0363名無しさん@お腹いっぱい。2012/10/13(土) 10:27:32.27
>>361
NTEmacsスレで聞いたほうがいいと思うけど、
GoogleIMEなら素のNTEmacsでも別にそんなに問題なく使えるよ。
0364名無しさん@お腹いっぱい。2012/10/13(土) 11:09:35.61
>>361
grupackのNTEmacsを使えばいいよ
パッチ適用済みだし
0365名無しさん@お腹いっぱい。2012/10/13(土) 11:16:41.45
gnupackな。
0366名無しさん@お腹いっぱい。2012/10/13(土) 11:33:37.46
grupackってなんかすごそうだなw
0367名無しさん@お腹いっぱい。2012/10/13(土) 17:55:03.85
IMEのON/OFFでemacsのカーソル色変えてるんだが、
gnupackとGoogle IMEだと取り合いになってうまくいかないんだよなぁ。
前gnupackスレでも尋ねたんだがうまくいかなかった。
0368名無しさん@お腹いっぱい。2012/10/13(土) 18:58:47.60
grupackだとうまくいくかも
0369名無しさん@お腹いっぱい。2012/10/13(土) 19:10:55.82
ウィザード級パッケージとは…
0370名無しさん@お腹いっぱい。2012/10/13(土) 19:50:10.89
牛乳パック
0371名無しさん@お腹いっぱい。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.63
すみません前段はre-search-forward と replace-match の間違いでした
0376名無しさん@お腹いっぱい。2012/10/14(日) 12:44:54.21
単に(re-search-forward "[^*]\\(\\*[^*\n][^*\n]*\\)" nil t)じゃダメなのか?
0377名無しさん@お腹いっぱい。2012/10/14(日) 15:57:12.55
>>374-375
replace-regexp の docstring に書いてあるように、これは対話的に使うためのコマンド。
push-mark や undo-boundary を呼んでるから、以降の編集作業に影響するかも。

>>376
対象がバッファ先頭とかにあると一致しなそう。
0378名無しさん@お腹いっぱい。2012/10/14(日) 20:59:17.26
>>377
なるほど、replace-regexpでは単なる置換以上のことをしてしまうのですね
なぜ対話的にしか使わないかと疑問に思っていましたがそうだったのですか
0379名無しさん@お腹いっぱい。2012/10/14(日) 21:48:30.58
NTEmacsスレ過疎ってるのでこっちで聞かせてください
大学の勉強用にNTEmacs入れて、その後でCygwin入れたんですが、Error (initialization): User nas no home directoryが表示されるようになりました
Cygwin入れる時に環境変数HOMEを追加したのが関係してるんでしょうか?
問題なく動きますが気に掛かります
0380名無しさん@お腹いっぱい。2012/10/14(日) 22:21:57.16
gnupackのNTEmacsならhome directoryが自動的に設定される(相対パスで)
windows環境ならそちらを使えばよいのでは?
0381名無しさん@お腹いっぱい。2012/10/14(日) 22:34:21.37
レスサンクスです。
インストール手順に関して情報が溢れていたので、まずgnupackでないやつでやっていました。
今度また時間が出来たら試してみます。
0382名無しさん@お腹いっぱい。2012/10/15(月) 00:45:15.24
(ceiling (/ 11 2))
この結果が5になります。
common lispでは6になりました
これはemacsにバグがあるということですか
0383名無しさん@お腹いっぱい。2012/10/15(月) 00:53:53.36
まず (/ 11 2) の結果を見てみ
0384名無しさん@お腹いっぱい。2012/10/15(月) 04:29:48.15
whitespace.elのlines-tailを使いたいのだけれど、モード毎に文字数は変えたい。
けれども以下のようにしても上手くいかないんですが、何故でしょうか?

(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
>>384 ちょっとだけ

(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
>>384
> ; (c-mode nil) とかするとc-modeでは無効とかなったりすると嬉しいけどやり方がわからない。。。
(kill-local-variable 'whitespace-line-column)
0387名無しさん@お腹いっぱい。2012/10/16(火) 05:02:23.98
>>385
lambdaが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.39
>>386
kill-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
>>385 >>386
ありがとうございました。

ところで、変数に関しては 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.02
関数内関数なら flet とか labels とかつこうたらいいんじゃないかな。
cl だけど。
0392名無しさん@お腹いっぱい。2012/10/16(火) 15:11:13.07
flet や labels なんて使うやつは馬鹿です。
0393名無しさん@お腹いっぱい。2012/10/16(火) 17:13:55.36
みんなはauto-completeとかyasnippetとか使ってる?
できるだけデフォルトで使いたい気持ちもあるんだけど便利にしたい気もする
0394名無しさん@お腹いっぱい。2012/10/16(火) 19:28:57.45
>>391
そもそも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.53
メモ。
http://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.27
メモ。
http://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.38
>>394
ELisp は 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.13
>>398
emacs-devel mailing listのアーカイブを見る + subscribeする

Savannah Emacs page
ttp://savannah.gnu.org/projects/emacs/
を見て最新リポジトリをゲットする
0400名無しさん@お腹いっぱい。2012/10/17(水) 09:31:39.00
いや、emacs-diffsを見るのが一番いいよ。
俺は毎日これを見るのが楽しみ。
0401名無しさん@お腹いっぱい。2012/10/17(水) 10:44:37.57
こんなのが楽しみだなんて憐れだなぁ。
0402名無しさん@お腹いっぱい。2012/10/17(水) 21:35:08.82
こんな場末のスレですら煽らずにいられないってのも辛い人生ですね
0403名無しさん@お腹いっぱい。2012/10/17(水) 22:25:51.12
>>402 釣れた!
0404名無しさん@お腹いっぱい。2012/10/17(水) 22:51:15.52
emacs 絡みだと stackoverflow あたりも比較的投稿がある気がする
reddit は昔ほど投稿ないよね
0405名無しさん@お腹いっぱい。2012/10/18(木) 22:46:14.62
helmのmoccurだと↓ができるけど、その他のgrepやGLOBALなどの検索結果で同様のことを実現するにはどうしたらいいですか?
helm-c-moccur-enable-auto-look-flag t ; 現在選択中の候補の位置を他のwindowに表示する
0406名無しさん@お腹いっぱい。2012/10/18(木) 23:07:39.21
next-error-follow-minor-mode を hook に入れればいいんじゃね。
occur だの grep は多分それで望みどおりになるんじゃないかな
0407名無しさん@お腹いっぱい。2012/10/18(木) 23:17:54.75
ああ、ごめん、helm での grep とか global か。素の grep とかの話かと思ってしまった。
それならわからない。すまん。
0408名無しさん@お腹いっぱい。2012/10/20(土) 09:20:14.62
世の中はスマホだグラサン方式だと未来系にいっているのに
いまどき Emacs って;いわば、化石食べてる原始人みたいなものか。
0409名無しさん@お腹いっぱい。2012/10/20(土) 09:33:42.37
原始人って化石食べてたの?
0410名無しさん@お腹いっぱい。2012/10/20(土) 09:40:09.54
化石といえばオウムガイは美味しくないらしいな
0411名無しさん@お腹いっぱい。2012/10/20(土) 09:43:30.50
>>409
食べるものがアンモナイトきによく食べてました
0412名無しさん@お腹いっぱい。2012/10/20(土) 13:30:41.48
Eclipse使ってる奴に>>408みたいにdisられるのは分からなくもないが、
vimmerにああいうこと言われるのが納得いかん。
歴史は確かにemacsの方がずいぶん長いが、
作りはvimの方が古くさいだろうJK
0413名無しさん@お腹いっぱい。2012/10/20(土) 18:07:14.28
別にvimmerに言われるのは構わんけど>>408みたいな
日本語もおぼつかない池沼は相手にするだけ時間のムダ
0414名無しさん@お腹いっぱい。2012/10/20(土) 18:52:04.81
ヘッドマウントディスプレイとホログラムキーボードの時代になっても、
おれはそこでemacsを動かして使うよ
0415名無しさん@お腹いっぱい。2012/10/20(土) 18:57:49.20
キーボードの次って何?
0416名無しさん@お腹いっぱい。2012/10/20(土) 19:32:42.31
鉛筆
0417名無しさん@お腹いっぱい。2012/10/21(日) 08:47:30.17
そうじゃなくて。 Emacs ってことは原始人に相当する。
つまり、化石を食べていたようなものということ。
そこに危機感をもたないかぎり IT では今後勝てない。
単純に論理的なはなし。
0418名無しさん@お腹いっぱい。2012/10/21(日) 09:30:52.66
原始人って化石食べてたの?
0419名無しさん@お腹いっぱい。2012/10/21(日) 09:44:01.17
>>417
基地外の分際でITとかw
0420名無しさん@お腹いっぱい。2012/10/21(日) 10:17:23.63
化石といえばオウムガイは旨くないらしいな
0421名無しさん@お腹いっぱい。2012/10/21(日) 11:09:33.61
オウムガイといえばその黄金比はDebianのマークだね
0422名無しさん@お腹いっぱい。2012/10/21(日) 17:27:27.08
フリック入力は頑張って覚えたけどな。
なれるとあれいいな。
0423名無しさん@お腹いっぱい。2012/10/21(日) 17:50:39.09
首の後ろにUSBポート…
光ケーブルの口の方が小さいし量子暗号が使えていいかな^^
0424名無しさん@お腹いっぱい。2012/10/22(月) 06:24:35.02
USBポート?何いってんだ?
未来の人間は完全滅菌されたバイオプールの中で
強制的にドーパミン注射を打たれてユートピアな世界の幻想を見させ続けられるんだよ
プログラミングなんて泥臭いことしないよ
そんで寿命を迎えたらダストボックスにポイって強制排出される

ちなみに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.14
eclipsってなんかいやらしいお
0426名無しさん@お腹いっぱい。2012/10/22(月) 08:47:26.44
何いってんだこいつ。
ぶっちゃけ steve yegge だったら eclipse 使っても同じぐらい生産性高いこと出来るだろ。
そもそもエディタで言語設計してるわけじゃないんだぞ?

だいたいそういう比較始めると底辺 emacs ユーザが引き合いにだされてm9(^Д^)プギャーされるだけだろうに。
0427名無しさん@お腹いっぱい。2012/10/22(月) 13:23:59.38
コピペかと思ったよ
0428名無しさん@お腹いっぱい。2012/10/22(月) 15:05:24.59
emacsがfatal error (11) セグメントエラーを吐いて起動しなくなったので帰宅します
0429名無しさん@お腹いっぱい。2012/10/22(月) 15:06:10.66
おつかれさまです。
0430名無しさん@お腹いっぱい。2012/10/22(月) 17:17:48.88
23.4から24.2に移行するメリットある?
特にUTF-8関連(ttp://nijino.homelinux.net/emacs/emacs23-ja.html)のパッチを貼ってるから。
調べるにも面倒なんで、ダイレクトな質問スマソ。
0431名無しさん@お腹いっぱい。2012/10/22(月) 19:53:45.06
普通に使う分には特にないかも
0432名無しさん@お腹いっぱい。2012/10/22(月) 19:58:06.41
24ってclosure入った?
0433名無しさん@お腹いっぱい。2012/10/22(月) 19:59:00.02
> 431
ありがとうございます。このまま23.4使います。
0434名無しさん@お腹いっぱい。2012/10/22(月) 20:02:48.98
はいらない
lexical binding だけ
0435名無しさん@お腹いっぱい。2012/10/22(月) 20:55:03.54
それよりlispインタプリタをモダンな実装にすべきだろうね。
JITコンパイルとかIncremental GCとか。
今更そんなのモダンじゃねーと言われそうだけど、実装するのは大変なんだろうね。
0436名無しさん@お腹いっぱい。2012/10/22(月) 21:20:36.51
速度面についての改良とかはあんまり実装するメリットってないんじゃないのかね
0437名無しさん@お腹いっぱい。2012/10/22(月) 22:25:41.26
xmingでwindowsからemacsを使っています。

これまでは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 の第二引数では文字セット等を指定できて任意の文字セットや
任意の文字のみ別のフォントを指定も可能。
04394372012/10/22(月) 23:07:36.51
>>438
全くわかっていませんが,ご指示通りに設定したところ大きなフォントで表示されました。。

-nwで起動すると
error: Fontset `fontset-standard' does not exist
と表示されてしまいますが,こちらは自力で何とかしてみたいと思います。

ありがとうございました。
0440名無しさん@お腹いっぱい。2012/10/23(火) 13:10:46.89
orgモードで箇条書きをしてたのですが、何かの拍子に、
1) あああ
2) いいい
3) ううう

となったんですが、これはどのコマンドでしょうか?
0441名無しさん@お腹いっぱい。2012/10/23(火) 13:18:24.15
自分で「あああ」って書いたんじゃないの?
0442名無しさん@お腹いっぱい。2012/10/23(火) 13:42:25.07
>>440
> orgモードで箇条書きをしてたのですが、何かの拍子に、
> 1) あああ
> 2) いいい
> 3) ううう
>
> となったんですが、これはどのコマンドでしょうか?

いや、箇条書きの1) 2) 3) が付与されました。
0443名無しさん@お腹いっぱい。2012/10/24(水) 18:07:21.84
C-c C-rなどよく使うのですが、C-cの代わりにC-;を用い、C-; C-r等と出来れば
手がホームポジションから動かず高速に入力できそうだと思ったので、
C-;を押した時にC-cを押したとemacsに思わせたいのですが、どうすればよいでしょうか?
C-aをC-cにするなら(keyboard-translate ?\C-a ?\C-c)で良いみたいなのですが、
?\C-;ではうまくいきませんでした。
0444名無しさん@お腹いっぱい。2012/10/24(水) 18:21:46.32
そもそも C-; を認識する環境なのかどうか。
0445名無しさん@お腹いっぱい。2012/10/24(水) 18:30:40.97
>>443
うちの環境では
(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 とか見てみれば?
04464432012/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.60
セミコロン以降をコメント扱いされないようにするには \C-\; とすればよい。今回それは不採用だけど。

keyboard-translate は文字(文字コード)のみを引数にとることができる。
つまり、文字コードで表現できるキーしか変換できないということ。
\C-a はすなわちASCII制御文字の ^A のことだから扱えるけど、
対応する制御文字がない \C-; とか、それ以外にも \M-a とかも無理。
そういうときには key-translation-map を使う。
(define-key key-translation-map (kbd "C-;") (kbd "C-c"))
04484432012/10/24(水) 22:50:35.14
>>447
なるほど!分かりやすいです。(\で;をエスケープする発想が出てきませんでした。)
きれいに動くようになりました。
ありがとうございました。
0449名無しさん@お腹いっぱい。2012/10/26(金) 09:15:36.51
>>448
それはええマックスだったね。
0450名無しさん@お腹いっぱい。2012/10/26(金) 10:24:28.82
このおっさん殴りたい。
0451名無しさん@お腹いっぱい。2012/10/27(土) 03:21:43.59
清々しいほどの加齢臭がするな
0452名無しさん@お腹いっぱい。2012/10/27(土) 15:15:13.97
popwin.el使っている人いますか?
ttp://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
clパッケージを使いたいんだけどどういう関数があるかわからない
どこかに関数一覧とその機能を日本語で書いた説明ないかな
0454名無しさん@お腹いっぱい。2012/10/27(土) 17:48:19.27
cl.el 読めばいいじゃん。
0455名無しさん@お腹いっぱい。2012/10/27(土) 18:01:27.15
infoにあるけど、日本語じゃなきゃダメならば翻訳者雇って翻訳してもらいなよ。
0456名無しさん@お腹いっぱい。2012/10/27(土) 18:23:23.87
>>453がcl.elの勉強がてら日本語の解説文書を作成し公開すればみんな幸せ
0457名無しさん@お腹いっぱい。2012/10/27(土) 19:01:38.45
>>452
使ってる
04584522012/10/27(土) 19:19:45.30
言葉足らずですみません。
popwin.elで登録情報を:position leftとした場合、
ウィンドウ分割時、ポップアップはうまくいくのですが、
ポップアップが消えると、ウィンドウ分割まで消えてしまって困っています。
何か対処法はないでしょうか?

>>457
:position leftでウィンドウ分割した状態で
ポップアップウィンドウを閉じた場合、元のウィンドウ情報は消失しないでしょうか?
0459名無しさん@お腹いっぱい。2012/10/27(土) 19:30:59.11
>> 452
そんだけの情報で何を教えろというのか。
正常に動作するし、他の何かとの相性が悪いんじゃないかくらいしか言えん。
0460名無しさん@お腹いっぱい。2012/10/28(日) 00:46:15.30
popwin.elはすごい勢いでバグが混入していくのでお勧めできない。
相手にしてると逆に生産性を下げることになる。
0461名無しさん@お腹いっぱい。2012/10/28(日) 01:41:54.62
まじか
■ このスレッドは過去ログ倉庫に格納されています