Emacs Part 42
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2012/12/24(月) 12:26:20.01Emacs Part 41
http://toro.2ch.net/test/read.cgi/unix/1347009022/
0233228
2013/01/24(木) 04:16:29.42よく確かめてみると Windows の Emacs (24.2.1) の方だと
問題ないですね.>>228の設定を書いたファイルを開くと,
「YaTeX-parent-file は安全じゃないかもよ? yn! から1個選べ」
という質問をされます.>>232を手動で設定しても動きました.
Ubuntu の方だとファイルを開いても,そもそも yn! から選べの質問が
表示されない.>>232の設定をしても影響なく,
YaTeX-parent-file は nil のままですね.
0234名無しさん@お腹いっぱい。
2013/01/24(木) 08:44:45.95Ubuntuでemacsを起動する際に-Qを指定して >>228の設定を書いたファイルを開き、
yn! から選べの質問が表示されるようになるなら、
Ubuntuのemacs環境の初期設定ファイルが影響している可能性が高いので、
そのあたりを調査されてはいかがでしょうか。
また、"Local Variables:"の処理はfiles.elのhack-local-variablesで行なっているので、
そのあたりをトレースしていくという方法もあります。
hack-local-variables is a compiled Lisp function in `files.el'.
(hack-local-variables &optional MODE-ONLY)
Parse and put into effect this buffer's local variables spec.
Uses `hack-local-variables-apply' to apply the variables.
If MODE-ONLY is non-nil, all we do is check whether a "mode:"
is specified, and return the corresponding mode symbol, or nil.
In this case, we try to ignore minor-modes, and only return a
major-mode.
If `enable-local-variables' or `local-enable-local-variables' is nil,
this function does nothing. If `inhibit-local-variables-regexps'
applies to the file in question, the file is not scanned for
local variables, but directory-local variables may still be applied.
0235名無しさん@お腹いっぱい。
2013/01/24(木) 09:39:47.04やはり自分の設定ファイルが原因っぽいので,
hack-local-variables を Edebug してみた.
すると local-enable-local-variables が nil なので
ローカル変数が束縛されない様子.
自分が導入してる elisp から local-enable-local-variables を
検索したら judge-indent.el ってのが local-enable-local-variables を
nil に束縛しているようだった.
コメントアウトしたら正常にローカル変数を読み取ってくれました.
アドバイスありがとう!
ところでファイルを開くたびに一々 yn! を聞いてほしくない場合は,
safe-local-variable-values に (変数 . 値) のコンスセルを追加すれば
いいと思う.これを「ある変数については,どの値でも安全ですよ」みたいに
設定することはできないもんなんですかね.理想的には「eval の入っていない
値ならどれでも安全ですよ」になるといいんだけど.
まったく危険性を無視すれば
(setq enable-local-variables :all)
でいいけど,推奨されてないっぽいし.
0236名無しさん@お腹いっぱい。
2013/01/24(木) 19:02:24.14> これを「ある変数については,どの値でも安全ですよ」みたいに
> 設定することはできないもんなんですかね.
safe-local-variable property かな。
(put 'hogehoge 'safe-local-variable (lambda (x) t))
hogehoge 変数はどの値でも安全ということになる。
> 理想的には「eval の入っていない
> 値ならどれでも安全ですよ」になるといいんだけど.
こっちは eval だけ気をつければいいわけじゃないから無理なんじゃない?
やりたいことはよくわかってないけど。
(funcall (read "(lambda () (message \"Deleting ~/...\"))"))
(apply (read "(lambda () (message \"Deleting ~/...\"))") nil)
というか、危険なのはすでに eval された後のはずだからなー
0237名無しさん@お腹いっぱい。
2013/01/24(木) 20:16:28.70どうすりゃいいんだっけ?
memo.txt を開いて プログラムコードの部分だけ perl-mode で表示編集したい
0238名無しさん@お腹いっぱい。
2013/01/24(木) 20:49:53.690239名無しさん@お腹いっぱい。
2013/01/24(木) 20:54:19.81おお,そんなプロパティがあったんか.
(put 'YaTeX-parent-file 'safe-local-variable
(lambda (x)
(string-match "\.tex$" x)))
とりあえず tex ファイルに限定してみた.これでばっちり
yn! 聞かれなくなったよ,ありがとう!
> 理想的には「eval の入っていない
> 値ならどれでも安全ですよ」になるといいんだけど.
eval の使い方を勘違いしていたので,これは無視してください.
>>237
mmm-mode じゃね? 使ったことないけど.
0240名無しさん@お腹いっぱい。
2013/01/24(木) 21:25:31.51あれぇ?夢だったのかナロー被せて無茶してたのか・・・
すんませんでした
0241名無しさん@お腹いっぱい。
2013/01/26(土) 09:45:37.30もう少しで公開できそう。
0242名無しさん@お腹いっぱい。
2013/01/26(土) 09:48:51.8510年20年後を考えたらちびっこを獲得する必要があるので。
主人公牛雄と3人前後の仲間達で21XX年に人体すらもモード化するようになった
Emacs を使って闇のトーナメントに巻き込まれていく。
0243名無しさん@お腹いっぱい。
2013/01/26(土) 12:40:18.940244名無しさん@お腹いっぱい。
2013/01/26(土) 12:55:51.400245名無しさん@お腹いっぱい。
2013/01/26(土) 12:58:52.570246名無しさん@お腹いっぱい。
2013/01/26(土) 13:02:52.600247名無しさん@お腹いっぱい。
2013/01/26(土) 13:09:55.46理由はよく分からないけど
0248名無しさん@お腹いっぱい。
2013/01/26(土) 13:12:06.230249名無しさん@お腹いっぱい。
2013/01/26(土) 13:15:20.71vim-jp の充実ぶりがとってもいい.
そしてコミュニティがしっかりしてるようにみえるよね.
ああいう一体感が Emacs 勢にはない.
0250名無しさん@お腹いっぱい。
2013/01/26(土) 13:57:07.580251名無しさん@お腹いっぱい。
2013/01/26(土) 16:00:19.02fn caps alt ctrの配置がいろいろあって
どれに統一したものか悩む
0252名無しさん@お腹いっぱい。
2013/01/26(土) 16:08:41.120253名無しさん@お腹いっぱい。
2013/01/27(日) 11:27:00.160254名無しさん@お腹いっぱい。
2013/01/27(日) 14:59:13.59皮肉かよ?
0255名無しさん@お腹いっぱい。
2013/01/27(日) 22:23:24.0010年ぐらいe-maのど飴をなめているが、結論としてご利益はとくになかった。
0256名無しさん@お腹いっぱい。
2013/01/28(月) 09:13:14.50$ touch /tmp/aaa.tar.bz2 /tmp/aaa.tar.xz
してから
$ tar tf /tmp/aaa.[TAB]
で補完すると/tmp/aaa.tar.xzが候補にならない。
$ ls /tmp/aaa.[TAB]だと候補になる
バカなの?
0257名無しさん@お腹いっぱい。
2013/01/28(月) 09:13:45.830258名無しさん@お腹いっぱい。
2013/01/28(月) 09:40:50.340259名無しさん@お腹いっぱい。
2013/01/28(月) 22:36:41.91今後入りそうな目玉機能って何があるんだろうか。遂にネタ切れか。
0260名無しさん@お腹いっぱい。
2013/01/29(火) 06:03:41.58そういうのはサポートしてないのか。
0261名無しさん@お腹いっぱい。
2013/01/29(火) 08:12:43.730262名無しさん@お腹いっぱい。
2013/01/29(火) 09:49:06.650263名無しさん@お腹いっぱい。
2013/01/29(火) 14:31:08.75拡張www
0264名無しさん@お腹いっぱい。
2013/01/29(火) 14:35:45.37普通に書けばいいよ。
0265名無しさん@お腹いっぱい。
2013/01/29(火) 15:18:14.22helm
0266名無しさん@お腹いっぱい。
2013/01/29(火) 22:36:15.35FFI対応は本家でたまに話題に上がって実装も幾つかあるけど
プロプラの抜け道になるとかで取り込まれてないはず
0267名無しさん@お腹いっぱい。
2013/01/31(木) 00:17:07.09あわよくば A->B, B->C, C->A もOKだったら最高
0268名無しさん@お腹いっぱい。
2013/01/31(木) 00:37:38.40\C-u \C-[ |
で
tr ABC BCA
を実行すると、望む動作になる?
0269名無しさん@お腹いっぱい。
2013/01/31(木) 00:45:48.000270267
2013/01/31(木) 01:32:59.19まだ試してないけど、多分なると思う。ただ外部コマンドを使いたくない…
>>269
どもども。(しかし、今までずっと間違ってたかな…思いだせん)
0271名無しさん@お腹いっぱい。
2013/01/31(木) 03:03:10.580272名無しさん@お腹いっぱい。
2013/01/31(木) 03:35:30.46... with: \,(cond((match-end 1)"B")((match-end 2)"C")("A"))
0273名無しさん@お腹いっぱい。
2013/01/31(木) 06:23:15.03一片か一遍かなんてそんなに死ぬほど悩むことじゃないよ。
恥じることもない。
そんなことで人を馬鹿にする奴のほうが恥ずかしい。
間違っていたと気付いたら直せばいい。
それだけのことさ。
0274名無しさん@お腹いっぱい。
2013/01/31(木) 07:51:16.58華麗すぎて濡れたので関数にしてみた.
(defun query-replace-cycling (&rest args)
"Query replace cycling. If you specify three arguments A,
B and C, replace A->B, B->C and C->A simultaneously."
(when (< (length args) 2)
(error "Specify more than two arguments"))
(let* ((len (length args))
(from-string (mapconcat
(lambda (x)
(format"\\(%s\\)" x))
args "\\|"))
(condition (mapcar
(lambda (x)
`((match-end ,(- len (mod (length (member x args)) len))) ,x))
args)))
(perform-replace from-string
`(replace-eval-replacement replace-quote (cond ,@condition))
t t nil)))
置換時のミニバッファの表示がすこし変だがとりあえず動いている.
interactive にしたいけど,可変個数の引数をミニバッファで入力させるのって
どうやるんだ?
0275名無しさん@お腹いっぱい。
2013/01/31(木) 08:00:54.970276名無しさん@お腹いっぱい。
2013/01/31(木) 08:02:18.460277名無しさん@お腹いっぱい。
2013/01/31(木) 08:08:10.53すまん,コメントは超テキトー.Query replace cycling は
まあ意味をなしてないよな.
0278名無しさん@お腹いっぱい。
2013/01/31(木) 08:16:47.650279名無しさん@お腹いっぱい。
2013/01/31(木) 08:17:04.520280名無しさん@お腹いっぱい。
2013/01/31(木) 09:10:01.490281名無しさん@お腹いっぱい。
2013/01/31(木) 09:29:08.46これで完璧だろう>>267.こういうときはコンマセパレートでいいのかね.
(defun hyper-sequential-rotate-force (cycle start end &rest args)
"Rotate a number of strings. In interactive call, specify more
than one string separated by comma. If you specify three strings
A, B and C, rotate A->B and B->C. If CYCLE is non-nil (prefix arg
in interactive call), rotate A->B, B->C and C->A.
In Transient Mark mode, if the mark is active, operate on the contents
of the region. Otherwise, operate from point to the end of the buffer."
(interactive
`(,current-prefix-arg
,(and (use-region-p) (region-beginning))
,(and (use-region-p) (region-end))
,@(split-string (read-string "Strings (seprated by comma): ") ",")))
(when (< (length args) 2)
(error "Specify more than two strings"))
(let* ((len (length args))
(from-string (mapconcat
(lambda (x)
(format"\\(%s\\)" x))
(if cycle args (butlast args)) "\\|"))
(condition (mapcar
(lambda (x)
`((match-end ,(- len (mod (length (member x args)) len))) ,x))
args)))
(perform-replace from-string
`(replace-eval-replacement replace-quote (cond ,@condition))
t t nil nil nil start end)))
0282名無しさん@お腹いっぱい。
2013/01/31(木) 09:35:47.430283名無しさん@お腹いっぱい。
2013/01/31(木) 10:35:16.12扱う引数の数だけ一個一個入力して空欄のままエンターなら終了、になったらいいなあ
そんでローテート中は ^I でぐるぐる回せるとかな
(そこまで考えると query-replace なみにちょっとしたモードになってしまうのでだいぶチャレンジングだが)
ヤダ、そこまでされたらアタシの .emacs の中に入れちゃうかも///
0284名無しさん@お腹いっぱい。
2013/01/31(木) 10:43:56.49中断する作業を忘れないようにemacs上でメモを残したい。
ソースコードに直接コメントで残す方法が、メモと作業個所の同期、お手軽さではかなり
有利だけど、タイムスタンプが変更されたり、元に戻すのが手間だったり。
こういうの支援してくれるのってないですか?
0285名無しさん@お腹いっぱい。
2013/01/31(木) 10:59:48.81「開いてるファイルを記憶しといてあとで復帰する」系の機能。
desktop-save とか desktop-menu とか。
あくまでメモでというなら決まったテキストファイルを開く memo-mode (名前曖昧。てかこのテのものもよくある) とか、
なんならホームディレクトリに ChangeLog モードのファイルでもいけると思う。
ていうかぶっちゃけ ~/MEMO.txt あたりに outline-mode で日時書いて列挙、が一番手軽で融通きくやり方だと思う。
0286名無しさん@お腹いっぱい。
2013/01/31(木) 11:23:18.41,@(split-string ...
の行の代わりに
,@(let (str lst)
(while (not (string= (setq str (read-string "String (Input empty to rotate): ")) ""))
(setq lst (append lst (list str))))
lst)))
に変更したら所望の動作や.^Iでぐるぐる回せるってのは,
現在の一致箇所で^Iを押す度に,A->B,B->C,C->A って
変わっていくってことかな? むずそう.
>>284
org-mode を使ってるならローカルファイルにリンクが貼れる.
org-mode のファイルに
[[file:path/to/file::NNN]]
って書いておけば,そこにカーソルを置いて ENTER 押すと
file の NNN 行へ飛べる.当然 file が変更されたら行番号も変わるけど,
一緒にメモも書けるし,一時的なものなら大丈夫じゃないだろうか.
[[file:path/to/file::some words]]
にすれば file 中の some words に一致する場所に飛べる.
org-store-link を使えばいいと思うよ.
0287名無しさん@お腹いっぱい。
2013/01/31(木) 11:42:28.080288名無しさん@お腹いっぱい。
2013/01/31(木) 16:00:11.100289名無しさん@お腹いっぱい。
2013/01/31(木) 16:11:37.21マークアップ言語として使ってもいいと思うけどね.
まあ Emacs でしか使えんし,多機能すぎて混沌としすぎているのは否定できんが.
org-mode の布教ついでにおすすめ設定.
(add-to-list 'org-capture-templates
'("p" "Pending work" entry (file+headline "memo.org" "Pending work")
"** %?
%a"))
これを設定しておけば,M-x org-capture ENTER p と実行すると,
* Pending work
**
[[file:path/to/file::some words]]
memo.org にこのように追加されて,** のところにカーソルが移動するので
好きにメモをかけばいい.org-capture はメモ取りに便利だと思いまっせ.
0290名無しさん@お腹いっぱい。
2013/01/31(木) 20:20:11.260291名無しさん@お腹いっぱい。
2013/01/31(木) 20:41:47.99ttp://emacswiki.org/emacs/InPlaceAnnotations
はどうよ?
0292名無しさん@お腹いっぱい。
2013/01/31(木) 23:05:05.300294名無しさん@お腹いっぱい。
2013/02/01(金) 01:28:08.49これは… かなり要求に近い。こっちを使ってみます。
0295名無しさん@お腹いっぱい。
2013/02/02(土) 07:24:00.53OSになっていれば今頃はLinuxみたいになってたかもしれないのに。
Emacs OSみたいなやつ。
0296名無しさん@お腹いっぱい。
2013/02/02(土) 08:09:58.20深入りせず
何の展望も持たなかったからだよ
0297名無しさん@お腹いっぱい。
2013/02/02(土) 10:48:30.090298名無しさん@お腹いっぱい。
2013/02/02(土) 11:12:03.140299名無しさん@お腹いっぱい。
2013/02/02(土) 11:28:13.200300名無しさん@お腹いっぱい。
2013/02/02(土) 14:13:51.98line-number-mode だな。
24.2.92 では改善されてるよ
0301名無しさん@お腹いっぱい。
2013/02/02(土) 15:01:51.260302名無しさん@お腹いっぱい。
2013/02/02(土) 15:59:50.21hs-block-start-regexp と hs-block-end-regexp に領域開始/終了を示したい正規表現でも追加してやればいい
自分は隠れてる所がわかりやすくなるようフリンジにマーク表示する設定して使ってる。
VSみたいに閉じることが出来る場所にもマーク置きたいんだけど結構手間がかかりそう
(defvar hs-fringe-mark 'right-arrow
"*隠れた行の fringe に表示する bitmap 名.
`fringe-bitmaps' 内に設定されているシンボル名から選ぶ.")
(defun hs-mark-fringe (ovr)
"`hs-toggle-hiding'で隠された行の OVR を編集して fringe にマークを付ける."
(when (eq 'code (overlay-get ovr 'hs))
(let ((hiding-text "...")
(fringe-anchor (make-string 1 ?x)))
(put-text-property 0 1 'display (list 'left-fringe hs-fringe-mark) fringe-anchor)
(overlay-put ovr 'before-string fringe-anchor)
(overlay-put ovr 'display hiding-text))))
(setq hs-set-up-overlay 'hs-mark-fringe)
0303名無しさん@お腹いっぱい。
2013/02/02(土) 18:27:14.61ありがとう
勉強してみる
0304名無しさん@お腹いっぱい。
2013/02/03(日) 00:33:07.490305名無しさん@お腹いっぱい。
2013/02/03(日) 00:37:06.21このIn Buffer File Completionの部分がよく分からないのですが、どういうことでしょうか?
0306名無しさん@お腹いっぱい。
2013/02/03(日) 10:36:36.40cat でも起動して process-filter 使うって方法しかない?
0307名無しさん@お腹いっぱい。
2013/02/03(日) 11:14:51.53EOB に達したら filter から再度 insert-file-contents というのをやったことある。
0308名無しさん@お腹いっぱい。
2013/02/03(日) 11:56:53.55非同期プロセスは効率が悪すぎる。読み込み毎にメニューまで書き直すんだぞ、アレ。
0309名無しさん@お腹いっぱい。
2013/02/03(日) 13:09:36.98> 読み込み毎にメニューまで書き直すんだぞ、アレ。
えーと、メニューってなんのこと?
0310名無しさん@お腹いっぱい。
2013/02/03(日) 14:39:43.69されてる奴とか。
メニューじゃないけど、モードラインも再描画するぞ。
0311名無しさん@お腹いっぱい。
2013/02/03(日) 15:50:08.450312名無しさん@お腹いっぱい。
2013/02/03(日) 15:54:16.790313名無しさん@お腹いっぱい。
2013/02/03(日) 16:02:51.910314名無しさん@お腹いっぱい。
2013/02/03(日) 16:03:05.03別にEmacs開発者のせいじゃないけど。
Emacs自体があまりにも歳を取りすぎた。
0315名無しさん@お腹いっぱい。
2013/02/03(日) 16:12:16.21杉本彩のグラビアを見るみたいなもんで、
元がいいから下手な若手よりは見れるが
流石にもう小じわが気になるみたいな感覚なのだと思う。
0316名無しさん@お腹いっぱい。
2013/02/03(日) 16:17:02.790317名無しさん@お腹いっぱい。
2013/02/03(日) 17:21:24.360318名無しさん@お腹いっぱい。
2013/02/03(日) 17:22:18.070319名無しさん@お腹いっぱい。
2013/02/03(日) 17:45:47.560320名無しさん@お腹いっぱい。
2013/02/03(日) 18:58:33.26あっちでやれよカス。
0321名無しさん@お腹いっぱい。
2013/02/03(日) 19:12:02.750322名無しさん@お腹いっぱい。
2013/02/03(日) 19:22:13.13くだらん話題は全部あっち行け。rbkt
0323名無しさん@お腹いっぱい。
2013/02/03(日) 19:42:35.45どんなかんじになるんだろ?
0324名無しさん@お腹いっぱい。
2013/02/03(日) 19:56:37.620325名無しさん@お腹いっぱい。
2013/02/03(日) 20:09:44.390326名無しさん@お腹いっぱい。
2013/02/03(日) 20:27:43.100327名無しさん@お腹いっぱい。
2013/02/03(日) 21:34:03.65ますます酷くなるよ?
0328名無しさん@お腹いっぱい。
2013/02/03(日) 22:20:05.99右1/3を*scheme* バッファー
表示の状態にキーバインド一発で変更するには
どうすればいいのでしょうか
0329名無しさん@お腹いっぱい。
2013/02/03(日) 22:28:27.410330名無しさん@お腹いっぱい。
2013/02/03(日) 23:17:15.92適当に書いた.
(defun hoge ()
(interactive)
(select-window (split-window-horizontally (* 2 (/ (window-width) 3))))
(switch-to-buffer (get-buffer "*scheme*")))
フレームに1つのウィンドウしかなくて,そこに scheme のソースコードが
表示されていて,*scheme* バッファが存在していたら望みどおりになる.
0331名無しさん@お腹いっぱい。
2013/02/03(日) 23:42:51.21C-x r w <N>
C-x r j <N>
0332名無しさん@お腹いっぱい。
2013/02/04(月) 23:20:29.24エディタにアーキテクチャも糞もないだろ
むしろ追いつかれてすらいねーよ
■ このスレッドは過去ログ倉庫に格納されています