[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/25 03:24 / Filesize : 216 KB / Number-of Response : 877
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Emacs Part 39



1 名前:名無しさん@お腹いっぱい。 [2011/11/29(火) 17:50:44.24 ]
前スレ

Emacs Part 38
hibari.2ch.net/test/read.cgi/unix/1308635178/

160 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 03:03:32.40 ]
(setq interprogram-cut-function nil)
(setq interprogram-paste-function nil)

でどう?(試してない)

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 09:42:18.30 ]
>>158
おぉ!斬新な考え方だな。
俺はちょっと編集して一息付く時に必ずセーブ→カーソル移動して確認
のような事をしているから、同時にセーブもすればいいんだな。
キーバインドはやっぱりESCだろうね。

162 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 15:06:12.55 ]
shell-commandを非同期実行で順番に使いたいとき、
たとえば
1.hoge.exeを起動して処理する
2.1.の処理後にtest.exeを起動して処理
3.2.の処理後にfoo.exeを起動して処理
4.処理終了
こういうことはemacsで設定できるでしょうか
非同期実行が shell-command と & の組み合わせでできるということまではわかったのですが
その先がよくわかりません

163 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 15:21:00.40 ]
>>162
shell が何かによるけど
(hoge.exe ; test.exe ; fo0.exe) &

それぞれが成功した時だけ(戻り値0の場合だけ)次を実行したい場合は
(hoge.exe && test.exe && foo.exe) &

164 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 15:21:50.70 ]
shell-command だけでやるんならそれぞれのコマンドを && で連結して実行する。

hoge.exe の処理結果を emacs で一旦受けとってから test.exe に渡したいん
なら、低レベル API の start-process を使って hoge.exe を呼び出して
process-sentinel で test.exe 以降を順次実行する。

165 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 15:27:30.08 ]
>>163-164
ありがとうございます。
&&ですかなるほど。もしかするとstart-processを使って調整するかもしれませんでしたので
とても参考になりました。

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 16:09:11.99 ]
>162
それは同期実行ではだめなの?
(shell-command "hoge.exe")
(shell-command "test.exe")
(shell-command "foo.exe")


167 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 16:47:23.22 ]
時間かかる処理なら止まっちゃうじゃん。

