トップページunix
1001コメント315KB

Emacs Part 43

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2013/06/09(日) 14:05:32.09
語り合いましょう。

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

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

Emacsのトラノマキ | 検索結果: | ありえるえりあ
http://dev.ariel-networks.com/wp/?s=Emacs%E3%81%AE%E3%83%88%E3%83%A9%E3%83%8E%E3%83%9E%E3%82%AD

前スレ
EmacsPart42
http://toro.2ch.net/test/read.cgi/unix/1356319580/
0166名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
浅田真央さんのお母さんは良いお母さんです。
0167名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
なぜならEmacsを使っているからです。
0168名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>165
変換と無変換の両方ともctrlにするの?
0169名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
そこはお好みで。
0170名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
ttp://www.pfu.co.jp/hhkeyboard/kb_collection/images/symbolics.gif
Lispマシンのキーボードに似た配列になる
0171名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>170
その配列だとCTRLを親指じゃなくて小指で押すことになるんじゃないのかねえ?
おれの親指はZの下までは伸びないぞ
0172名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
指摘されて初めて気がついた
でも俺の小指ではZのした辺りまで届かないんだよな
0173名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
欧米人は手がデカいんじゃね。
0174名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
小指使えないとshiftも移動させないといけなくなるな
0175名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>173
欧米人は手がデカいと言っても、
指が長いだけじゃなくて手のひらの幅も広いんだから、
親指をあそこまでも持ってくのは逆にキツイだろw
0176名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>169
なるほど
面白そうだから試してみる
0177名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
肝はAの左なのでHHK信者は心して見るように。
0178名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
>>172
小指の下の方、手の付け根あたりで押すという技もあるけどね。同時押しが増えてくると辛いか。
0179名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
>>170のキーボードで、
CtrlとMetaの同時押しを多用するemacsのLispモードが使い物になるとは思えないんだよねえ
0180名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
>>179
Super とか Hyper を使うのではないの?
>>163
SandC とか SandS という方法も無くは無い。
0181名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
ctrlを小指の付け根、metaは反対側の小指
0182名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
Unix端末にはSuperがなかったから代用でC-M-とかにしたんだろうねえ
0183名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
自分はTabの位置にAltを置いてる。Hyper(左手親指)はemacsで使って、SuperはXmonadで使う。
似非SandS(右手親指)も使ってる。小指が壊れたときどうするんだろう。

>>181
右手側のキーが死んだりしない?
0184名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
>>180
Sandって何だ?
0185名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
>>184
http://hp.vector.co.jp/authors/VA002116/sands/
0186名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
やっぱり足踏みだろ
飛行機のシミュレータ好きそうなやつ多そうだし
0187名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>185
s & sってことか。 砂場遊びでも始まるのかとおもった。
0188名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>185
スペースキーを長押しして離した時にスペースが挿入されなければ、かなりいいな。
SKK使いはShiftで小指を酷使するからEmacsで実装して欲しいもんだ。
Emacsなら実装出来るはずだろうけど、やり方が良くわからん。。残念
0189名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
長押し検知する方法が timer で監視ぐらいしか思いつかん。他に方法あんのかな?
timer 使う実装方法を選んじゃうと popwin みたいに次第に腐っていく気がする。
0190名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
Emacs内でやらなきゃいかんの?
0191名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
>>188
key-chordとspace-chord使う。
0192名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
>>191
space-chord.elは某氏作か。とりあえず、紹介ページのとおりに設定したが、うまくいかん。
fedrao17で24.3を使ってるが、winの人とかはうまくいくのか?
0193名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
お、trunkにdos.elがコミットされた。
これ必須だったから標準で入ってると助かる。
しかし、コミットされたとたんみんなから修正されまくった挙句
bat-mode.elにリネームされちゃったw
標準に取り込まれたら、もう自分のもので無くなってしまうという罠。
0194名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
文字コード関連の質問です
utf8で出力したいファイルをwith-temp-fileで開き
sjisのファイルをinsert-file-contents-literallyから読み込んで
編集したいのですがutf8で出力する仕方がわかりません
どう設定すればよいですか
0195名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
buffer-file-coding-systemを設定すれば?
0196名無しさん@お腹いっぱい。2013/08/10(土) NY:AN:NY.AN
>>195
ありがとうございます。
0197名無しさん@お腹いっぱい。2013/08/13(火) NY:AN:NY.AN
elispでは(declare (indent 1))とすることでマクロのインデントを
調整することができますが(以下のように)、slimeとCommon Lispにおいて
同等の動きをさせるにはどうすればよいのでしょうか?
;; 最低一回は評価するwhile
(defmacro do-while (cond &rest body)
(declare (indent 1))
`(progn
,@body
(while ,cond
,@body)))
0198名無しさん@お腹いっぱい。2013/08/14(水) NY:AN:NY.AN
その以下のように書けばいいんじゃねーのか?w
0199名無しさん@お腹いっぱい。2013/08/14(水) NY:AN:NY.AN
clとemacs切り離されているので言語内でインデントには言及できないと思います。
0200名無しさん@お腹いっぱい。2013/08/14(水) NY:AN:NY.AN
;; (cl-indent 名前 手本)
(cl-indent 'iterate 'let)
(cl-indent 'collect 'progn)
(cl-indent 'mapping 'let)
(cl-indent 'mapping 'let)

.emacsにこのように記述することでうまくいきました
0201名無しさん@お腹いっぱい。2013/08/15(木) NY:AN:NY.AN
http://ergoemacs.org/emacs/using_voice_to_code.html
Emacs Pinkieってことばがあるんだね
初めてしった
0202名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
emacs lispの質問です
特定の関数内で呼び出す関数の返り値を外部から変えることはできますか?
(defun foo (x) (print x))

(defun bar1 () (foo "a"))
(defun bar2 () (foo "b"))

defadviceでfoo関数そのものを自由にいじれるのは分かったのですが
このうちbar1で呼び出すfoo関数の返り値だけを変えるようにして
bar2で呼び出すfoo関数はそのままにしておきたいです
0203名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>202
もっとエレガントにできないものか。

(defadvice foo (after hoge disable)
(setf ad-return-value "c"))

(defadvice bar1 (around fuga activate)
(ad-enable-advice #'foo 'after 'hoge)
(ad-activate #'foo)
ad-do-it
(ad-disable-advice #'foo 'after 'hoge)
(ad-activate #'foo))
0204名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>202
(backtrace) みるとかどうよ。
0205名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
defadvice自体がエレガントかどうかっていう議論もあるような気がする
ちゃんと他人のプログラムのことを考えたうえでのものならいいんだけどね
0206名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>特定の関数内で呼び出す関数の返り値を外部から変える

設計が腐ってる臭いがする
0207名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
emacsのカレンダーをA4のミスコピー用紙の裏紙に印刷して
半分におって綴じるとシステム手帳に代わりになる

みたいなブログを以前に見た記憶あるのですが

半分におって綴じる

の部分は普通にクリップで挟むだけなのでしょうか?
何かシステム手帳みたいな物はないのでしょうか
0208名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>>207
ホッチキスでとめると便利だよ。
0209名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>>206
馬鹿か?adviceの話なんだから設計具合など関係ない。
0210名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>>209
そんなキミにひとつ名言を捧げよう

 トンカチを握ったヤツには
 全ての問題が釘に見える
02112022013/08/21(水) NY:AN:NY.AN
>>203-206
ありがとうございます。考え直してみます。
0212名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
defadviceじゃなくてfletとかlabelsを使えば?
他人のelispの中での関数呼び出しの挙動を少しだけ変えるときはそうしてることが多い。
0213名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
そのコメントを見て気になっていたのですが、obsolete macro と指摘されていたlabelsとfletについてお尋ねします
`labels' is an obsolete macro (as of 24.3); use `cl-labels' instead.
`flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.
このようなエラーメッセージが出るようになったので
labelsをcl-labelsにdefmacroしたいのですが
defaliasのようなもので設定すればよいのでしょうか
0214名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
>>213
まずは自分で試してみるべし

ただ、obsolete認定されたんなら cl-flet を使う方向で考えたほうが前向きなような気がする
下位互換を考えるならば、 cl-flet がない環境では cl-flet を defalias してあげればいいと思う

他人のコードならそのうち対応するだろうから、気にしない
0215名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
fletはダイナミックスコープだったけどcl-fletはレキシカルなんだよなー
flet相当のことはcl-letfで一応できるけどちょっと冗長になる
(cl-letf (((symbol-function 'foo) (lambda () ...))) ...)
0216名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
>>214-215
なるほど、他人のコードで更新が停滞しているものだったので
どこまで手を入れるか考えあぐねていました
symbol-functionを使う手は考えていなかったので参考になります
0217名無しさん@お腹いっぱい。2013/08/23(金) NY:AN:NY.AN
へー、レキシカルになったのか。
個人的には少しの手間でダイナミックスコープ特有のバグが減らせるなら喜ばしい。
0218名無しさん@お腹いっぱい。2013/08/29(木) NY:AN:NY.AN
最近本家更新ないけどどうなってるん?
次は24.4?25?
0219名無しさん@お腹いっぱい。2013/08/30(金) NY:AN:NY.AN
次が何番でもいいんですけど、
(setq scroll-conservatively 99999) とかでやってる 1行スクロールが時々飛ぶ現象が、いい加減直ってくれたらいいなと思いますです。

2009年ごろには認知されてるのに…。
0220名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
Changelogには確か直ったと書いてあった
0221名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
>>220
まじですか。24.2.1では相変わらずときどき飛びますです。

(setq scroll-conservatively most-positive-fixnum) で若干マシにはなりますけど
0222名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
Emacs上でXサーバ、VNC、RDPクライアントっぽい事が出来るスクリプトとか無いでしょうか?
0223名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
Emacs内にX等の窓をだすっていうんだったら多分ない。
Webkitを取り込んだバージョンのなんかだとその内出来るかもしれんけど。
0224名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
NEWSを調べたところ24.3からだね。↓こんな感じ
*** If you customize `scroll-conservatively' to a value greater than 100,
Emacs will never recenter point in the window when it scrolls due to
cursor motion commands or commands that move point (e.f., `M-g M-g').
Previously, you needed to use `most-positive-fixnum' as the value of
`scroll-conservatively' to achieve the same effect.
0225名無しさん@お腹いっぱい。2013/09/01(日) 00:13:50.51
>>224
ごめん24.1からだった。。
ということは直ってないし、永久に直らないね多分。
0226名無しさん@お腹いっぱい。2013/09/01(日) 06:35:18.99
>>225
わざわざ調べてくれてありがd

飛ぶときに recenter が働いていたというのがちょっと疑問な気がします。
ひょっとすると似て非なる現象なのかもしれないです。

あまり頻繁ではないので、引き続き我慢しますです。
0227名無しさん@お腹いっぱい。2013/09/01(日) 08:35:34.05
先端だと
(setq scroll-conservatively most-positive-fixnum)
すると飛ばないような気がするなあ。
0228名無しさん@お腹いっぱい。2013/09/01(日) 09:56:00.97
most-positive-fixnum を使えば飛ぶ頻度は格段に(ときどき→まれに)減るのですが、油断していると飛びますw

emacs -q 環境では飛んだことがないので、かなり環境に依存するのではないかと。

フォントが小さい場合や、toggle-truncate-lines で折り返しなしにしたときに起きやすいような気が…
0229名無しさん@お腹いっぱい。2013/09/01(日) 10:38:45.02
環境依存ってか最近はメジャーモード自体がいろいろ凝ったことをやるし
たいていはマイナーモードもてんこ盛りだから
もう fundamental-mode でもない限りそもそもレベルで重いわな

そんなことより vi/emacs 使うなら
5行5文字以上の移動にキー押しっぱなししてるうちはニワカ
という教えも思い出してやってください
02302222013/09/01(日) 11:05:29.52
>223
そうですか。 XserverさえアレばEmacsだけ入った*Nixとか
Emacs詰め合わせを持ち込んですぐに自分の環境を整備、、、
とか期待したんですが、、、 どうもありがとうございました。


aalibだけを使ったXserverが有るらしので、Emacsと合わせて
どうやれば最小構成でポータブルに持っていけるのか、、、
難しいかな
0231名無しさん@お腹いっぱい。2013/09/01(日) 12:52:48.06
>>229
みんなどうやって移動してるんだ?
forward-wordとかisearch-forward使って移動してるんだけどこれでいいんか?
0232名無しさん@お腹いっぱい。2013/09/01(日) 13:03:22.05
>>229
そうは言っても、スクロールくらいは普通のエディタっぽい動きをしてほしい
0233名無しさん@お腹いっぱい。2013/09/01(日) 13:16:25.85
>>231
君のディスプレイをのぞきこんだ人に
「カーソルと画面が飛びまくって何してんのかぜんぜんわからない。
てかそれってエディタなの?」
と言われたら一人前ですな
0234名無しさん@お腹いっぱい。2013/09/01(日) 13:29:50.00
編集するときや読みたい場所わかってるときはぴょんぴょん飛ぶのもいいけど
全文読む時なんかは普通にスクロールしてほしいよね
0235名無しさん@お腹いっぱい。2013/09/01(日) 13:33:16.53
マウスのスクロール使えばなんとか
0236名無しさん@お腹いっぱい。2013/09/01(日) 14:19:53.99
>>229
emacs/vim 両方使うが、vim の時は fa とか ta とかで移動することは多いけど、
emacs だと普通に C-f C-b とかで移動してる。
これっておかしいの?
0237名無しさん@お腹いっぱい。2013/09/01(日) 14:31:28.51
んなもん好きにせいよw
おかしいと言われたら直すのか?
0238名無しさん@お腹いっぱい。2013/09/01(日) 15:52:17.74
俺もみんながどうやって移動してるか知りたい

今のところhelm-c-moccurとfoward-wordと連打が多い
あとはsmartparens.elの移動も使い始めた

今気になってるのはpophintとvim のfっぽい挙動

これは便利っていうのあったら教えてください
0239名無しさん@お腹いっぱい。2013/09/01(日) 15:58:56.37
移動だけじゃないけどlispを編集するならpareditが超便利
0240名無しさん@お腹いっぱい。2013/09/01(日) 15:59:09.13
emacsといえばsexp系移動
0241名無しさん@お腹いっぱい。2013/09/01(日) 16:11:59.62
sexp はいつ見ても sex-predicate に見えてしまう
0242名無しさん@お腹いっぱい。2013/09/01(日) 16:12:47.21
>>237
直すかどうかわからんが、もっと効率がいい方法がわかりゃ検討するさ
0243名無しさん@お腹いっぱい。2013/09/01(日) 16:29:47.92
カーソルキーにスクロールを割り当ててるけど結構便利
0244名無しさん@お腹いっぱい。2013/09/01(日) 16:31:53.31
この話題になると明確な答えが出ることはない
それは本当に上手い話は独り占めが基本だからだ!
0245名無しさん@お腹いっぱい。2013/09/01(日) 16:53:20.25
● 流出でこのスレすっかり寂れててわろた……
わろた……orz
0246名無しさん@お腹いっぱい。2013/09/01(日) 16:56:11.56
えっ!むしろ今までより盛り上がってるような
0247名無しさん@お腹いっぱい。2013/09/01(日) 17:01:45.56
夏の全鯖規制祭りが解けて久々に書けてるヤツの方が多いだろ
0248名無しさん@お腹いっぱい。2013/09/01(日) 17:54:06.21
ace-jump-mode使ってる?
0249名無しさん@お腹いっぱい。2013/09/01(日) 19:11:08.72
>>233
昔、コードレビューでそんな感じになって、途中で通訳してくれる人が来てくれて助かった。

Emacsって社内の標準エディタだったんだけど…。
0250名無しさん@お腹いっぱい。2013/09/01(日) 19:23:15.15
コードレビューの時は操作が飛びすぎるとレビュアーの理解が追いつかないから、GUIの統合開発環境でわかりやすく飛んでる
0251名無しさん@お腹いっぱい。2013/09/01(日) 19:57:30.03
>>248
10年位上Emacs使ってるけど、初めて知りました。
これよさそう。

今酔ってるから、あした試してみるね。あんがと!
0252名無しさん@お腹いっぱい。2013/09/01(日) 23:45:48.15
デフォの半画面スクロールに慣れるとそれで良くなるよ。
しばらく我慢して使ってみ。
0253名無しさん@お腹いっぱい。2013/09/01(日) 23:53:27.74
>>252
View-scroll-half-page-*のこと?
これって割当てられてるキーバインドあるのかな
02542532013/09/02(月) 00:02:42.24
何言ってるんだ俺
そんなコマンドないぞ
0255名無しさん@お腹いっぱい。2013/09/02(月) 05:21:25.10
C-v・M-vだろう。
0256名無しさん@お腹いっぱい。2013/09/02(月) 05:37:31.12
あ、書き込めた。移動系はC-sが多いな。
isearchからM-s oでoccurに派生したり、M-s h rでマーカーに派生したり。
あとは、C-x r SPCでレジスタ利用かな。

重くなったらナローイングするけど、一つのバッファに対して複数指定できれば便利かもね
0257名無しさん@お腹いっぱい。2013/09/02(月) 07:38:50.06
ThinkPadのトラックポイント(小声)
0258名無しさん@お腹いっぱい。2013/09/02(月) 09:09:16.26
もうメンテされてなさそうだけどanything-c-moccurが多い
0259名無しさん@お腹いっぱい。2013/09/02(月) 13:25:35.65
いまさらながら auto-complete 入れてみた。
スクラッチバッファに (point) と書こうとしたら、候補に pong と出てきた。
M-x pong してみた。
しばし仕事中に遊んでしまった。
0260名無しさん@お腹いっぱい。2013/09/02(月) 14:14:43.68
ナローイングとか使ったことないわ
0261名無しさん@お腹いっぱい。2013/09/02(月) 14:19:56.84
ナローイングめっちゃ使うなあ
弄るときも読む時も使う
0262名無しさん@お腹いっぱい。2013/09/02(月) 16:10:01.02
レジスタ置いてもそのまま忘れて自力で戻ってることがよくあるw
タグジャンプしてんのに自力で戻ってることもよくあるww
0263名無しさん@お腹いっぱい。2013/09/02(月) 16:12:56.55
set-family-attributeのfamilyで任意のフォントを指定できますが
そのフォントを指定したディレクトリ内から探してくるよう設定することはできませんか
フォントのパスを格納している変数が何かあるかと思ったのですが、探せませんでした
0264名無しさん@お腹いっぱい。2013/09/02(月) 16:35:47.90
>>258
helm-c-moccurに移行しないの?
0265名無しさん@お腹いっぱい。2013/09/02(月) 18:30:56.87
>>261
どんなとき便利なんだろう。

レジスタってなんか覚えられん。
■ このスレッドは過去ログ倉庫に格納されています