1 名前:名無しさん@お腹いっぱい。 [2011/11/29(火) 17:50:44.24 ] 前スレ Emacs Part 38 hibari.2ch.net/test/read.cgi/unix/1308635178/
127 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 10:41:44.36 ] 小菊って開発停止してるのな・・ いつからそうなってたのかわからないけど Emacs 23 で find-file 中に completion 対象が内状況で 補完しようとすると Wrong type argument: stringp, file-exists-p とか出てくる。
128 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 10:48:47.65 ] >>127 M-x toggle-debug-on-error して trace 出してみたら?コメントつくかも。
129 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 11:00:52.00 ] 了解です。とりあえず貼ってみます。 ちなみにNTEmacs + Cygwin on Windows7 な環境です。 Kogiku:ON の状況で ~/.emacs.d/p で補完(pで始まるファイルはない)でTABを押すとこの状況になります。 Kogiku:Fire(OFF) の状況だとちゃんと [No match] が出ます。 Debugger entered--Lisp error: (wrong-type-argument stringp file-exists-p) signal(wrong-type-argument (stringp file-exists-p)) completion--some(#[(style) " \236A@\n\f $\207" [style completion-styles-alist string table pred point] 5] (basic partial-completion emacs22)) completion-try-completion("~/.emacs.d/p" kogiku-read-file-name-internal file-exists-p 12) completion--do-completion() minibuffer-complete() funcall(minibuffer-complete) (let ((minibuffer-completion-table minibuffer-completion-table)) (when (or ... ...) (setq minibuffer-completion-table ...)) (funcall (car kogiku-original-functions))) kogiku-complete(nil) call-interactively(kogiku-complete nil nil) completing-read("Find file: " read-file-name-internal file-exists-p confirm-after-completion "~/.emacs.d/" file-name-history "~/.emacs.d/") read-file-name("Find file: " nil "c:/Users/XXXXX/Documents/.emacs.d/" confirm-after-completion) find-file-read-args("Find file: " confirm-after-completion) byte-code("\300\301\302 \"\207" [find-file-read-args "Find file: " confirm-nonexistent-file-or-buffer] 3) call-interactively(find-file nil nil)
130 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 17:04:01.70 ] jblevins.org/projects/markdown-mode/ のmarkdown-mode.elを入れたら 行頭に[がくるときに色づけがおかしくなることに気づきました a [example] testでは問題ないのですが [example] testのように行頭に[がくると ]: が現れるまでの行がずっと同じ色になります [example]: www.example.com/ こういう表記があるのですが、この [text]: url 形式だと設定が誤認しているのでは ないかと思います 行頭に[があって]:で終わっていない場合、つまり[example] testのような場合に 適切に色づけをするにはどこを修正すればよいのでしょうか markdown-mode.elを]:で検索してもそれらしき設定が見当たらないため、手詰まりしてしまいました よろしくお願いします
131 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 17:14:04.67 ] >>130 多分 markdown-regex-reference-definition の正規表現に問題があるんだろうけど markdown をよく知らないのでどうなおしたらいいのかわからない .+?のところを改行を除くにしてみるとかなのかね。 (defconst markdown-regex-reference-definition "^ \\{0,3\\}\\(\\[.+?\\]\\):\\s *\\(.*?\\)\\s *\\( \"[^\"]*\"$\\|$\\)" "Regular expression for a link definition [id]: ...")
132 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 17:36:04.39 ] replace-regexpでリージョン内の。を。\n(\nは改行)に 置換するにはどうすればよいのでしょうか replace-regexp [ret] 。 [ret] \&\n と入力したら invalid use of \ in replacement text となりました replace-regexp [ret] 。 [ret] \&\\n では。\nが出力され、失敗になります できれば。のあとに改行がきていないときだけ。のあとに改行を加えるような 置換処理をしたいです
133 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 17:42:47.67 ] 改行は C-q [ret] で直接改行入れちゃえばいいと思う。 replace-regexp [ret] 。 C-q [ret]? [ret] 。C-q [ret]
134 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/20(火) 17:45:46.29 ] 改行文字は C-q C-j で入れる。 一度 。 ↓ 。 [C-j] に置換して、次に 。 [C-j] [C-j] ↓ 。 [C-j] に置換すればいい。 replace-string で十分。
135 名前:132 mailto:sage [2011/12/20(火) 19:15:34.11 ] >>133-134 できました。ありがとうございます。
136 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/21(水) 13:45:38.66 ] 特定ディレクトリ内の特定拡張子ファイル(*.txtや*.html)に grepをかけて置換する処理はemacsでできますか? できれば特定の拡張子を除外するという設定もしたいのですが
137 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/21(水) 14:01:19.31 ] grep-edit だの color-moccur だの色々あるよ
138 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/21(水) 15:02:50.36 ] あとfind-grepだな。
139 名前:127 mailto:sage [2011/12/21(水) 15:39:29.08 ] 小菊がemacs23でおかしくなった件ですが、とりあえずの回避方法がわかったので残しておきます。 completion-sytles の中の partial-completion が kogiku と相性が悪いようです。 emacs23 はデフォルトで partial-completion 有効になってたんですねー。 この方法だと補完対象が存在しない場合でもエラーにならず [not match] が出るようになります。 ただ、 "~[TAB]" などでまだエラーになるので根本的な解決にはなっていないようです。 ■以下を設定ファイルに記入 ;; completion-pcm-try-completion は kogiku と相性が悪いので使わない (setq completion-styles (delete 'partial-completion completion-styles)) ;; partial-completion を使いたい場合、partial-completion-mode を使う ; (partial-completion-mode t) ;; kogiku より前に実行 (require 'kogiku)
140 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/21(水) 19:18:57.79 ] >>139 ありがとうございます! anago.2ch.net/test/read.cgi/software/1221125611/951 から来た物ですが、この設定をしたら、wanderlustのdraftバッファで添付ファイルを添付しようと小菊でブラウズした際にNTEmacs毎落ちる現象が出なくなりました。 暫くこれで様子を見させてください!
141 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/21(水) 22:13:18.22 ] >>137-138 ありがとうございます。助かりました。
142 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 01:08:01.91 ] (set-frame-size (selected-frame) 168 51) を init.el の最後に書いてんだけど、最後にちょっとだけずれる。なんで?
143 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 01:18:43.67 ] init.el の読み込みより後に実行されるフックで評価されるようにしたらいいんじゃない
144 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 01:31:35.18 ] >>134 やってみた (add-hook 'after-init-hook '(lambda () (set-frame-position (selected-frame) 0 0) (set-frame-size (selected-frame) 168 51) )) って感じで。でもやっぱ最後にちょとだけずれて frame-height が 49 になる。なんで?
145 名前:142 mailto:sage [2011/12/22(木) 02:32:40.30 ] どうも selected-frame には tool-bar も含まれるようで、 これが原因のようです。 window-system や toolkit によって tool-bar や menu-bar と height の関係が異なるようです。 www.gnu.org/s/emacs/manual/html_node/elisp/Size-and-Position.html#Size-and-Position どうもお騒がせしました。
146 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 13:10:15.72 ] elispでshell-command経由でファイルを扱うとき ベースとなるディレクトリを変更したいのですがどうするのでしょうか
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 13:54:22.19 ] >>146 shell-command の引数に cd hoge; と書くか、直前に (cd "hoge") する。
148 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 14:25:05.51 ] Emacs 23 なんだけど、 ^L のリセンサーを上に行ったり下に行ったりしないようにするには どんな設定をすればいいの?
149 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 14:26:26.02 ] リセンサー→リセンター
150 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 14:28:19.97 ] >>148 M-x redraw-display ってこと?
151 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 14:36:22.41 ] >>148 (setq recenter-positions '(middle)) 質問前に \C-h k などを使って Help を見るようにすべき。
152 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 15:17:02.00 ] >>151 custom-set-variables に '(recenter-positions (quote (middle))) の設定を加えました。 ありがとう、勉強になった。
153 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 16:50:40.22 ] >>147 shell-commandの方がなぜかただしく動きませんがcdなら大丈夫でした ありがとうございます
154 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 18:03:12.62 ] elispを編集しているときに ()の)を入力したときには前括弧が太字になるのですが、 入力したときだけじゃなくてカーソルを合わせたときにも 太字にする方法はあるでしょうか?
155 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 18:18:50.61 ] >>154 show-paren-mode
156 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 19:34:35.43 ] >>155 ありがとうございます!
157 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 22:48:57.09 ] evil-modeとかvimpulse使ってる人いる? 個人的にはモーダルなemacsって最高だと思うんだけど邪道なのかな?
158 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/22(木) 22:57:27.11 ] そりゃ素直にvim使えとは思う。 色んなelispをvi系のモードに合わせるのってしんどくない? モーダルな入力でおもったけど (setq view-read-only t) にして view-mode をガンガン操作しやすくカスタマイズすれば C-x C-q (もしくはもっと気楽なキーバインド)をトリガにした素直なモーダル Emacs と言えるんじゃないかな。
159 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/23(金) 02:34:38.74 ] xyzzyからemacsに移行しようと思うのですが キルリングとクリップボードが同期してしまうのをできれば解除したいです キルリングはemacs内だけで簡潔するようにし(他のアプリのクリップボードと連携せず)、 クリップボードは従来通り他のアプリと連携できるようにする こういった設定は可能でしょうか?
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))))