168 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 16:57:23.03 ]
gnupackのemacsを使っています
eshellをexitで抜けようとしたらエラーが出るようになってしまいました
init.elのいろいろな場所を編集する最中だったため、原因を突き止められていません
*Warning* buffarにはこうあります
These default coding systems were tried to encode text
in the buffer ` *temp*':
(utf-8 ...)
However, each of them encountered characters it couldn't encode:
utf-8 cannot encode these: ...
japanese-shift-jis cannot encode these: ...
init.elでこう設定しています
(set-keyboard-coding-system 'cp932)
(prefer-coding-system 'utf-8-dos)
(set-file-name-coding-system 'cp932)
(setq default-process-coding-system '(cp932 . cp932))
(add-hook 'set-language-environment-hook
(lambda ()
(when (equal "ja_JP.UTF-8" (getenv "LANG"))
(setq default-process-coding-system '(utf-8 . utf-8))
(setq default-file-name-coding-system 'utf-8))
(when (equal "Japanese" current-language-environment)
(setq default-buffer-file-coding-system 'utf-8))))
(set-language-environment "Japanese")
どうも過去に日本語を含むパスのelispの履歴が残っているようで
それを削除すれば解決すると考えているのですが、
そうなるとどのファイルを編集することになるのでしょうか



169 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 17:17:54.97 ]
全然わからんけど session-save-file かなぁ。
おれが思うに eshell なんて使わない方がいいよ。変なのが伝染る。

170 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 17:24:53.82 ]
~/.eshell/history じゃないの?
つーかるびきちの悪影響だよな
eshellなんか使うのは

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 17:36:24.38 ]
win+cygwin なもんで ansi-term がまともに動かんから
shell-mode で我慢してる。っていうかあれで充分。シグナル変なのは advice つけて直した

172 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 18:31:37.90 ]
文字符号入り乱れた複数のファイルを標準出力つこて扱う時に
文字化け対策用変換パイププログラムとかねーのかな

173 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 18:34:00.68 ]
iconvとかnkfとかそいうんではなく?

174 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 19:11:46.96 ]
>>169-170
ありがとうございます
そのあたりをあさっていたら ~/.eshell/lastdir のファイルがおかしいことに気づきました
その箇所を削除したら無事終了するようになりました

ところで、>>170の通りるびきちの本をもとにeshellを使いはじめてみたのですが
emacsを使う人は通常他の外部シェルを使うのでしょうか

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 19:18:37.63 ]
このスレはるびきちにツンデレだから

176 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 19:23:02.71 ]
一般的かどうかは分からないけど、なんで今さら eshell なんだよって感じは
する。るびきちに関しては感性が相当に偏っているので、彼のいうことにあん
まり没頭しすぎるのは考えものだとは思う。



177 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 19:27:14.55 ]
>>176 そういわれればそうですね


178 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 19:30:55.80 ]
俺はるびキチが使う前からeshellをバリバリ使ってたけど、
msysだのcygwin入れなくても、ls,cp,mv,rm,chmod,とか使えるのは相当便利だよ。




179 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 19:38:39.16 ]
POSIXコマンドがネイティブに使える環境ではあえて eshell 使う理由もないと思う。
シェルをカスタマイズしまくっているなら ansi-term 一択

180 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 20:06:41.14 ]
でも重いんだよねえ。
結構 CPU 負荷がかかる。

181 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 20:23:56.55 ]
>>158
最近evil-mode使い始めたところなんたけど
確かに設定が面倒くさい。
viewモードメインのアプローチも確かに良さそうだね。そっちも試してみる。



182 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 20:37:24.12 ]
migemoをisearch-modeの時はオンにして、RETしてsearch-foward等の時は
オフにするにはどうすればいいですか。

183 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 22:28:23.45 ]
GNU Emacs Lispリファレンスマニュアル: Emacs Lisp関数のアドバイス
www.bookshelf.jp/texi/elisp-manual-20-2.5-jp/elisp_17.html
アドバイス機能を使って
>isearch-modeの時はオンにして、RETしてsearch-foward等の時はオフにする
そのとおりに設定するのがよいかと
具体的にはisearch-modeの実行時にmigemoをonに切り替えるようbeforeで設定
isearch-modeの実行終了時に migemoをoffに

こうするとsearch-forward等には手をつけなくていいかと

184 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 00:09:46.51 ]
>>131
お礼が遅くなってすみません
それでうまくいきました

185 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 02:03:40.31 ]
elispの書き方について質問します

(if test
(list (aa) (bb) (cc) (dd) (ee))
(list (aa) (ff) (ee)))

(aa)や(dd)などはすべて文字列を返す関数で、
このような処理をしようと思うのですが、
list関数と aa, ee関数が重複しており編集しづらいです
重複分を削る手はないでしょうか

186 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 02:45:42.90 ]
編集しづらいってコードの編集のことか?
list の中身のソート順をプログラマが考えて決めるんだったらある程度冗長
になるのは仕方ないと思うんだけど。
どうしたいのかいまいちわからない。

187 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 03:01:13.07 ]
重複分とlistを削ってみた。元の方が全然見やすいな。

`(,(aa)
,@(mapcar
#'(lambda (f) (funcall f))
(if test '(bb cc dd) '(ff)))
,(ee))


188 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 03:27:46.43 ]
>>185
こんな感じ?

