Emacs Part 39
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2011/11/29(火) 17:50:44.24Emacs Part 38
http://hibari.2ch.net/test/read.cgi/unix/1308635178/
0171名無しさん@お腹いっぱい。
2011/12/23(金) 17:36:24.38shell-mode で我慢してる。っていうかあれで充分。シグナル変なのは advice つけて直した
0172名無しさん@お腹いっぱい。
2011/12/23(金) 18:31:37.90文字化け対策用変換パイププログラムとかねーのかな
0173名無しさん@お腹いっぱい。
2011/12/23(金) 18:34:00.680174名無しさん@お腹いっぱい。
2011/12/23(金) 19:11:46.96ありがとうございます
そのあたりをあさっていたら ~/.eshell/lastdir のファイルがおかしいことに気づきました
その箇所を削除したら無事終了するようになりました
ところで、>>170の通りるびきちの本をもとにeshellを使いはじめてみたのですが
emacsを使う人は通常他の外部シェルを使うのでしょうか
0175名無しさん@お腹いっぱい。
2011/12/23(金) 19:18:37.630176名無しさん@お腹いっぱい。
2011/12/23(金) 19:23:02.71する。るびきちに関しては感性が相当に偏っているので、彼のいうことにあん
まり没頭しすぎるのは考えものだとは思う。
0177名無しさん@お腹いっぱい。
2011/12/23(金) 19:27:14.550178名無しさん@お腹いっぱい。
2011/12/23(金) 19:30:55.80msysだのcygwin入れなくても、ls,cp,mv,rm,chmod,とか使えるのは相当便利だよ。
0179名無しさん@お腹いっぱい。
2011/12/23(金) 19:38:39.16シェルをカスタマイズしまくっているなら ansi-term 一択
0180名無しさん@お腹いっぱい。
2011/12/23(金) 20:06:41.14結構 CPU 負荷がかかる。
0181名無しさん@お腹いっぱい。
2011/12/23(金) 20:23:56.55最近evil-mode使い始めたところなんたけど
確かに設定が面倒くさい。
viewモードメインのアプローチも確かに良さそうだね。そっちも試してみる。
0182名無しさん@お腹いっぱい。
2011/12/23(金) 20:37:24.12オフにするにはどうすればいいですか。
0183名無しさん@お腹いっぱい。
2011/12/23(金) 22:28:23.45http://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等には手をつけなくていいかと
0184名無しさん@お腹いっぱい。
2011/12/24(土) 00:09:46.51お礼が遅くなってすみません
それでうまくいきました
0185名無しさん@お腹いっぱい。
2011/12/24(土) 02:03:40.31(if test
(list (aa) (bb) (cc) (dd) (ee))
(list (aa) (ff) (ee)))
(aa)や(dd)などはすべて文字列を返す関数で、
このような処理をしようと思うのですが、
list関数と aa, ee関数が重複しており編集しづらいです
重複分を削る手はないでしょうか
0186名無しさん@お腹いっぱい。
2011/12/24(土) 02:45:42.90list の中身のソート順をプログラマが考えて決めるんだったらある程度冗長
になるのは仕方ないと思うんだけど。
どうしたいのかいまいちわからない。
0187名無しさん@お腹いっぱい。
2011/12/24(土) 03:01:13.07`(,(aa)
,@(mapcar
#'(lambda (f) (funcall f))
(if test '(bb cc dd) '(ff)))
,(ee))
0188名無しさん@お腹いっぱい。
2011/12/24(土) 03:27:46.43こんな感じ?
(append
(list (aa))
(if test
(list (bb) (cc) (dd))
(list (ff)))
(list (ee))
(mapcar 'funcall
`(aa
,@(if test
'(bb cc dd)
'(ff))
ee))
0189名無しさん@お腹いっぱい。
2011/12/24(土) 08:59:28.950190名無しさん@お腹いっぱい。
2011/12/24(土) 09:12:31.39NTEmacsスレもよろしくね。
http://anago.2ch.net/test/read.cgi/software/1221125611/
0191名無しさん@お腹いっぱい。
2011/12/24(土) 11:05:00.31そうです。コード編集です。
もっと縮められないものかとおもっていました
>>187-188
ありがとうございます。
appendとバッククオートでそう組み立てるのは思いつきませんでした
例を示していただいて気づいたのですが、自分はリスト生成の内側でifを使いたかったんだなと
0192名無しさん@お腹いっぱい。
2011/12/24(土) 12:25:44.35ttp://d.hatena.ne.jp/shim0mura/20111220/1324575061
0193名無しさん@お腹いっぱい。
2011/12/24(土) 12:36:21.37(require 'hoge)で読み込んでいるファイル hoge.el に書いてある関数を
init.elに新たに関数を書いて上書きしようとしてもうまくいきません
hoge.elの該当部分の関数定義をコメントアウトすると
init.elで再定義したとおりに動きます
どうすればいいのでしょうか
0194名無しさん@お腹いっぱい。
2011/12/24(土) 12:36:25.61書きやすいコードより見やすいコードを目指した方がいい。
0195名無しさん@お腹いっぱい。
2011/12/24(土) 12:58:09.19新たな関数を (require 'hoge) より前に書いてるというオチではないよな?
0196名無しさん@お腹いっぱい。
2011/12/24(土) 13:06:18.14(eval-after-load 'hoge '(defun ...))
とか、多分邪道だけど
(defadvice fuga (around ... )
ad-do-it なし)
にする。
0197名無しさん@お腹いっぱい。
2011/12/24(土) 14:02:29.09再定義していると思っている関数のスペルが間違っている
再定義後に再びload-file, load-libraryしている
0198名無しさん@お腹いっぱい。
2011/12/24(土) 17:38:11.00なんとなく書き換わるの怖くてdefadvice派だなぁ。
0199名無しさん@お腹いっぱい。
2011/12/25(日) 05:44:00.27おそらく一部には反感を買いそうだけど、
楽しんで書いてるのが伝わってきて確かに面白い。
0200名無しさん@お腹いっぱい。
2011/12/25(日) 10:45:34.31http://d.hatena.ne.jp/takuya_1st/20111222/1324550041
この中にでてくる、EmEditorの「折り返し行表示も論理的にインデントされる」機能って
なかなか素敵だと思うんだけど Emacs 用でそういうのないかな。
自前のソースだったら長くなりすぎないよう適度に分割するんだけど
拾ってきたソース見てる時とかウィンドウ幅細くして眺めてる時とかこれできたらちょっとうれしい気がする。
0201名無しさん@お腹いっぱい。
2011/12/25(日) 11:52:18.04田舎を馬鹿にしてるのは芸風かと思うけど、
emacsに関する分析で、石川県にJAISTがあるのを知らないのか、
知ってて無視してるのか…
0202名無しさん@お腹いっぱい。
2011/12/25(日) 12:10:42.62オープンソース扱ってるとときどき聞くけど。
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なあ。俺らはるびきち本がどんなにつまらん内容か確認するためだけに買ってその後捨てたわ。
■ このスレッドは過去ログ倉庫に格納されています