Emacs Part 39
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2011/11/29(火) 17:50:44.24Emacs Part 38
http://hibari.2ch.net/test/read.cgi/unix/1308635178/
0203名無しさん@お腹いっぱい。
2011/12/25(日) 12:26:15.80utf-8bomかutf-8non bomかを開いているファイル名情報(ミニバッファ欄というのでしょうか)の
左側に表示したいのですが、可能でしょうか?
0204名無しさん@お腹いっぱい。
2011/12/25(日) 12:27:38.96改行がlfかcrかも表示させたいです
0205名無しさん@お腹いっぱい。
2011/12/25(日) 12:50:00.45; 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になっちゃってるから必要であれば細かくわけたほうがいいかも。
一文字縛りだから厳しいけど。
0206名無しさん@お腹いっぱい。
2011/12/25(日) 12:51:07.42cr だの lf だの crlf は一応もともと表示はされているけど、
もっとわかりやすくしたいなら以下で。
(setq eol-mnemonic-dos "[CRLF]")
(setq eol-mnemonic-unix "[LF]")
(setq eol-mnemonic-mac "[CR]")
(setq eol-mnemonic-undecided "[?]")
0207名無しさん@お腹いっぱい。
2011/12/25(日) 13:20:29.190208名無しさん@お腹いっぱい。
2011/12/25(日) 13:22:36.47mode-line ね。
mode-line-mule-info いじればなんとでもなりそうな気はするけど。
マウスカーソル合わせればいろいろ表示できるからそれで十分な気がする。
0209名無しさん@お腹いっぱい。
2011/12/25(日) 13:30:34.87(setq session-set-file-name-exclude-regexp "[/\\]\\.overview\\|[/\\]\\.session\\|News[/\\]\\|w3mtmp")
というように、デフォルトの値に付け加えてみたんですが、やはりお構いなしに溜っていきます。
Emacs は 21.1 を使っているんですが、これを設定してる人はちゃんと効いてますか?
0210名無しさん@お腹いっぱい。
2011/12/25(日) 13:30:46.10append したり add-to-list を繰り返したりするのはよくみるけど
バッククオート使ったリスト展開使ってる人ってあんまり見かけない気がするんですが、
何かデメリットとか互換性とかでまずい点とかがあるんでしょうか?
(setq load-path `("~/lisp" "~/site-lisp" ,@load-path))
0211名無しさん@お腹いっぱい。
2011/12/25(日) 13:36:40.41デメリットは読みづらいって点じゃないかね。
真性 lisper の作った macro とか読んでると分かるかも。
0212名無しさん@お腹いっぱい。
2011/12/25(日) 13:39:17.64なるほど、あんまり見ないという意味で読みづらいってのはありそう。
でもただリストに追加するだけ、ってのが設定ファイル上だと多発してるんで、
短くて読みやすいこっちを使ってみます。
ありがとうございました。
0213名無しさん@お腹いっぱい。
2011/12/25(日) 14:57:06.79emacsはというと見当たらない気がする
0214名無しさん@お腹いっぱい。
2011/12/25(日) 15:10:17.46リスト展開はEmacsで普通に使えてるぞ
0215名無しさん@お腹いっぱい。
2011/12/25(日) 15:59:36.74すまねえ、>>213は>>200向けのレスだった
アンカーが抜けてしまったわ
0216名無しさん@お腹いっぱい。
2011/12/25(日) 16:05:04.22ああ、そういうことか。了解。
>>200 はxyzzyで使えるなら頑張ればEmacsにも移植出来そうなもんだね。
0217名無しさん@お腹いっぱい。
2011/12/25(日) 17:27:51.000218名無しさん@お腹いっぱい。
2011/12/25(日) 17:48:27.78obarray とか make-variable-buffer-local とか intern とか組み合わせてが
んばればもしかしたらそれっぽいことはできるかも。何がやりたいかによりそ
う。
0219名無しさん@お腹いっぱい。
2011/12/25(日) 18:09:35.92特定のファイル内でのみ使える使い捨ての関数を使いたかったのでした。
funcall での呼び出しで妥協するなら make-local-variable => lambda => funcall で他への影響少なく
実現出来ましたが、fset しちゃうとしっかりグローバルにマップされちゃうのが残念な感じ・・
0220名無しさん@お腹いっぱい。
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))
0221名無しさん@お腹いっぱい。
2011/12/25(日) 22:34:15.94find-if みたいな条件式を外から渡せるものが欲しいです。
0222名無しさん@お腹いっぱい。
2011/12/25(日) 22:57:39.930223名無しさん@お腹いっぱい。
2011/12/25(日) 23:05:47.16ありがとうございます。条件に一致しないものを全て除く、なんですね。
わかりづらいですねw
0224名無しさん@お腹いっぱい。
2011/12/26(月) 20:45:07.50すみません。ためして見ましたが他のアプリとの連携が完全に断ち切られてしまいました。
よく考えてみたらxyzzyでいうところのセレクションとリージョンの区別が
emacsには無いのかもしれないと思いました
xyzzyの説明はこれです
http://hie.s64.xrea.com/xyzzy/note/region-selection.html#1
希望する動作を詳しくいうと、もしもemacsにセレクションの機能があるとして
仮にメモ帳の文字をコピーしたとしてemacsに貼り付けようとするとき
セレクションの貼り付け->メモ帳からの貼り付けok
キルリングのヤンク->メモ帳からの貼り付けNG
逆も同様で、emacsで
セレクションの範囲選択からコピー->メモ帳に貼り付けok
リージョンの範囲選択からコピー->->メモ帳に貼り付けNG
セレクションが無いとするとキルリングを改変して
独立したリージョンのようなもの
(指定したキルリングのみ他のアプリと文字の受け渡し可)
を使いたいのですが可能でしょうか。何か複雑なことになってしまいましたが…
0225名無しさん@お腹いっぱい。
2011/12/26(月) 21:13:29.20ちょっとよく分からないけど・・
クリップボードと同期したくないだけなら
(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+真ん中クリックで貼付け)
ってのがあるから、それと組み合わせて何か関数作ればクリップボード連携専用セレクションは作れると思う。
0226名無しさん@お腹いっぱい。
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)))))))
0227名無しさん@お腹いっぱい。
2011/12/26(月) 22:43:20.34やっつけに突っ込む & 試してないけれど、
(lambda (beg end)
(interactive "r")
(let ((x-select-enable-clipboard t))
(x-select-text (buffer-substring-no-properties beg end))))
0228名無しさん@お腹いっぱい。
2011/12/27(火) 00:56:12.67ありがとうございます!まさに意図したとおり動いています
思わず笑顔になってしまいました
>>225の説明がわかりやすくて参考になります
ありがとうございました
0229名無しさん@お腹いっぱい。
2011/12/27(火) 11:39:39.37あらたなemacsが起動してしまうのですが
emacsがすでに起動しているならそのemacs内でファイルを開くように設定できますか
0230名無しさん@お腹いっぱい。
2011/12/27(火) 12:04:09.38emacsclientw.exe とか?
0231名無しさん@お腹いっぱい。
2011/12/27(火) 13:57:42.71ありがとうございます
それを使って設定できました
0232名無しさん@お腹いっぱい。
2011/12/27(火) 21:10:00.44キーワードリストで設定するのと色づけリスト内のfont-lock-keyword-faceで設定するのは
変わりないのでしょうか?
それと、予約語や組み込み関数が膨大な言語を扱うときに一つ一つを書くのではなくて
予約語一覧や組み込み関数一覧の別ファイルを読みこんでfont-lockを設定できないものでしょうか
るびきち著のemacslispテクニックバイブル10章を読んでもこのあたりのことが
書いていないのでよくわかりません。
0233名無しさん@お腹いっぱい。
2011/12/27(火) 22:00:50.40↓の関数でどうでしょ。
(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")
...
)
みたいな感じで。
0234名無しさん@お腹いっぱい。
2011/12/28(水) 02:04:40.26ありがとうございます。うまくいきました。
0235名無しさん@お腹いっぱい。
2011/12/28(水) 10:32:52.68うっかり戻り過ぎた時に戻るコマンドはないのでしょうか。
リングを全部もう1周するのは大変です。
C-/でundoするのも時にはありなんですが、
やっぱり違ったって時にM-yを継続できないので不便です。
簡単に履歴を行ったり来たりできないのでしょうか。
0236名無しさん@お腹いっぱい。
2011/12/28(水) 10:39:02.540237名無しさん@お腹いっぱい。
2011/12/28(水) 10:43:02.78M-1 M-y とかで yank するヒストリの位置を指定したりできるけどそんなの頭で把握していないだろうし。
素直に browse-yank とか kill-summary とか browse-kill-ring とか popup-kill-ring とかの
貼る奴を選べるタイプのを使ったほうがいいと思う。
anything でも kill-ring は扱えるらしいんだけど使っていないからちょっとそっちは分からない。
0238名無しさん@お腹いっぱい。
2011/12/28(水) 10:55:49.77C-u -1 M-y
0239名無しさん@お腹いっぱい。
2011/12/28(水) 11:06:30.27anything なんか勧めるな
0240名無しさん@お腹いっぱい。
2011/12/28(水) 11:18:09.100241名無しさん@お腹いっぱい。
2011/12/28(水) 11:24:06.46auto-completeの作者はanythingアンチっぽいな
0242名無しさん@お腹いっぱい。
2011/12/28(水) 11:35:51.24若い人があの人の煽りに乗せられちゃってるんだよ。
0243名無しさん@お腹いっぱい。
2011/12/28(水) 12:06:07.16これソース何?その人のブログとか読んだ限りじゃanythingユーザっぽいんだが…
0244名無しさん@お腹いっぱい。
2011/12/28(水) 12:27:14.730245名無しさん@お腹いっぱい。
2011/12/28(水) 13:25:04.41redo.elで検索
0246名無しさん@お腹いっぱい。
2011/12/28(水) 14:35:05.68技術のある人はるびきち本などクソだと思っている(キリッ
vim・nviなどviではない(キリリッ
0247名無しさん@お腹いっぱい。
2011/12/28(水) 16:01:44.06test
hoge
test
hoge
*/
これ全体にヒットするelispの正規表現はどのようなものでしょうか?
/\\*[\\n.]+\\*/ と書いたのですがヒットしませんでした
0248名無しさん@お腹いっぱい。
2011/12/28(水) 16:12:30.51bracket (文字クラス) の中では . の意味は失われて通常文字になる。
(re-search-forward "/\\*\\(\n\\|.\\)*?\\*/")
でとりあえずマッチする。
コメントみたいなのに正規表現はあんまりよくないんじゃないかね。
0249名無しさん@お腹いっぱい。
2011/12/28(水) 16:18:39.47よくないって書いたのはコメントが大きくなってきたときに正規表現がオーバー
フローするって意味です。ちょっとした利用なら気にしなくていいはずです。
0250247
2011/12/28(水) 16:25:53.050251名無しさん@お腹いっぱい。
2011/12/28(水) 17:20:48.37elisp書いてる界隈は総じて仲良いように見えるけどな。
anything!!anything!!ってプッシュしてなきゃあの人も色々面白い記事かくいい人だと思うよ。
0252名無しさん@お腹いっぱい。
2011/12/28(水) 17:29:19.67どっかの大学にでも勤めて真っ当な研究でもすればいいのに。いや無理か。。
0253名無しさん@お腹いっぱい。
2011/12/28(水) 17:30:56.460254名無しさん@お腹いっぱい。
2011/12/28(水) 17:33:59.060255名無しさん@お腹いっぱい。
2011/12/28(水) 17:38:16.02倭猿ごときがEmacsの伝道師なぞ恐れ多いわ
0256名無しさん@お腹いっぱい。
2011/12/28(水) 17:41:26.13たかだか1エディタの設定だけだもんな
0257名無しさん@お腹いっぱい。
2011/12/28(水) 17:46:11.19Emacsだけで食べるなんて無理だよ。
100ユーザ集ったとか悪いけど嘘くさすぎる。
0258名無しさん@お腹いっぱい。
2011/12/28(水) 17:48:25.850259名無しさん@お腹いっぱい。
2011/12/28(水) 17:50:15.62他のモードと区別しやすくしようなんてページがあったのだけど
載ってるスクショが白黒だた
0260名無しさん@お腹いっぱい。
2011/12/28(水) 17:53:07.29最後の ruby kaigi に参加したとき自分の中でrubyは三年前のままで時間が止まってるとかほざいてたぞ。
お前その名前詐欺だろと思ったわ。
0261名無しさん@お腹いっぱい。
2011/12/28(水) 17:55:39.93ズコーw
0262名無しさん@お腹いっぱい。
2011/12/28(水) 17:57:45.090263名無しさん@お腹いっぱい。
2011/12/28(水) 17:58:27.220264名無しさん@お腹いっぱい。
2011/12/28(水) 17:58:35.120265名無しさん@お腹いっぱい。
2011/12/28(水) 18:03:04.340266名無しさん@お腹いっぱい。
2011/12/28(水) 18:04:38.740267名無しさん@お腹いっぱい。
2011/12/28(水) 18:18:48.690268名無しさん@お腹いっぱい。
2011/12/28(水) 18:23:38.650269名無しさん@お腹いっぱい。
2011/12/28(水) 18:54:32.360270名無しさん@お腹いっぱい。
2011/12/28(水) 18:57:51.43なあ。俺らはるびきち本がどんなにつまらん内容か確認するためだけに買ってその後捨てたわ。
0271名無しさん@お腹いっぱい。
2011/12/28(水) 19:17:33.420272名無しさん@お腹いっぱい。
2011/12/28(水) 19:24:54.32emacswikiもいらん、このスレだけで十二分だ
0273名無しさん@お腹いっぱい。
2011/12/28(水) 19:41:22.070274名無しさん@お腹いっぱい。
2011/12/28(水) 19:49:32.870275名無しさん@お腹いっぱい。
2011/12/28(水) 20:39:36.160276名無しさん@お腹いっぱい。
2011/12/28(水) 20:42:01.54>>273
俺も買い占めは出来なかったけどせめての布教防止にと2冊買った。
0277名無しさん@お腹いっぱい。
2011/12/28(水) 22:27:24.40悪く言われているのは……
0278名無しさん@お腹いっぱい。
2011/12/28(水) 22:39:30.780279名無しさん@お腹いっぱい。
2011/12/28(水) 22:44:46.33つまりそういうことだ
0280名無しさん@お腹いっぱい。
2011/12/28(水) 22:46:15.310281名無しさん@お腹いっぱい。
2011/12/28(水) 22:49:10.020282名無しさん@お腹いっぱい。
2011/12/28(水) 23:06:09.34あの頃は顔写真まで使って叩いてて酷いと思った
0283名無しさん@お腹いっぱい。
2011/12/28(水) 23:07:47.51別に悪人じゃないし色々貢献している人ではあるんだけど
0284名無しさん@お腹いっぱい。
2011/12/28(水) 23:12:26.85最近anything連呼してるだけじゃん。
0285名無しさん@お腹いっぱい。
2011/12/28(水) 23:13:51.020286名無しさん@お腹いっぱい。
2011/12/28(水) 23:14:14.58elisp本では「筆者がメンテナンス・開発している」anythingになっていた
ちなみに原作者の名前はまったく出てこない。まさに神の御業である
0287名無しさん@お腹いっぱい。
2011/12/28(水) 23:45:54.41anything.elもなんだかんだ言って既存のemacsスクリプトを取り込んで拡張していったから
自ずと限界は見えてしまう
anything.elがemacsの諸ライブラリの統合だと主張するのはわかったから
つぎはvimとemacsの統合というか融合の形を見せてほしい
0288名無しさん@お腹いっぱい。
2011/12/28(水) 23:49:42.010289名無しさん@お腹いっぱい。
2011/12/28(水) 23:55:24.140290名無しさん@お腹いっぱい。
2011/12/29(木) 00:01:08.69外部プログラム使おうぜって主張だったと思うけど。
正直emacs内のhttpライブラリとかうんこちんちんだからなあ。
ただ外部プログラム呼ぶと他の環境に移る時めんどくさい。
0291名無しさん@お腹いっぱい。
2011/12/29(木) 00:35:35.93>正直emacs内のhttpライブラリとかうんこちんちんだからなあ。
詳しく聞きたい
0292名無しさん@お腹いっぱい。
2011/12/29(木) 00:40:34.06なんとか言ってくれよ誰か!俺達が…俺達が費した青春は何だったんだよ!
0293名無しさん@お腹いっぱい。
2011/12/29(木) 00:47:03.98・POSTメソッドをサポートしてない
・非同期接続時にタイムアウト指定できない
・接続待機はコンパイル時のオプション次第によっては非同期にならない
これはあかんよ。
0294名無しさん@お腹いっぱい。
2011/12/29(木) 01:06:16.02postメソッドについては知らなかった
そうだったのか
0295名無しさん@お腹いっぱい。
2011/12/29(木) 11:50:02.700297名無しさん@お腹いっぱい。
2011/12/29(木) 12:49:16.97(custom-set-faces
'(font-lock-keyword-face ((t (:foreground "yellow")))))
のようにすると他のモードにも色が反映されてしまうのですが、
任意のモードのときにのみ特定の色をつけるということは可能でしょうか
0298名無しさん@お腹いっぱい。
2011/12/29(木) 13:09:33.71デフォルトのfaceを使いたくない場合は、自分でfaceを作って
font-lock に教えてあげる必要がある。
特定のフェイスの色をバッファ毎に置き換える方法はちょっと分からない。
(make-face 'hogehoge-green-face)
(set-face-attribute 'hogehoge-green-face nil :foreground "green")
(make-face 'hogehoge-red-face)
(set-face-attribute 'hogehoge-red-face nil :foreground "red")
(font-lock-add-keywords 'hogehoge-mode
'(("^GREEN: .*" . 'hogehoge-green-face)
("^RED: .*" . 'hogehoge-red-face)))
んで、
generic-mode の場合は generic-make-keyword-list って関数があって、
これだとキーワードのリストに対して任意の face を指定出来るみたいだからこっち使ったほうがいいのかもね。
詳しい使い方は関数のヘルプをみてちょうだいな。
0299名無しさん@お腹いっぱい。
2011/12/29(木) 13:11:14.19× generic-make-keyword-list
○ generic-make-keywords-list
0300名無しさん@お腹いっぱい。
2011/12/29(木) 14:34:09.80どうしても変数を渡したい場合は以下の方法しかないんでしょうか?
(setq a "C-c a")
(kbd a) ;; => (wrong-type-argument integer-or-marker-p a)
(eval `(kbd ,a)) ;; => "^C"
0301名無しさん@お腹いっぱい。
2011/12/29(木) 14:57:49.13(macroexpand '(kbd a))
で
>Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p a)
となるのはなぜなのだろう?
(macroexpand '(dolist (x '(a b c)) (print x)))
は問題ないのに
0302名無しさん@お腹いっぱい。
2011/12/29(木) 15:32:41.59lisp reader作っちゃうような真性lisperの集まるスレに行って聞くといいかも。
プログラム板のschemeとかclとかの。
>>300
(setq a "C-c a")
(read-kbd-macro a)
ってやっちゃうととりあえず願いは叶うんだろうけど、これじゃ不満だろうか?
kbd はシンタックスシュガーな気がするしループの中でなんかするとかそうい
う使い方じゃないんじゃなかろうか。
■ このスレッドは過去ログ倉庫に格納されています