(append
 (list (aa))
 (if test
    (list (bb) (cc) (dd))
  (list (ff)))
 (list (ee))


(mapcar 'funcall
        `(aa
          ,@(if test
              '(bb cc dd)
              '(ff))
          ee))



189 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 08:59:28.95 ]
みなさんは、WindowsでEmacsって使われてますか?


190 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 09:12:31.39 ]
使ってるよ。
NTEmacsスレもよろしくね。
anago.2ch.net/test/read.cgi/software/1221125611/

191 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 11:05:00.31 ]
>>186
そうです。コード編集です。
もっと縮められないものかとおもっていました

>>187-188
ありがとうございます。
appendとバッククオートでそう組み立てるのは思いつきませんでした
例を示していただいて気づいたのですが、自分はリスト生成の内側でifを使いたかったんだなと


192 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 12:25:44.35 ]
ネタだが、Google Insights for Search を使った Emacs ユーザの特性考察がなかなかおもろい。
ttp://d.hatena.ne.jp/shim0mura/20111220/1324575061

193 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 12:36:21.37 ]
関数の再定義についてお伺いしたいのですが
(require 'hoge)で読み込んでいるファイル hoge.el に書いてある関数を
init.elに新たに関数を書いて上書きしようとしてもうまくいきません

hoge.elの該当部分の関数定義をコメントアウトすると
init.elで再定義したとおりに動きます
どうすればいいのでしょうか

194 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 12:36:25.61 ]
>>191
書きやすいコードより見やすいコードを目指した方がいい。

195 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 12:58:09.19 ]
>>193
新たな関数を (require 'hoge) より前に書いてるというオチではないよな?

196 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 13:06:18.14 ]
>>193
(eval-after-load 'hoge '(defun ...))
とか、多分邪道だけど
(defadvice fuga (around ... )
ad-do-it なし)

にする。

197 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 14:02:29.09 ]
>>193
再定義していると思っている関数のスペルが間違っている
再定義後に再びload-file, load-libraryしている

198 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/24(土) 17:38:11.00 ]
>>196
なんとなく書き換わるの怖くてdefadvice派だなぁ。



199 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 05:44:00.27 ]
>>192
おそらく一部には反感を買いそうだけど、
楽しんで書いてるのが伝わってきて確かに面白い。

200 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 10:45:34.31 ]
>>192の派生記事でこんなのがあったんだけど
d.hatena.ne.jp/takuya_1st/20111222/1324550041
この中にでてくる、EmEditorの「折り返し行表示も論理的にインデントされる」機能って
なかなか素敵だと思うんだけど Emacs 用でそういうのないかな。

自前のソースだったら長くなりすぎないよう適度に分割するんだけど
拾ってきたソース見てる時とかウィンドウ幅細くして眺めてる時とかこれできたらちょっとうれしい気がする。

201 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 11:52:18.04 ]
>192
田舎を馬鹿にしてるのは芸風かと思うけど、
emacsに関する分析で、石川県にJAISTがあるのを知らないのか、
知ってて無視してるのか…

202 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 12:10:42.62 ]
emacs関係でその大学の名前を聞いた記憶があんまりないんだけど。
オープンソース扱ってるとときどき聞くけど。

203 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 12:26:15.80 ]
現在開いているファイルがutf-8のとき、
utf-8bomかutf-8non bomかを開いているファイル名情報(ミニバッファ欄というのでしょうか)の
左側に表示したいのですが、可能でしょうか?

204 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 12:27:38.96 ]
書き忘れていました。
改行がlfかcrかも表示させたいです

205 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 12:50:00.45 ]
>>203
; BOMなしを 大文字の U に
(coding-system-put 'utf-8 :mnemonic ?U)
; BOMありを 小文字の u に
(coding-system-put 'utf-8-with-signature :mnemonic ?u)

基本的に一文字でしか表示は出来ないみたい。
ちなみに今何が設定されているか知りたいときは以下を実行
M-x list-coding-systems

UTF関連は全部ひっくるめてUになっちゃってるから必要であれば細かくわけたほうがいいかも。
一文字縛りだから厳しいけど。


206 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 12:51:07.42 ]
>>204
cr だの lf だの crlf は一応もともと表示はされているけど、
もっとわかりやすくしたいなら以下で。

(setq eol-mnemonic-dos "[CRLF]")
(setq eol-mnemonic-unix "[LF]")
(setq eol-mnemonic-mac "[CR]")
(setq eol-mnemonic-undecided "[?]")


207 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 13:20:29.19 ]
>>202 うーむ、月日が流れるのは早いもんだ。


208 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 13:22:36.47 ]
> (ミニバッファ欄というのでしょうか)

mode-line ね。

mode-line-mule-info いじればなんとでもなりそうな気はするけど。
マウスカーソル合わせればいろいろ表示できるからそれで十分な気がする。



209 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 13:30:34.87 ]
session.el を使っていると file-name-history に w3m の一時ファイル名が溜まるのが嫌なので
(setq session-set-file-name-exclude-regexp "[/\\]\\.overview\\|[/\\]\\.session\\|News[/\\]\\|w3mtmp")
というように、デフォルトの値に付け加えてみたんですが、やはりお構いなしに溜っていきます。

Emacs は 21.1 を使っているんですが、これを設定してる人はちゃんと効いてますか?

210 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 13:30:46.10 ]
load-path とかを設定するときに
append したり add-to-list を繰り返したりするのはよくみるけど
バッククオート使ったリスト展開使ってる人ってあんまり見かけない気がするんですが、
何かデメリットとか互換性とかでまずい点とかがあるんでしょうか?

(setq load-path `("~/lisp" "~/site-lisp" ,@load-path))

211 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 13:36:40.41 ]
>>210
デメリットは読みづらいって点じゃないかね。
真性 lisper の作った macro とか読んでると分かるかも。

