トップページunix
1002コメント322KB

Emacs Part 49 [無断転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2015/12/11(金) 17:55:35.35
前スレが落ちていたみたいなので。

GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/

EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/

前スレ
Emacs Part 48
http://peace.2ch.net/test/read.cgi/unix/1429172451/
0002名無しさん@お腹いっぱい。2015/12/11(金) 18:57:39.28
C-u 100 M-x otsu!
0003名無しさん@お腹いっぱい。2015/12/12(土) 12:28:46.70
もう要らねえだろ
くだ質で十分
立ててんじゃねーよボケナス空気読め
0004名無しさん@お腹いっぱい。2015/12/12(土) 14:00:15.87
仲良く使ってね
0005名無しさん@お腹いっぱい。2015/12/12(土) 19:14:03.69
mhcって何か凝ったことしたかったらrubyいるのです?
Pymacsの方がemacs とは相性良いような気もするのですが
0006名無しさん@お腹いっぱい。2015/12/14(月) 06:22:20.20
>>2
C-u で動作を切り替えるのを作ってるんですけど、
ミニバッファに入った後に C-u するのを忘てたのに気がつく事が多いので
入った後でも C-u で切り替えられるようにしたいのですが、
ミニバッファに居る間にプロンプトを変更するとプロンプトではない扱いになってしまい
(minibuffer-prompt-end) は 1 を返して来ます。
face や read-only を元に戻してもダメでした。
再びプロンプトとして認識させるにはどうすればいいでしょうか?
0007名無しさん@お腹いっぱい。2015/12/14(月) 07:28:43.33
プレフィクス打ち間違えたら素直にC-gでやり直すだけ。簡単明瞭。
そんなに頻繁に使う機能ならプレフィクスでどうこうしようというのが間違ってる。
設計がよくない。
0008名無しさん@お腹いっぱい。2015/12/14(月) 20:35:47.49
>>6
enable-recursive-minibuffers を t にして追加の read-string すればいいじゃん
0009名無しさん@お腹いっぱい。2015/12/15(火) 00:15:25.42
mozc.elを使ってる人はたいてい、mozcのキーバインディングをemacs風にしてると思う
http://www49.atwiki.jp/ntemacs/pages/48.html
私も↑を参考に以下のようなルールを追加していたけどこれには問題がある

■変換中
・文節を縮める  C-i
・文節を伸ばす  C-o

Xでは問題ないけど、ターミナル上では"C-i"="<TAB>"なので、tabで「予測変換  tab」を走らせたくても「文節を縮める  C-i」が走る
https://github.com/proshunsuke/mozc-emacs
も同様の問題がある

解決策は、「C-i」と「tab」は同じコマンドにバインドするしかない
0010名無しさん@お腹いっぱい。2015/12/15(火) 01:45:55.07
>>7
3回入力する必要があって最後のミニバッファまで行ってから気がついたり
気が変わったりが多くて、C-g で最初からやり直したくなかったんです。

>>8
ありがとうございます。上手くいきました。
0011名無しさん@お腹いっぱい。2015/12/15(火) 11:37:55.85
>>9
問題じゃなくて常識だからターミナルとASCIIコードについて調べてみ
他にもそういうキーあるだろ
0012名無しさん@お腹いっぱい。2015/12/16(水) 00:55:04.47
>>11

だから、そういう割当をするなって話だろ
0013名無しさん@お腹いっぱい。2015/12/16(水) 10:06:36.53
「問題がある!」とかいって騒ぐほどのことじゃないだろ、って話よ
0014名無しさん@お腹いっぱい。2015/12/17(木) 09:50:18.87
C-l カーソルのある位置を中央にして表示させる をスクロールさせて移動するにはどうしたらいいですか><?
0015名無しさん@お腹いっぱい。2015/12/17(木) 09:56:35.48
>>14
まずは人に伝わるように説明しましょう
0016名無しさん@お腹いっぱい。2015/12/17(木) 11:00:04.75
わずか10数レスにしてバカとゆとりの見本市じゃないですか
どうすんの?w
0017名無しさん@お腹いっぱい。2015/12/17(木) 11:24:08.68
どうすんのって別にどうもしないんじゃね
残り約980レスがどうなるかはわからない
0018名無しさん@お腹いっぱい。2015/12/17(木) 13:23:55.01
俺はデフォでC-;にバインドしてくるパッケージにはため息が出るけどな
0019名無しさん@お腹いっぱい。2015/12/17(木) 13:40:16.78
>>17
見本市だと思ったから、自分も出品してみたんだと思う
0020名無しさん@お腹いっぱい。2015/12/17(木) 20:09:39.03
>>14

これのこと??
http://rubikitch.com/2015/04/23/centered-cursor-mode/
0021名無しさん@お腹いっぱい。2015/12/17(木) 23:15:39.25
>>20
C-l "recenter-top-bottom" に画面スクロールの動きを加えたいのですう
0022名無しさん@お腹いっぱい。2015/12/18(金) 01:21:51.48
>>21
1回目のC-lはrecenterが呼ばれるがその関数はCのソース内にある
試しに見てみたら恐ろしく複雑で直接カスタマイズするのは困難と思われる
とりあえず動くのは出来たから貼っておく
(defun recenter-smooth ()
(interactive)
(let ((from (1+ (count-lines 1 (point))))
to
sub
num)
(save-excursion
(call-interactively 'move-to-window-line)
(setq to (1+ (count-lines 1 (point)))))
(setq sub (- to from))
(setq num (abs sub))
(while (> num 0)
(redisplay)
(sleep-for 0 10)
(if (>= sub 0)
(scroll-down-line)
(scroll-up-line))
(setq num (1- num)))))
0023名無しさん@お腹いっぱい。2015/12/18(金) 01:33:18.48
>>22
良く見ると笑っちゃうくらいC言語的な書き方だな
もっとカッコいいLisp的な書き方は出来るだろうね
0024名無しさん@お腹いっぱい。2015/12/18(金) 01:46:31.27
>>22
連投スマン、sleep-for無いほうが良かった
0025名無しさん@お腹いっぱい。2015/12/18(金) 09:56:47.13
lispっぽいcを書く人はたまにみる
cっぽいlispもたまにみる
cっぽいemacs-lispはよくみる
0026名無しさん@お腹いっぱい。2015/12/18(金) 11:55:06.17
>>22
自分には難解なので諦めます.ありがとう orz
0027名無しさん@お腹いっぱい。2015/12/18(金) 13:07:53.87
ドキュメントの和訳ってないんですか?
0028名無しさん@お腹いっぱい。2015/12/18(金) 14:12:46.12
>>27
http://www.bookshelf.jp/
に日本語のドキュメントとか揃ってるよ
かなり古いけど基本的な部分は変わってないから大丈夫
0029名無しさん@お腹いっぱい。2015/12/18(金) 14:48:42.63
>>22
とりあえずやっつけだったのを適切な関数とか使うようにした。普通になったか
(defun recenter-smooth ()
(interactive)
(let* ((sub (- (save-excursion
(move-to-window-line nil)
(line-number-at-pos))
(line-number-at-pos)))
(num (abs sub))
(dir (/ sub num)))
(dotimes (_ num)
(redisplay)
(scroll-down-line dir))))
0030名無しさん@お腹いっぱい。2015/12/19(土) 13:14:38.00
じゃー鬼のクビでもとったようにつっこみ入れる
・もともとセンターにいるとき arithmetic error する
・ウィンドウの上半分にいるとき(要はリセンターできないとき) beginning of buffer と言われる
0031名無しさん@お腹いっぱい。2015/12/19(土) 15:24:19.11
>>28
ありがとうございます
0032名無しさん@お腹いっぱい。2015/12/20(日) 16:08:21.40
>>30
いやいやツッコミどうも!
ゼロ割とかしょうもないことしてしまった…
実用的なのを書くにはちゃんとcondition-caseしないといかんね
(defun recenter-smooth ()
(interactive)
(let* ((sub (- (save-excursion
(move-to-window-line nil)
(line-number-at-pos))
(line-number-at-pos)))
(num (abs sub)))
(dotimes (_ num)
(redisplay)
(condition-case nil
(scroll-down (/ sub num))
(beginning-of-buffer)))))
0033名無しさん@お腹いっぱい。2015/12/21(月) 09:07:45.13
yatexつかうとカラーテーマが反映されない。24.3は反映されるのに、24.5はだめ orz
0034名無しさん@お腹いっぱい。2015/12/22(火) 10:18:31.17
だからその原因つきとめたわっていう書き込みしろよ
誰が得すんだよ
つぶやくだけで構って欲しいんならツイッターから出てくんな
0035名無しさん@お腹いっぱい。2015/12/23(水) 00:45:03.38
文字数の目安の縦の罫線って引くことは出来ますか?
80文字のラインがわかるようにしたいです
0036名無しさん@お腹いっぱい。2015/12/23(水) 08:19:17.10
コメレベル低いなあ
0037名無しさん@お腹いっぱい。2015/12/23(水) 08:46:32.72
>>35
昔からいくつか作られてるみたいだけど、いまならこのあたり
http://www.emacswiki.org/emacs/FillColumnIndicator
結構な力作
24.5.1での動作は確認済み
24.3では問題ありと書いてある

個人的にはフレームの大きさ変えればいいと思うけど
0038名無しさん@お腹いっぱい。2015/12/23(水) 10:09:44.69
>>37
たかがライン引くだけにしては凄いコード量だな…力作過ぎだろ
>>35
文字数の目安を知りたいだけならルーラーが標準である
M-x ruler-mode
0039名無しさん@お腹いっぱい。2015/12/23(水) 16:51:09.82
>>32
ついでなので、elastic scrollingにしてください
2、3行ボヨーンと行って戻る感じがいい感じだと思います
よろぴくおねがいします(^^)
0040名無しさん@お腹いっぱい。2015/12/23(水) 18:55:14.74
Twitterよりgnu socialの方が良いのでは
0041名無しさん@お腹いっぱい。2015/12/23(水) 20:20:32.67
>>39
ボヨーンじゃなくてボヨンだな
(defun recenter-smooth ()
(interactive)
(catch 'end
(while t
(let* ((sub (- (save-excursion
(move-to-window-line nil)
(line-number-at-pos))
(line-number-at-pos)))
(num (abs sub)))
(if (zerop num) (throw 'end t))
(dotimes (_ (+ num (min 8 (/ num 2))))
(redisplay)
(condition-case nil
(scroll-down (/ sub num))
(beginning-of-buffer
(throw 'end nil))))))))
0042名無しさん@お腹いっぱい。2015/12/24(木) 22:49:17.92
メリーイーマックス
0043名無しさん@お腹いっぱい。2015/12/25(金) 15:51:03.73
>>41
これがadviceでrecenterに統合されたらいいのにな…
しかも変数recenter-smoothがnilなら通常のrecenter
'elasticならボヨンスクロール
その他non-nilならボヨンじゃないスムーススクロール
とかみたいだったらいいのにな…
お願いサンタさん
0044名無しさん@お腹いっぱい。2015/12/25(金) 23:04:11.76
(emacs-uptime)
"45 days, 21 hours, 59 minutes, 0 seconds"
ふっふっふ
0045名無しさん@お腹いっぱい。2015/12/31(木) 02:04:15.93
今年最後の書き込みになるだろうか
(defun __git_ps1 ()
(let ((branch (with-output-to-string
(call-process "git" nil (list standard-output nil) nil
"describe" "--contains" "--all" "HEAD"))))
(if (string< "" branch)
(concat "("
(if (string-match "[\n\r]+\\'" branch)
(replace-match "" t t branch)
branch)
")")
branch)))
最近シェルのプロンプトに(master)とか出すのが流行りだが
Emacs用に最低限の実装をするとこんな感じだな

Emacs用に色々探したがまともな実装が無かったから自分で作った
適当にプロンプトに組み込んでみてくれ (俺はeshellのプロンプトに組み込んでる)
0046名無しさん@お腹いっぱい。2015/12/31(木) 02:07:48.94
>>45はコマンドの標準エラー出力を捨てて標準出力のみを文字列に変換して
それを加工するという処理をしてるに過ぎないがEmacsLispでやると
こんなヘンテコな書き方になるという例にもなっている…
0047名無しさん@お腹いっぱい。2015/12/31(木) 02:16:53.78
>>45
ifは1つにまとめられたな…
(defun __git_ps1 ()
(let ((branch (with-output-to-string
(call-process "git" nil (list standard-output nil) nil
"describe" "--contains" "--all" "HEAD"))))
(if (and (string< "" branch) (string-match "[\n\r]+\\'" branch))
(concat "(" (replace-match "" t t branch) ")")
branch)))
■ このスレッドは過去ログ倉庫に格納されています