のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,595,276人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレEmacs Part 39

emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
201 : 名無しさん@お腹 - 2011/12/25(日) 11:52:18.04 (+69,+29,-16)
>192
田舎を馬鹿にしてるのは芸風かと思うけど、
emacsに関する分析で、石川県にJAISTがあるのを知らないのか、
知ってて無視してるのか…
202 : 名無しさん@お腹 - 2011/12/25(日) 12:10:42.62 (+91,+29,-11)
emacs関係でその大学の名前を聞いた記憶があんまりないんだけど。
オープンソース扱ってるとときどき聞くけど。
203 : 名無しさん@お腹 - 2011/12/25(日) 12:26:15.80 (+4,-30,-50)
現在開いているファイルがutf-8のとき、
utf-8bomかutf-8non bomかを開いているファイル名情報(ミニバッファ欄というのでしょうか)の
左側に表示したいのですが、可能でしょうか?
204 : 名無しさん@お腹 - 2011/12/25(日) 12:27:38.96 (+5,-28,-4)
書き忘れていました。
改行がlfかcrかも表示させたいです
205 : 名無しさん@お腹 - 2011/12/25(日) 12:50:00.45 (+3,-30,-140)
>>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 : 名無しさん@お腹 - 2011/12/25(日) 12:51:07.42 (+3,-30,-220)
>>204
cr だの lf だの crlf は一応もともと表示はされているけど、
もっとわかりやすくしたいなら以下で。

(setq eol-mnemonic-dos "[CRLF]")
(setq eol-mnemonic-unix "[LF]")
(setq eol-mnemonic-mac "[CR]")
(setq eol-mnemonic-undecided "[?]")
207 : 名無しさん@お腹 - 2011/12/25(日) 13:20:29.19 (+70,+29,-2)
>>202 うーむ、月日が流れるのは早いもんだ。
208 : 名無しさん@お腹 - 2011/12/25(日) 13:22:36.47 (+3,-29,-37)
> (ミニバッファ欄というのでしょうか)

mode-line ね。

mode-line-mule-info いじればなんとでもなりそうな気はするけど。
マウスカーソル合わせればいろいろ表示できるからそれで十分な気がする。
209 : 名無しさん@お腹 - 2011/12/25(日) 13:30:34.87 (+3,-30,-74)
session.el を使っていると file-name-history に w3m の一時ファイル名が溜まるのが嫌なので
(setq session-set-file-name-exclude-regexp "[/\\]\\.overview\\|[/\\]\\.session\\|News[/\\]\\|w3mtmp")
というように、デフォルトの値に付け加えてみたんですが、やはりお構いなしに溜っていきます。

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