212 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 13:39:17.64 ]
>>211
なるほど、あんまり見ないという意味で読みづらいってのはありそう。
でもただリストに追加するだけ、ってのが設定ファイル上だと多発してるんで、
短くて読みやすいこっちを使ってみます。
ありがとうございました。

213 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 14:57:06.79 ]
xyzzyにはある機能だな
emacsはというと見当たらない気がする

214 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 15:10:17.46 ]
>>213
リスト展開はEmacsで普通に使えてるぞ

215 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 15:59:36.74 ]
>>214
すまねえ、>>213>>200向けのレスだった
アンカーが抜けてしまったわ


216 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 16:05:04.22 ]
>>215
ああ、そういうことか。了解。
>>200 はxyzzyで使えるなら頑張ればEmacsにも移植出来そうなもんだね。

217 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 17:27:51.00 ]
バッファローカルなマクロや関数を設定する方法ってありますでしょうか?

218 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 17:48:27.78 ]
オーソドックスな方法はない。
obarray とか make-variable-buffer-local とか intern とか組み合わせてが
んばればもしかしたらそれっぽいことはできるかも。何がやりたいかによりそ
う。




219 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 18:09:35.92 ]
>>218
特定のファイル内でのみ使える使い捨ての関数を使いたかったのでした。

funcall での呼び出しで妥協するなら make-local-variable => lambda => funcall で他への影響少なく
実現出来ましたが、fset しちゃうとしっかりグローバルにマップされちゃうのが残念な感じ・・


220 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 18:29:51.56 ]
特定のファイル(バッファ?)内で呼び出すならそれでいいけど、
いろんなところで呼び出す関数の中でその使い捨て関数を使おうとするとだめじゃないか?

↓はevalしたバッファでなら問題なく動くけど他のバッファで say-hello するとNG
(set (make-local-variable 'somefunc) (lambda () (message "hola!")))
(defun say-hello ()
(interactive) (funcall somefunc))



221 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 22:34:15.94 ]
リストの中で条件に一致するものだけを抜き出す関数ってありますか?
find-if みたいな条件式を外から渡せるものが欲しいです。

222 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 22:57:39.93 ]
remove-if-not かな。名前分かりづらいよね。

223 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/25(日) 23:05:47.16 ]
>>222
ありがとうございます。条件に一致しないものを全て除く、なんですね。
わかりづらいですねw

224 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 20:45:07.50 ]
>>160
すみません。ためして見ましたが他のアプリとの連携が完全に断ち切られてしまいました。

よく考えてみたらxyzzyでいうところのセレクションとリージョンの区別が
emacsには無いのかもしれないと思いました
xyzzyの説明はこれです
hie.s64.xrea.com/xyzzy/note/region-selection.html#1

希望する動作を詳しくいうと、もしもemacsにセレクションの機能があるとして
仮にメモ帳の文字をコピーしたとしてemacsに貼り付けようとするとき
セレクションの貼り付け->メモ帳からの貼り付けok
キルリングのヤンク->メモ帳からの貼り付けNG

逆も同様で、emacsで
セレクションの範囲選択からコピー->メモ帳に貼り付けok
リージョンの範囲選択からコピー->->メモ帳に貼り付けNG

セレクションが無いとするとキルリングを改変して
独立したリージョンのようなもの
(指定したキルリングのみ他のアプリと文字の受け渡し可)
を使いたいのですが可能でしょうか。何か複雑なことになってしまいましたが…

