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

    元スレEmacs Part 39

    emacs覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    201 = :

    >192
    田舎を馬鹿にしてるのは芸風かと思うけど、
    emacsに関する分析で、石川県にJAISTがあるのを知らないのか、
    知ってて無視してるのか…

    202 = :

    emacs関係でその大学の名前を聞いた記憶があんまりないんだけど。
    オープンソース扱ってるとときどき聞くけど。

    203 = :

    現在開いているファイルがutf-8のとき、
    utf-8bomかutf-8non bomかを開いているファイル名情報(ミニバッファ欄というのでしょうか)の
    左側に表示したいのですが、可能でしょうか?

    204 = :

    書き忘れていました。
    改行がlfかcrかも表示させたいです

    205 = :

    >>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 = :

    >>204
    cr だの lf だの crlf は一応もともと表示はされているけど、
    もっとわかりやすくしたいなら以下で。

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

    207 = :

    >>202 うーむ、月日が流れるのは早いもんだ。

    208 = :

    > (ミニバッファ欄というのでしょうか)

    mode-line ね。

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

    209 = :

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

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

    210 = :

    load-path とかを設定するときに
    append したり add-to-list を繰り返したりするのはよくみるけど
    バッククオート使ったリスト展開使ってる人ってあんまり見かけない気がするんですが、
    何かデメリットとか互換性とかでまずい点とかがあるんでしょうか?

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

    211 = :

    >>210
    デメリットは読みづらいって点じゃないかね。
    真性 lisper の作った macro とか読んでると分かるかも。

    212 = :

    >>211
    なるほど、あんまり見ないという意味で読みづらいってのはありそう。
    でもただリストに追加するだけ、ってのが設定ファイル上だと多発してるんで、
    短くて読みやすいこっちを使ってみます。
    ありがとうございました。

    213 = :

    xyzzyにはある機能だな
    emacsはというと見当たらない気がする

    214 = :

    >>213
    リスト展開はEmacsで普通に使えてるぞ

    215 = :

    >>214
    すまねえ、>>213>>200向けのレスだった
    アンカーが抜けてしまったわ

    216 = :

    >>215
    ああ、そういうことか。了解。
    >>200 はxyzzyで使えるなら頑張ればEmacsにも移植出来そうなもんだね。

    217 = :

    バッファローカルなマクロや関数を設定する方法ってありますでしょうか?

    219 = :

    >>218
    特定のファイル内でのみ使える使い捨ての関数を使いたかったのでした。

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

    220 = :

    特定のファイル(バッファ?)内で呼び出すならそれでいいけど、
    いろんなところで呼び出す関数の中でその使い捨て関数を使おうとするとだめじゃないか?

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

    221 = :

    リストの中で条件に一致するものだけを抜き出す関数ってありますか?
    find-if みたいな条件式を外から渡せるものが欲しいです。

    222 = :

    remove-if-not かな。名前分かりづらいよね。

    223 = :

    >>222
    ありがとうございます。条件に一致しないものを全て除く、なんですね。
    わかりづらいですねw

    224 = :

    >>160
    すみません。ためして見ましたが他のアプリとの連携が完全に断ち切られてしまいました。

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

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

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

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

    225 = :

    >>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 = :

    やっつけでかいてみた。

    ;; クリップボードとの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 = :

    >>226
    やっつけに突っ込む & 試してないけれど、
    (lambda (beg end)
        (interactive "r")
        (let ((x-select-enable-clipboard t))
          (x-select-text (buffer-substring-no-properties beg end))))

    228 = :

    >>225-227
    ありがとうございます!まさに意図したとおり動いています
    思わず笑顔になってしまいました
    >>225の説明がわかりやすくて参考になります
    ありがとうございました

    229 = :

    windowsでファイラーの右クリックからemacsにファイルを送ると
    あらたなemacsが起動してしまうのですが
    emacsがすでに起動しているならそのemacs内でファイルを開くように設定できますか

    230 = :

    >>229
    emacsclientw.exe とか?

    231 = :

    >>230
    ありがとうございます
    それを使って設定できました

    232 = :

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

    233 = :

    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 = :

    >>233
    ありがとうございます。うまくいきました。

    235 = :

    C-yでyankした後にM-yで履歴を遡れますが、
    うっかり戻り過ぎた時に戻るコマンドはないのでしょうか。
    リングを全部もう1周するのは大変です。
    C-/でundoするのも時にはありなんですが、
    やっぱり違ったって時にM-yを継続できないので不便です。
    簡単に履歴を行ったり来たりできないのでしょうか。

    237 = :

    標準の M-y だとあんまり器用なことはできないね。
    M-1 M-y とかで yank するヒストリの位置を指定したりできるけどそんなの頭で把握していないだろうし。

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

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

    239 = :

    M-- M-y でいいじゃん。
    anything なんか勧めるな

    240 = :

    そういうこと言っちゃうとまた彼がくるよ。

    242 = :

    割と技術ある人はだいたいanythingアンチ。
    若い人があの人の煽りに乗せられちゃってるんだよ。

    244 = :

    過剰反応

    247 = :

    /*
    test
    hoge
    test
    hoge
    */
    これ全体にヒットするelispの正規表現はどのようなものでしょうか?
    /\\*[\\n.]+\\*/ と書いたのですがヒットしませんでした

    248 = :

    > /\\*[\\n.]+\\*/

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

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

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

    249 = :

    > コメントみたいなのに正規表現はあんまりよくないんじゃないかね。

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

    250 = :

    ありがとうございます。わかりました。


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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