Emacs Part 39
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2011/11/29(火) 17:50:44.24Emacs Part 38
http://hibari.2ch.net/test/read.cgi/unix/1308635178/
0128名無しさん@お腹いっぱい。
2011/12/20(火) 10:48:47.65M-x toggle-debug-on-error
して trace 出してみたら?コメントつくかも。
0129名無しさん@お腹いっぱい。
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)
0130名無しさん@お腹いっぱい。
2011/12/20(火) 17:04:01.70行頭に[がくるときに色づけがおかしくなることに気づきました
a [example] testでは問題ないのですが
[example] testのように行頭に[がくると
]: が現れるまでの行がずっと同じ色になります
[example]: http://www.example.com/
こういう表記があるのですが、この [text]: url 形式だと設定が誤認しているのでは
ないかと思います
行頭に[があって]:で終わっていない場合、つまり[example] testのような場合に
適切に色づけをするにはどこを修正すればよいのでしょうか
markdown-mode.elを]:で検索してもそれらしき設定が見当たらないため、手詰まりしてしまいました
よろしくお願いします
0131名無しさん@お腹いっぱい。
2011/12/20(火) 17:14:04.67多分 markdown-regex-reference-definition の正規表現に問題があるんだろうけど
markdown をよく知らないのでどうなおしたらいいのかわからない
.+?のところを改行を除くにしてみるとかなのかね。
(defconst markdown-regex-reference-definition
"^ \\{0,3\\}\\(\\[.+?\\]\\):\\s *\\(.*?\\)\\s *\\( \"[^\"]*\"$\\|$\\)"
"Regular expression for a link definition [id]: ...")
0132名無しさん@お腹いっぱい。
2011/12/20(火) 17:36:04.39置換するにはどうすればよいのでしょうか
replace-regexp [ret] 。 [ret] \&\n
と入力したら
invalid use of \ in replacement text
となりました
replace-regexp [ret] 。 [ret] \&\\n
では。\nが出力され、失敗になります
できれば。のあとに改行がきていないときだけ。のあとに改行を加えるような
置換処理をしたいです
0133名無しさん@お腹いっぱい。
2011/12/20(火) 17:42:47.67replace-regexp [ret] 。 C-q [ret]? [ret] 。C-q [ret]
0134名無しさん@お腹いっぱい。
2011/12/20(火) 17:45:46.29一度
。
↓
。 [C-j]
に置換して、次に
。 [C-j] [C-j]
↓
。 [C-j]
に置換すればいい。
replace-string で十分。
0136名無しさん@お腹いっぱい。
2011/12/21(水) 13:45:38.66grepをかけて置換する処理はemacsでできますか?
できれば特定の拡張子を除外するという設定もしたいのですが
0137名無しさん@お腹いっぱい。
2011/12/21(水) 14:01:19.310138名無しさん@お腹いっぱい。
2011/12/21(水) 15:02:50.360139127
2011/12/21(水) 15:39:29.08completion-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)
0140名無しさん@お腹いっぱい。
2011/12/21(水) 19:18:57.79ありがとうございます!
http://anago.2ch.net/test/read.cgi/software/1221125611/951
から来た物ですが、この設定をしたら、wanderlustのdraftバッファで添付ファイルを添付しようと小菊でブラウズした際にNTEmacs毎落ちる現象が出なくなりました。
暫くこれで様子を見させてください!
0141名無しさん@お腹いっぱい。
2011/12/21(水) 22:13:18.22ありがとうございます。助かりました。
0142名無しさん@お腹いっぱい。
2011/12/22(木) 01:08:01.91を init.el の最後に書いてんだけど、最後にちょっとだけずれる。なんで?
0143名無しさん@お腹いっぱい。
2011/12/22(木) 01:18:43.670144名無しさん@お腹いっぱい。
2011/12/22(木) 01:31:35.18やってみた
(add-hook 'after-init-hook
'(lambda ()
(set-frame-position (selected-frame) 0 0)
(set-frame-size (selected-frame) 168 51)
))
って感じで。でもやっぱ最後にちょとだけずれて
frame-height が 49 になる。なんで?
0145142
2011/12/22(木) 02:32:40.30これが原因のようです。
window-system や toolkit によって tool-bar や menu-bar と
height の関係が異なるようです。
http://www.gnu.org/s/emacs/manual/html_node/elisp/Size-and-Position.html#Size-and-Position
どうもお騒がせしました。
0146名無しさん@お腹いっぱい。
2011/12/22(木) 13:10:15.72ベースとなるディレクトリを変更したいのですがどうするのでしょうか
0147名無しさん@お腹いっぱい。
2011/12/22(木) 13:54:22.19shell-command の引数に cd hoge; と書くか、直前に (cd "hoge") する。
0148名無しさん@お腹いっぱい。
2011/12/22(木) 14:25:05.51^L のリセンサーを上に行ったり下に行ったりしないようにするには
どんな設定をすればいいの?
0149名無しさん@お腹いっぱい。
2011/12/22(木) 14:26:26.020150名無しさん@お腹いっぱい。
2011/12/22(木) 14:28:19.97M-x redraw-display ってこと?
0151名無しさん@お腹いっぱい。
2011/12/22(木) 14:36:22.41(setq recenter-positions '(middle))
質問前に \C-h k などを使って Help を見るようにすべき。
0152名無しさん@お腹いっぱい。
2011/12/22(木) 15:17:02.00custom-set-variables に
'(recenter-positions (quote (middle)))
の設定を加えました。
ありがとう、勉強になった。
0153名無しさん@お腹いっぱい。
2011/12/22(木) 16:50:40.22shell-commandの方がなぜかただしく動きませんがcdなら大丈夫でした
ありがとうございます
0154名無しさん@お腹いっぱい。
2011/12/22(木) 18:03:12.62()の)を入力したときには前括弧が太字になるのですが、
入力したときだけじゃなくてカーソルを合わせたときにも
太字にする方法はあるでしょうか?
0155名無しさん@お腹いっぱい。
2011/12/22(木) 18:18:50.61show-paren-mode
0156名無しさん@お腹いっぱい。
2011/12/22(木) 19:34:35.43ありがとうございます!
0157名無しさん@お腹いっぱい。
2011/12/22(木) 22:48:57.09個人的にはモーダルなemacsって最高だと思うんだけど邪道なのかな?
0158名無しさん@お腹いっぱい。
2011/12/22(木) 22:57:27.11色んなelispをvi系のモードに合わせるのってしんどくない?
モーダルな入力でおもったけど
(setq view-read-only t) にして view-mode をガンガン操作しやすくカスタマイズすれば
C-x C-q (もしくはもっと気楽なキーバインド)をトリガにした素直なモーダル Emacs と言えるんじゃないかな。
0159名無しさん@お腹いっぱい。
2011/12/23(金) 02:34:38.74キルリングとクリップボードが同期してしまうのをできれば解除したいです
キルリングはemacs内だけで簡潔するようにし(他のアプリのクリップボードと連携せず)、
クリップボードは従来通り他のアプリと連携できるようにする
こういった設定は可能でしょうか?
0160名無しさん@お腹いっぱい。
2011/12/23(金) 03:03:32.40(setq interprogram-paste-function nil)
でどう?(試してない)
0161名無しさん@お腹いっぱい。
2011/12/23(金) 09:42:18.30おぉ!斬新な考え方だな。
俺はちょっと編集して一息付く時に必ずセーブ→カーソル移動して確認
のような事をしているから、同時にセーブもすればいいんだな。
キーバインドはやっぱりESCだろうね。
0162名無しさん@お腹いっぱい。
2011/12/23(金) 15:06:12.55たとえば
1.hoge.exeを起動して処理する
2.1.の処理後にtest.exeを起動して処理
3.2.の処理後にfoo.exeを起動して処理
4.処理終了
こういうことはemacsで設定できるでしょうか
非同期実行が shell-command と & の組み合わせでできるということまではわかったのですが
その先がよくわかりません
0163名無しさん@お腹いっぱい。
2011/12/23(金) 15:21:00.40shell が何かによるけど
(hoge.exe ; test.exe ; fo0.exe) &
それぞれが成功した時だけ(戻り値0の場合だけ)次を実行したい場合は
(hoge.exe && test.exe && foo.exe) &
0164名無しさん@お腹いっぱい。
2011/12/23(金) 15:21:50.70hoge.exe の処理結果を emacs で一旦受けとってから test.exe に渡したいん
なら、低レベル API の start-process を使って hoge.exe を呼び出して
process-sentinel で test.exe 以降を順次実行する。
0165名無しさん@お腹いっぱい。
2011/12/23(金) 15:27:30.08ありがとうございます。
&&ですかなるほど。もしかするとstart-processを使って調整するかもしれませんでしたので
とても参考になりました。
0166名無しさん@お腹いっぱい。
2011/12/23(金) 16:09:11.99それは同期実行ではだめなの?
(shell-command "hoge.exe")
(shell-command "test.exe")
(shell-command "foo.exe")
0167名無しさん@お腹いっぱい。
2011/12/23(金) 16:47:23.220168名無しさん@お腹いっぱい。
2011/12/23(金) 16:57:23.03eshellを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の履歴が残っているようで
それを削除すれば解決すると考えているのですが、
そうなるとどのファイルを編集することになるのでしょうか
0169名無しさん@お腹いっぱい。
2011/12/23(金) 17:17:54.97おれが思うに eshell なんて使わない方がいいよ。変なのが伝染る。
0170名無しさん@お腹いっぱい。
2011/12/23(金) 17:24:53.82つーかるびきちの悪影響だよな
eshellなんか使うのは
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))))
■ このスレッドは過去ログ倉庫に格納されています