225 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 21:13:29.20 ]
>>224
ちょっとよく分からないけど・・

クリップボードと同期したくないだけなら
(setq x-select-enable-clipboard nil) でよかったはず。

上記の状態でキルリングではなくクリップボードから貼付けしたい時は clipboard-yank
切り取りの clipboard-kill-region と貼付けの clipboard-kill-ring-save ってのはあるんだけど
こっちは kill-ring にも入っちゃうんだよね。

クリップボードと直接やり取りしてるのは >>160 が言ってる変数の中身に指定されている関数である
x-select-text と x-get-selection-value。

セレクションについても普段使ってるプライマリの他にセカンダリ(Alt+ドラッグで指定出来る/Alt+真ん中クリックで貼付け)
ってのがあるから、それと組み合わせて何か関数作ればクリップボード連携専用セレクションは作れると思う。



226 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 21:40:30.25 ]
やっつけでかいてみた。

;; クリップボードとのkill/yank連携解除
(setq x-select-enable-clipboard nil)

;; クリップボードから貼付け
(global-set-key (kbd "C-c y")
(lambda ()
(interactive)
(let ((x-select-enable-clipboard t)
(x-last-selected-text nil))
(insert (or (x-get-selection-value) "")))))

;; クリップボードへコピー
(global-set-key (kbd "C-c w")
(lambda ()
(interactive)
(when (region-active-p)
(let ((x-select-enable-clipboard t))
(x-select-text (buffer-substring-no-properties
(region-beginning) (region-end)))))))


227 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/26(月) 22:43:20.34 ]
>>226
やっつけに突っ込む & 試してないけれど、
(lambda (beg end)
    (interactive "r")
    (let ((x-select-enable-clipboard t))
      (x-select-text (buffer-substring-no-properties beg end))))

228 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 00:56:12.67 ]
>>225-227
ありがとうございます!まさに意図したとおり動いています
思わず笑顔になってしまいました
>>225の説明がわかりやすくて参考になります
ありがとうございました



229 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 11:39:39.37 ]
windowsでファイラーの右クリックからemacsにファイルを送ると
あらたなemacsが起動してしまうのですが
emacsがすでに起動しているならそのemacs内でファイルを開くように設定できますか


230 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 12:04:09.38 ]
>>229
emacsclientw.exe とか?

231 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 13:57:42.71 ]
>>230
ありがとうございます
それを使って設定できました

232 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 21:10:00.44 ]
メジャーモードの作成でdefine-generic-modeを使うとき
キーワードリストで設定するのと色づけリスト内のfont-lock-keyword-faceで設定するのは
変わりないのでしょうか?
それと、予約語や組み込み関数が膨大な言語を扱うときに一つ一つを書くのではなくて
予約語一覧や組み込み関数一覧の別ファイルを読みこんでfont-lockを設定できないものでしょうか
るびきち著のemacslispテクニックバイブル10章を読んでもこのあたりのことが
書いていないのでよくわかりません。

233 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/27(火) 22:00:50.40 ]
generic-mode ではキーワードの外出しはサポートしてないっぽいね。

↓の関数でどうでしょ。
(defun keywords-from-file (file)
"ファイルからキーワードのリストを取得。ファイル内のキーワードは改行で区切ること"
(with-temp-buffer
(insert-file-contents file)
(split-string (buffer-substring-no-properties (point-min) (point-max)) "[\r\n]" t)))

(define-generic-mode
'hogehoge-mode
'("#")
(keywords-from-file "~/.emacs.d/hogehoge-mode-keywords")
...
)

みたいな感じで。

234 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 02:04:40.26 ]
>>233
ありがとうございます。うまくいきました。

235 名前:名無しさん@お腹いっぱい。 [2011/12/28(水) 10:32:52.68 ]
C-yでyankした後にM-yで履歴を遡れますが、
うっかり戻り過ぎた時に戻るコマンドはないのでしょうか。
リングを全部もう1周するのは大変です。
C-/でundoするのも時にはありなんですが、
やっぱり違ったって時にM-yを継続できないので不便です。
簡単に履歴を行ったり来たりできないのでしょうか。