(setq load-path `("~/lisp" "~/site-lisp" ,@load-path))
211 : 名無しさん@お腹 - 2011/12/25(日) 13:36:40.41 (+45,-20,-10)
>>210
デメリットは読みづらいって点じゃないかね。
真性 lisper の作った macro とか読んでると分かるかも。
212 : 名無しさん@お腹 - 2011/12/25(日) 13:39:17.64 (+69,+29,-21)
>>211
なるほど、あんまり見ないという意味で読みづらいってのはありそう。
でもただリストに追加するだけ、ってのが設定ファイル上だと多発してるんで、
短くて読みやすいこっちを使ってみます。
ありがとうございました。
213 : 名無しさん@お腹 - 2011/12/25(日) 14:57:06.79 (+95,+1,-4)
xyzzyにはある機能だな
emacsはというと見当たらない気がする
214 : 名無しさん@お腹 - 2011/12/25(日) 15:10:17.46 (+91,+21,-2)
>>213
リスト展開はEmacsで普通に使えてるぞ
215 : 名無しさん@お腹 - 2011/12/25(日) 15:59:36.74 (+108,+29,-7)
>>214
すまねえ、>>213>>200向けのレスだった
アンカーが抜けてしまったわ
216 : 名無しさん@お腹 - 2011/12/25(日) 16:05:04.22 (+78,+29,-15)
>>215
ああ、そういうことか。了解。
>>200 はxyzzyで使えるなら頑張ればEmacsにも移植出来そうなもんだね。
217 : 名無しさん@お腹 - 2011/12/25(日) 17:27:51.00 (+9,-18,-35)
バッファローカルなマクロや関数を設定する方法ってありますでしょうか?
219 : 名無しさん@お腹 - 2011/12/25(日) 18:09:35.92 (+3,-30,-69)
>>218
特定のファイル内でのみ使える使い捨ての関数を使いたかったのでした。

funcall での呼び出しで妥協するなら make-local-variable => lambda => funcall で他への影響少なく
実現出来ましたが、fset しちゃうとしっかりグローバルにマップされちゃうのが残念な感じ・・
220 : 名無しさん@お腹 - 2011/12/25(日) 18:29:51.56 (+3,-30,-157)
特定のファイル(バッファ?)内で呼び出すならそれでいいけど、
いろんなところで呼び出す関数の中でその使い捨て関数を使おうとするとだめじゃないか?

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

221 : 名無しさん@お腹 - 2011/12/25(日) 22:34:15.94 (+40,+12,-25)
リストの中で条件に一致するものだけを抜き出す関数ってありますか?
find-if みたいな条件式を外から渡せるものが欲しいです。
222 : 名無しさん@お腹 - 2011/12/25(日) 22:57:39.93 (+31,-29,-13)
remove-if-not かな。名前分かりづらいよね。
223 : 名無しさん@お腹 - 2011/12/25(日) 23:05:47.16 (+62,+29,-3)
>>222
ありがとうございます。条件に一致しないものを全て除く、なんですね。
わかりづらいですねw
224 : 名無しさん@お腹 - 2011/12/26(月) 20:45:07.50 (+74,+29,-214)
>>160
すみません。ためして見ましたが他のアプリとの連携が完全に断ち切られてしまいました。

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

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

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

セレクションが無いとするとキルリングを改変して
独立したリージョンのようなもの
(指定したキルリングのみ他のアプリと文字の受け渡し可)
を使いたいのですが可能でしょうか。何か複雑なことになってしまいましたが…
225 : 名無しさん@お腹 - 2011/12/26(月) 21:13:29.20 (+82,-30,-187)
>>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 : 名無しさん@お腹 - 2011/12/26(月) 21:40:30.25 (+9,-30,-254)
やっつけでかいてみた。

;; クリップボードとの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 : 名無しさん@お腹 - 2011/12/26(月) 22:43:20.34 (+4,-30,-65)
>>226
やっつけに突っ込む & 試してないけれど、
(lambda (beg end)
    (interactive "r")
    (let ((x-select-enable-clipboard t))
      (x-select-text (buffer-substring-no-properties beg end))))
228 : 名無しさん@お腹 - 2011/12/27(火) 00:56:12.67 (+68,+29,-12)
>>225-227
ありがとうございます!まさに意図したとおり動いています
思わず笑顔になってしまいました
>>225の説明がわかりやすくて参考になります
ありがとうございました
229 : 名無しさん@お腹 - 2011/12/27(火) 11:39:39.37 (+7,-29,-24)
windowsでファイラーの右クリックからemacsにファイルを送ると
あらたなemacsが起動してしまうのですが
emacsがすでに起動しているならそのemacs内でファイルを開くように設定できますか
230 : 名無しさん@お腹 - 2011/12/27(火) 12:04:09.38 (+30,-29,-16)
>>229
emacsclientw.exe とか?
231 : 名無しさん@お腹 - 2011/12/27(火) 13:57:42.71 (+57,+25,+0)
>>230
ありがとうございます
それを使って設定できました
232 : 名無しさん@お腹 - 2011/12/27(火) 21:10:00.44 (+3,-30,-114)
メジャーモードの作成でdefine-generic-modeを使うとき
キーワードリストで設定するのと色づけリスト内のfont-lock-keyword-faceで設定するのは
変わりないのでしょうか?
それと、予約語や組み込み関数が膨大な言語を扱うときに一つ一つを書くのではなくて
予約語一覧や組み込み関数一覧の別ファイルを読みこんでfont-lockを設定できないものでしょうか
るびきち著のemacslispテクニックバイブル10章を読んでもこのあたりのことが
書いていないのでよくわかりません。
233 : 名無しさん@お腹 - 2011/12/27(火) 22:00:50.40 (+33,-30,-234)
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 : 名無しさん@お腹 - 2011/12/28(水) 02:04:40.26 (+56,+23,+2)
>>233
ありがとうございます。うまくいきました。
235 : 名無しさん@お腹 - 2011/12/28(水) 10:32:52.68 (+16,-29,-60)
C-yでyankした後にM-yで履歴を遡れますが、
うっかり戻り過ぎた時に戻るコマンドはないのでしょうか。
リングを全部もう1周するのは大変です。
C-/でundoするのも時にはありなんですが、
やっぱり違ったって時にM-yを継続できないので不便です。
簡単に履歴を行ったり来たりできないのでしょうか。
236 : 名無しさん@お腹 - 2011/12/28(水) 10:39:02.54 (-2,-30,-17)
anything-show-kill-ringを使うといいよ^^^
237 : 名無しさん@お腹 - 2011/12/28(水) 10:43:02.78 (+3,-30,-85)
標準の M-y だとあんまり器用なことはできないね。
M-1 M-y とかで yank するヒストリの位置を指定したりできるけどそんなの頭で把握していないだろうし。

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

anything でも kill-ring は扱えるらしいんだけど使っていないからちょっとそっちは分からない。
238 : 名無しさん@お腹 - 2011/12/28(水) 10:55:49.77 (-6,-29,-1)
>>235
C-u -1 M-y
239 : 名無しさん@お腹 - 2011/12/28(水) 11:06:30.27 (+2,-29,-4)
M-- M-y でいいじゃん。
anything なんか勧めるな
240 : 名無しさん@お腹 - 2011/12/28(水) 11:18:09.10 (+57,+29,-1)
そういうこと言っちゃうとまた彼がくるよ。
241 : 名無しさん@お腹 - 2011/12/28(水) 11:24:06.46 (-1,-29,-23)
実際anything使ってるの?
auto-completeの作者はanythingアンチっぽいな
242 : 名無しさん@お腹 - 2011/12/28(水) 11:35:51.24 (+57,+29,-8)
割と技術ある人はだいたいanythingアンチ。
若い人があの人の煽りに乗せられちゃってるんだよ。
243 : 名無しさん@お腹 - 2011/12/28(水) 12:06:07.16 (-1,-29,-42)
> auto-completeの作者はanythingアンチっぽいな
これソース何?その人のブログとか読んだ限りじゃanythingユーザっぽいんだが…
244 : 名無しさん@お腹 - 2011/12/28(水) 12:27:14.73 (+40,+22,+0)
過剰反応
245 : 名無しさん@お腹 - 2011/12/28(水) 13:25:04.41 (-6,-29,+1)
>>235
redo.elで検索
246 : 名無しさん@お腹 - 2011/12/28(水) 14:35:05.68 (-1,-29,-24)
技術のある人はanythingを使わない(キリ
技術のある人はるびきち本などクソだと思っている(キリッ
vim・nviなどviではない(キリリッ
247 : 名無しさん@お腹 - 2011/12/28(水) 16:01:44.06 (+8,-30,-42)
/*
test
hoge
test
hoge
*/
これ全体にヒットするelispの正規表現はどのようなものでしょうか?
/\\*[\\n.]+\\*/ と書いたのですがヒットしませんでした
248 : 名無しさん@お腹 - 2011/12/28(水) 16:12:30.51 (+3,-30,-51)
> /\\*[\\n.]+\\*/

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

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

でとりあえずマッチする。
コメントみたいなのに正規表現はあんまりよくないんじゃないかね。
249 : 名無しさん@お腹 - 2011/12/28(水) 16:18:39.47 (+62,+29,-56)
> コメントみたいなのに正規表現はあんまりよくないんじゃないかね。

よくないって書いたのはコメントが大きくなってきたときに正規表現がオーバー
フローするって意味です。ちょっとした利用なら気にしなくていいはずです。
250 : 247 - 2011/12/28(水) 16:25:53.05 (+56,+28,+3)
ありがとうございます。わかりました。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について