Emacs part 27
■ このスレッドは過去ログ倉庫に格納されています
0001Zeno
2008/11/09(日) 08:48:02スレッドルールは以下の通り:
* 初心者にやさしく接すること
* Emacsユーザーとの仲間意識をしっかり持って、馴れ合いを怠らないこと
* このスレでのコミュニケーションを前スレ以上に活発にすること (用がなくとも、毎日の書き込みが理想)
* 部外者/非Emacsユーザーの書き込みも可。但し、女性の書き込みは場の雰囲気を乱すので不可
* 自分で書いた便利なコード/アイディアは他人とシェアしようと試みること
_/l__
/ く
| ´ω` | ぐにゅう emacs
| C='|
* Emacs スレッドのマスコットキャラである「ぐにゅう君」 (↑のAA) と
吾 (Zeno ◆5nZQbNmQPs) への挨拶も忘れないように!
GNU Emacs - Free Software Foundation (FSF) http://www.gnu.org/software/emacs/
EmacsWiki http://www.emacswiki.org/
Emacs 電子書棚 http://www.bookshelf.jp/
Emacs CVS Repositories [Savannah] http://savannah.gnu.org/cvs/?group=emacs
Emacs Lisp List http://www.damtp.cam.ac.uk/user/sje30/emacs/ell-date.html
最新の stable リリース (22.2) のダウンロード http://ftp.gnu.org/pub/gnu/emacs/emacs-22.2.tar.gz
Windows用 NTEmacs の最新ダウンロード https://sourceforge.jp/projects/ntemacsjp/files/
前スレ http://pc11.2ch.net/test/read.cgi/unix/1218093847/
CVS先端: cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
Emacs は世界を救う!
0428名無しさん@お腹いっぱい。
2008/12/14(日) 02:49:32弄りすぎてモード制がボトルネックになってきたから
全部ハードコーディングで実装して快適に暮らすんだ。
0429名無しさん@お腹いっぱい。
2008/12/14(日) 04:07:110430名無しさん@お腹いっぱい。
2008/12/14(日) 04:16:39がんばって!!
0431名無しさん@お腹いっぱい。
2008/12/14(日) 15:57:24できたら公開してね
0432名無しさん@お腹いっぱい。
2008/12/14(日) 16:26:310433名無しさん@お腹いっぱい。
2008/12/14(日) 16:33:22(setq trees '(maple oak pine birch))
(setcdr (nthcdr 2 trees) nil)
trees
(maple oak pine)
;; b)
(setq trees '(maple oak pine birch))
(setcar (nthcdr 3 trees) nil)
trees
(maple oak pine nil)
a) の場合は リストが短かくなるのに対して、
b) 方法は リストの最後が nil になるのはなぜですか?
0434名無しさん@お腹いっぱい。
2008/12/14(日) 16:55:120435名無しさん@お腹いっぱい。
2008/12/14(日) 16:58:310436名無しさん@お腹いっぱい。
2008/12/14(日) 18:06:05consセルを全く理解していない人はそもそもいきなりリストの途中へのsetcarとsetcdrを
比較して悩んだりしないだろ。
あるいは理解していないことがわかっているならまずモデルの理解をしようとするのが自然で
そのための疑問でなく応用問題の答をもとめる質問をいきなりしたりはすまい。
0437名無しさん@お腹いっぱい。
2008/12/14(日) 18:55:040438名無しさん@お腹いっぱい。
2008/12/14(日) 19:53:32環境保護団体が森林保護のために仕組んだ暗号だと思うんだ。
0439名無しさん@お腹いっぱい。
2008/12/14(日) 21:18:53おまえ消されるぞ
0440名無しさん@お腹いっぱい。
2008/12/14(日) 21:43:430441名無しさん@お腹いっぱい。
2008/12/14(日) 21:45:310442360
2008/12/15(月) 15:11:29emacsはビルド中も比較的安心して見ていられる。
全体的な速度が以前のよりも上がったようだ。
個人用のパッケージも問題なく動いているよう。
0443名無しさん@お腹いっぱい。
2008/12/15(月) 22:20:36フォントの設定も楽になったしね
0444名無しさん@お腹いっぱい。
2008/12/16(火) 00:05:230445名無しさん@お腹いっぱい。
2008/12/16(火) 00:52:47爆笑。
0446名無しさん@お腹いっぱい。
2008/12/16(火) 05:39:430447名無しさん@お腹いっぱい。
2008/12/16(火) 05:50:110448名無しさん@お腹いっぱい。
2008/12/16(火) 08:38:080449名無しさん@お腹いっぱい。
2008/12/16(火) 09:28:300450名無しさん@お腹いっぱい。
2008/12/16(火) 12:05:29stanley のoptimizeコンパイルをしてくれるemas...
0451名無しさん@お腹いっぱい。
2008/12/16(火) 13:10:010452名無しさん@お腹いっぱい。
2008/12/16(火) 16:28:230453名無しさん@お腹いっぱい。
2008/12/16(火) 17:48:04俺はまるでダメだけどEmacsに罪はねーよ
0454sage
2008/12/16(火) 20:59:36emacsは自動でインデントを揃えてくれ、とても重宝しているのですが、更に欲を言うと
a=b+c;
を
a = b + c;
のようにフォーマットをしてくれる機能(またはelisp?)はないでしょうか?
個人的にはVisual Studioの整形みたいなものを想像しています。
Uncrustifyのような細かい設定まで出来れば完璧です。
わかりにくい文章で申し訳ありませんが、よろしくお願い致します。
0455名無しさん@お腹いっぱい。
2008/12/17(水) 13:13:390456名無しさん@お腹いっぱい。
2008/12/17(水) 14:12:51行内で式が完結していれば、
(lambda ()
(interactive)
(shell-command-on-region (beginning-of-line) (end-of-line) "indent" t t)
(command-execute "\t"))
;; region指定あれば優先した方がいいかな
0457名無しさん@お腹いっぱい。
2008/12/17(水) 15:56:02たまに変数名が衝突してわかりにくいバグが発生する
0458名無しさん@お腹いっぱい。
2008/12/17(水) 16:09:160459名無しさん@お腹いっぱい。
2008/12/17(水) 17:01:05emacs replacementの完成の方が速そうな勢いだものな…
0460名無しさん@お腹いっぱい。
2008/12/17(水) 17:15:54またお前か。うんざりだ。もうemacs使うなよ。
0461454
2008/12/17(水) 17:59:20>>456
.emacs内にそのまま記述してみたのですが、いまいちよく分かりませんでした。
何か実行する手順みたいなのがあるのでしょうか??
何も分かって無くてすみません^^;
.emacsには
(defun my-c-indent (rstart rend)
"Format region using the shell command \"indent\" (C program formatter). If the mark is not active, operate on the current line."
(interactive "*r")
(unless mark-active
(beginning-of-line) (setq rstart (point))
(end-of-line) (setq rend (point))
)
(shell-command-on-region rstart rend "indent" t t)
(command-execute "\t")
)
のように書いて、成形したい行にカーソルを置くかリージョン選択して
M-x my-c-indent
とやればいいのではなかろうか。
0463454
2008/12/17(水) 23:12:38レスありがとうございます。
教えて頂いた通り、以下をリージョンを選択後、M-x my-c-indentを実行した結果、
#include<stdio.h>
main(){
int a,b,c;
a=b+c;
}
が
/bin/bash: indent: command not found
という文字列に置き換わってしまいました。
えっと、これは"indent"の部分を何かフォーマットを行ってくれるような外部プログラムに置き換えるのでしょうか・・・?
0464名無しさん@お腹いっぱい。
2008/12/17(水) 23:48:230465462
2008/12/17(水) 23:56:01そしたらGNU indentをインスコしないといかんね。ftp.gnu.orgから拾ってくればいいはずだけど、どうやら2.2.9はソースをちこっといじる(indent.hの100行目をコメントアウト)必要があるみたいだ。
0466454
2008/12/18(木) 16:00:28きっと後はindentの設定をいじれば、自分の好きなコーディング規約に出来るんですね!
聞いてばっかりで申し訳ないんですが、
;や}を入力してステートメントやブロックの入力を終了したとき、また貼り付けを行ったときなどにオートフォーマットをさせることは可能でしょうか?
それとインデントを揃えるコマンドであるC-M-\をこのmy-c-indentに置き換えたりすることもできれば嬉しいのですが。。。
0467462
2008/12/18(木) 21:12:16上のmy-c-indentの後でこう書けばいいかな。C-M-\とセミコロンだけだが閉じ括弧は自分でやってみてくだされ。
(add-hook 'c-mode-common-hook
'(lambda ()
(define-key c-mode-base-map "\C-\M-\\" 'my-c-indent)
(define-key c-mode-base-map ";"
(lambda (arg) (interactive "*P")
;; use "indent" to format the line
(let ((start) (end))
(beginning-of-line) (setq start (point))
(end-of-line) (setq end (point))
(shell-command-on-region start end "indent" t t)
)
;; default behavior for semicolon
(end-of-line) (c-electric-semi&comma arg)
;; eliminate an extra line comming from "indent" above
(c-electric-delete-forward arg)
)
)
)
)
ところで上のmy-c-..の (command-execute "\t")は(c-indent-command)のほうが良い
鴨。
0468名無しさん@お腹いっぱい。
2008/12/18(木) 21:27:070469454
2008/12/18(木) 22:17:18'}'の時は対応パラグラフ内のフォーマッティングを考えているのですが、教えて頂いたdefine-key c-mode-base-map ";"の部分を単純に'}'へ変えただけでは当然一行しかフォーマッティングされずorz
(let ((start) (end))
(beginning-of-line) (setq start (point))
(end-of-line) (setq end (point))
(shell-command-on-region start end "indent" t t)
)
の部分を書き換えるのかなぁ等と思っているのですが。。。
ちなみにうまくやれば、
a+b+c+
d+e+f;
と数行に渡って式を書いた後のセミコロンで
a + b + c +
d + e + f;
のように複数行へ渡った場合のフォーマッティングもできるのでしょうか?
長文すみませんm(_ _)m
P.S.
C-M-\でのフォーマッティングは仰るとおり(command-execute "\t")を(c-indent-command)へ変えることでうまくできました^^
0470名無しさん@お腹いっぱい。
2008/12/18(木) 22:44:19まずはその投稿を整形すべきだな。
0471名無しさん@お腹いっぱい。
2008/12/19(金) 00:25:03ESC ! や M-x shell-command でよいことは知っています。
Shift-Alt-1 では ! そのものが、Alt-Shift-1 では M-1 が入力されているようです。
これは私の環境のみのバグでしょうか?
0472名無しさん@お腹いっぱい。
2008/12/19(金) 00:26:230473名無しさん@お腹いっぱい。
2008/12/19(金) 00:50:320474名無しさん@お腹いっぱい。
2008/12/19(金) 00:54:220475名無しさん@お腹いっぱい。
2008/12/19(金) 01:23:460476名無しさん@お腹いっぱい。
2008/12/19(金) 02:04:51あと "Ctrl" も "Ctr^1" みたいになっている。
Emacsはキーボードクラッシャーだなあ。
0477名無しさん@お腹いっぱい。
2008/12/19(金) 06:47:470478462
2008/12/19(金) 07:15:03ブロックのはじまりを捕まえるには(forward-sexp)、複数行にわたる式だったら(c-beginning-of-statement)というのがあるのでそれぞれ(beginning-of-line)の代わりに使えば基本的にはおまえさんのやりたいことができるはず。
ちょうど良い練習になると思うのであとはC-h f, C-h v, C-h kとかをお供に頑張ってくれたまへ。
ただしgnu.orgにおいてあるindent 2.2.9には複数行の入力が改行で終わってないときには最後の行が無くなっちゃうという致命的なバグがあるようなので、debian.orgの2.2.10をインスコしなおす必要がある。
うちのにもともと入っていたのも2.2.9だったようだ。新しいの入れといてよジョブズたんorz...
0479名無しさん@お腹いっぱい。
2008/12/19(金) 10:52:26gnomeの設定と被ってる場合うまくいかない
0480454
2008/12/19(金) 15:59:03しばらく挑戦してみて報告しますね〜
0481名無しさん@お腹いっぱい。
2008/12/19(金) 16:02:04Ctrl+Bが遠いので変えようかと思ってるんだけど、どこにしようか決められない・・・
0482名無しさん@お腹いっぱい。
2008/12/19(金) 16:31:500483名無しさん@お腹いっぱい。
2008/12/19(金) 16:32:42C-n, C-pは合理的だと思うが
C-f, C-bは最悪だよな。
俺は C-f -> C-j, C-b -> C-k にしてる。
SKK使いだからSKKのC-jはC-lにしてる。
いまのところこれが一番かな。
0484名無しさん@お腹いっぱい。
2008/12/19(金) 16:40:18普通、Bは左人差し指、Nは右人差し指だよね
Bはアルファベットの中で一番遠く感じるキーだと思うんだけど
>>483
やっぱり我流で決めるべきかな
あんまり普通(=一般Emacsユーザの平均的な設定)からかけ離れてしまうと
まずいかなと妙な懸念を持ってるんだけど、そんなのは捨たほうがいいかなw
上下左右はよく使うんだから、viのhjkl並に易しい位置にしたいものだ・・
0485名無しさん@お腹いっぱい。
2008/12/19(金) 16:54:54あまり割り当てられていないキーの一つ。
>>484
Bはほとんどのキーボードで左右どちらからも同じ距離だし、
手首の回転で届かないYの方が遠いし。説得力まるでない。
0486454
2008/12/19(金) 16:58:34viライクなh,j,k,lだけでの移動にしたいんだけど、そんな事って可能?
0487名無しさん@お腹いっぱい。
2008/12/19(金) 17:01:20ええと、左手を普通にキーボードに乗せると、人差指がBに、中指がFに乗らんか?
手が小さいのか?
0488名無しさん@お腹いっぱい。
2008/12/19(金) 17:06:09ここをいじると他への影響が大きすぎる。
0489名無しさん@お腹いっぱい。
2008/12/19(金) 17:08:14C-x q って何だっけ?
0490名無しさん@お腹いっぱい。
2008/12/19(金) 17:12:13Yは真ん中からやや右よりだから右人差し指でしょ
Bはほんと真ん中にあるじゃん
>>487
自分はおそらく日本人の平均より手はでかいが
つーか左人差し指がF、右人差し指がJのホームポジションじゃないのか?
0491名無しさん@お腹いっぱい。
2008/12/19(金) 17:13:04http://www2.ocn.ne.jp/~cheerful/script/xyzzy/mode/minorviewmode.l
とか、XEmacs の view-less.el とか。
0492名無しさん@お腹いっぱい。
2008/12/19(金) 17:18:33「ホームポジション」に固執して不便を我慢するのですね。すばらしい心掛けです。
0493名無しさん@お腹いっぱい。
2008/12/19(金) 17:22:03'B'を左人差指に固執して不便を我慢するのですね。すばらしい心掛けです。
0494名無しさん@お腹いっぱい。
2008/12/19(金) 17:36:33ROM多いんだなこのスレ。その割に普段ろくな話題提供もしないんだから
コミュニティ精神の欠けらもない…
0495名無しさん@お腹いっぱい。
2008/12/19(金) 17:36:360496名無しさん@お腹いっぱい。
2008/12/19(金) 17:42:17人のこと言えるの?
0498名無しさん@お腹いっぱい。
2008/12/19(金) 18:13:50俺には無理だ・・・FとJの小突起に手が触れてないと迷子になる
0499名無しさん@お腹いっぱい。
2008/12/19(金) 18:17:28なんでみんな変えてると思ったんだ?
0500名無しさん@お腹いっぱい。
2008/12/19(金) 18:34:51俺もホームポジションは変えてないし、Bは左人差し指だな
>Emacs使いが'B'を左人差指はないわw
誰がどうキーボードを使おうと気にしないけどこれはどうかと思った
0501名無しさん@お腹いっぱい。
2008/12/19(金) 18:47:200502名無しさん@お腹いっぱい。
2008/12/19(金) 18:48:37http://pc11.2ch.net/test/read.cgi/unix/1055904385/
0503名無しさん@お腹いっぱい。
2008/12/19(金) 18:48:580504名無しさん@お腹いっぱい。
2008/12/19(金) 19:12:33エディタつーかITに限らず全てにおいてな
0505名無しさん@お腹いっぱい。
2008/12/19(金) 21:02:42日本的な常態性を貴ぶ文化は、ブレークスルーを起こしにくいんだよな。
0506名無しさん@お腹いっぱい。
2008/12/19(金) 21:12:45親指シフトでEmacsを使った経験がある人がいたら、アドバイスが聞きたいのだが。
0507名無しさん@お腹いっぱい。
2008/12/19(金) 21:23:000508名無しさん@お腹いっぱい。
2008/12/19(金) 21:29:020509名無しさん@お腹いっぱい。
2008/12/19(金) 21:48:27なんで一番よく使うキーを、人間の手の動かしやすさを基準に考えずに
単語の頭文字なんかで決めちゃったのか不思議でしょうがない。
C-pとか気が狂っとる。p って、お前・・p って・・・。qwerty配列で1、2を争う打ちづらキーだろうがっ!!!次点でC-b
>>506
emacsで月配列使ってるけど、skkまわりマンドクセ
0510名無しさん@お腹いっぱい。
2008/12/19(金) 21:52:520511名無しさん@お腹いっぱい。
2008/12/19(金) 22:03:47だよな
SATAのコネクタ形状を考えたやつ並に許し難い
0512名無しさん@お腹いっぱい。
2008/12/19(金) 22:05:19ホームポジションに手を置いて、腕や指に神経を集中させながら、AからZまで1キーずつ入力してみてくれ。
どのキーの入力が一番つらい? 俺はp, q, zで、次に y, bあたりだ
親指シフトキーボードって、親指右左の検出ってするのってドライバ必要なんじゃない?
てことは、コンソールで使う時に文字コード届かなくね?emacsで日本語入力できなくね?
0513名無しさん@お腹いっぱい。
2008/12/19(金) 22:06:08pってそんなに打ちにくいか?
カーソル上下移動するときって大体n, p交互で使ったりするから
右手ホームポジションをちょっと左に傾けると
ちょうど人差し指n, 小指pの形になっていい感じになる。
キーバインドを体系的に考えたことがある者にとっては
頭文字の意味もあっててこれは中々うごかせないキーなんだな〜
0514名無しさん@お腹いっぱい。
2008/12/19(金) 22:07:59やってみたが、それは単にお前の小指が短かいだけな気がする。
まあ俺は指が長いほうだからなんとも言えんが…
0515名無しさん@お腹いっぱい。
2008/12/19(金) 22:10:030516名無しさん@お腹いっぱい。
2008/12/19(金) 22:14:23フーム もう少し慎重に検討する必要がありそうかな。
0517名無しさん@お腹いっぱい。
2008/12/19(金) 22:24:27そして今初めて気づいたが、
NとPを打ちやすいように右手は少し内転させてる。
Lの下辺りのキーは打鍵頻度が少ないからこれで問題ない。
それでプログラミングで多用する数字列の8より右側も打ちやすい。
左手はそうしてないから、Qが打ちにくい。
特に俺は小指が短めだから。そのせいでZは打ちにくくない。
折り曲げて小指に長さを揃えている中指薬指で、
XとCを打つ方がずっとつらい。
キーボードスレに行った方がいいかな…
0518名無しさん@お腹いっぱい。
2008/12/19(金) 22:31:11それに人の手の違いが加わってなおさらワケワカメ
だがEmacsとキーボードは気っても切れない関係にあるのは事実
0519名無しさん@お腹いっぱい。
2008/12/19(金) 22:33:24今のキーバインド内だけで打ちにくいかどうか考えてもなー
hjklとか、FPSゲームのwasdと比べるとかしないと分りづらいかもな。
あるいは、まっさらなキーマップがあって、頻度の高いキーバインドをどこに置けば一番打ちやすいかを考える、とか
>> キーバインドを体系的に考えたことがある者にとっては
超頻出キーだけは、これを無視して打ちやすさ使いやすさだけを第一にすべき、というのが俺の考え。
最も美しいキー体系に恍惚を覚える人もいるんだろうけど。
>>514
そりゃ、また、悲しくなる結果だわ
0520名無しさん@お腹いっぱい。
2008/12/19(金) 22:36:500521名無しさん@お腹いっぱい。
2008/12/19(金) 23:14:100522名無しさん@お腹いっぱい。
2008/12/20(土) 00:03:490523名無しさん@お腹いっぱい。
2008/12/20(土) 00:22:24後の環境変化に対応できなくなることに気付いた。
0524名無しさん@お腹いっぱい。
2008/12/20(土) 01:07:38素のemacsしか使えないなら、emacsなんか使う意味は無い。
そういう環境を触らないといけないなら、素直にvi使えばいいわけで。
C-c, C-p, C-n, C-f, C-bみたいな基本的なキーバインドを変えると、
minor modeで再バインドされてしまうことがあるから、
そのminor mode用にもオリジナルのキーバインドを書かないといけないことは、ままある。
0525名無しさん@お腹いっぱい。
2008/12/20(土) 01:12:260526名無しさん@お腹いっぱい。
2008/12/20(土) 01:25:380527名無しさん@お腹いっぱい。
2008/12/20(土) 01:29:18それもそうだな
■ このスレッドは過去ログ倉庫に格納されています