236 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 10:39:02.54 ]
anything-show-kill-ringを使うといいよ^^^

237 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 10:43:02.78 ]
標準の M-y だとあんまり器用なことはできないね。
M-1 M-y とかで yank するヒストリの位置を指定したりできるけどそんなの頭で把握していないだろうし。

素直に browse-yank とか kill-summary とか browse-kill-ring とか popup-kill-ring とかの
貼る奴を選べるタイプのを使ったほうがいいと思う。

anything でも kill-ring は扱えるらしいんだけど使っていないからちょっとそっちは分からない。

238 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 10:55:49.77 ]
>>235
C-u -1 M-y



239 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 11:06:30.27 ]
M-- M-y でいいじゃん。
anything なんか勧めるな

240 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 11:18:09.10 ]
そういうこと言っちゃうとまた彼がくるよ。

241 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 11:24:06.46 ]
実際anything使ってるの?
auto-completeの作者はanythingアンチっぽいな

242 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 11:35:51.24 ]
割と技術ある人はだいたいanythingアンチ。
若い人があの人の煽りに乗せられちゃってるんだよ。

243 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 12:06:07.16 ]
> auto-completeの作者はanythingアンチっぽいな
これソース何?その人のブログとか読んだ限りじゃanythingユーザっぽいんだが…

244 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 12:27:14.73 ]
過剰反応

245 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 13:25:04.41 ]
>>235
redo.elで検索

246 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 14:35:05.68 ]
技術のある人はanythingを使わない(キリ
技術のある人はるびきち本などクソだと思っている(キリッ
vim・nviなどviではない(キリリッ

247 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 16:01:44.06 ]
/*
test
hoge
test
hoge
*/
これ全体にヒットするelispの正規表現はどのようなものでしょうか?
/\\*[\\n.]+\\*/ と書いたのですがヒットしませんでした

248 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 16:12:30.51 ]
> /\\*[\\n.]+\\*/

bracket (文字クラス) の中では . の意味は失われて通常文字になる。

(re-search-forward "/\\*\\(\n\\|.\\)*?\\*/")

でとりあえずマッチする。
コメントみたいなのに正規表現はあんまりよくないんじゃないかね。



249 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 16:18:39.47 ]
> コメントみたいなのに正規表現はあんまりよくないんじゃないかね。

よくないって書いたのはコメントが大きくなってきたときに正規表現がオーバー
フローするって意味です。ちょっとした利用なら気にしなくていいはずです。


250 名前:247 mailto:sage [2011/12/28(水) 16:25:53.05 ]
ありがとうございます。わかりました。


251 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:20:48.37 ]
るびきちとご飯を食べる会とかやってるみたいだし
elisp書いてる界隈は総じて仲良いように見えるけどな。
anything!!anything!!ってプッシュしてなきゃあの人も色々面白い記事かくいい人だと思うよ。

252 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:29:19.67 ]
どんないい記事かこうとあの情報商材みたいな文章の羅列ですべて台無しだよ。
どっかの大学にでも勤めて真っ当な研究でもすればいいのに。いや無理か。。

253 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:30:56.46 ]
うるせえ、創造的破壊するぞ

254 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:33:59.06 ]
イノベーション()

255 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:38:16.02 ]
そうだね
倭猿ごときがEmacsの伝道師なぞ恐れ多いわ

256 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:41:26.13 ]
Lisp方言ならまかせろー!ならまだいいんだけど
たかだか1エディタの設定だけだもんな

257 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:46:11.19 ]
もうちょっと手広くやればいいのにね。
Emacsだけで食べるなんて無理だよ。
100ユーザ集ったとか悪いけど嘘くさすぎる。

258 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:48:25.85 ]
まだ本業のrubyがあるからあわてる時期じゃない



259 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:50:15.62 ]
そういえば設定本にviewer.elでview-modeのmode-lineを色付けして
他のモードと区別しやすくしようなんてページがあったのだけど

載ってるスクショが白黒だた

260 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/28(水) 17:53:07.29 ]
>>258
最後の ruby kaigi に参加したとき自分の中でrubyは三年前のままで時間が止まってるとかほざいてたぞ。
お前その名前詐欺だろと思ったわ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<216KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef