トップページunix
987コメント279KB

Emacs part13

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
なかったので立てました。

僕はemacsが大好きなんですが、どうしたら良いでしょうか?
はっきり逝って愛してます。なるべくemacsタンと振れ合いたいし、
emacsタンをもっともっと知りたいです。
だから俺の質問にはすべて答えてください。初心者の質問にも答えてくだっさい。
好きです。僕はemacssが好きなんです。

てか、もっとemacs語ればいいのに。なんでemacsのスレは進行が遅いの?
みんな、もっと積極的に発言しましょう!!

Emacs part12 (前スレ)
http://pc5.2ch.net/test/read.cgi/unix/1083217601/
0632名無しさん@お腹いっぱい。05/02/15 06:41:25
> 対して skkinput は単に C で記述された
> SKK の X へのラッパーにすぎないということです。
skkinput3ならば「SKK の X へのラッパー」と言えるかもしれないが。
0633名無しさん@お腹いっぱい。05/02/15 06:42:23
なんでこんな時間に被るのよorz
0634名無しさん@お腹いっぱい。05/02/15 07:21:56
運命だからさ
0635名無しさん@お腹いっぱい。05/02/15 21:40:34
viperで使ってたのですが
色々と不便なのでEmacsの操作を覚えたいと思っているのですが
キーバインドを紹介したぺーとかありませんか?
0636名無しさん@お腹いっぱい。05/02/15 21:42:55
下までいくと勝手に半分位スクロールさせて中央にカーソルが移動するのだが
vi見たくずっと下にカーソルがありながらスクロールできないの?
0637名無しさん@お腹いっぱい。05/02/15 22:00:35
>>635
M-x help-with-tutorial
0638名無しさん@お腹いっぱい。05/02/15 22:04:46
>635
M-x help-with-tutorial は一度は見ておくべし
あとは ttp://www.bookshelf.jp/soft/meadow.html とか

>636
(setq scroll-step 1)
0639名無しさん@お腹いっぱい。05/02/15 22:27:42

Linux 環境に emacs を入れています。
C-x v l で、CVS 管理下のソースコードのログを読みたいのですが、
CVS に commit されているソースコードは Windows で開発していて、
commit も WinCVS で commit されています。当然コメントもShiftJIS です。

この状態で C-x v l すると、バッファには

revision 1.1
date: 2004/12/07 05:09:13; author: ******; state: Exp;
\220V\213K\222\307\211\301^M

みたいな感じに文字化けしてしまいます。

なので、コマンドラインで

$ cvs log ****.java | nkf -e

みたいにして読んでいます。

これを C-x v l しても正しく表示させるにはどうしたらいいでしょうか?
.emacs か何かに書けばよいのでしょうか?

# 開発環境が Windows がメインなので、CVS に commitするときのコメントを
# euc にしろ、というのはすみませんが出来ません。
# Linux 環境から commit することはないので、読むことさえ出来ればokです。
0640名無しさん@お腹いっぱい。05/02/15 22:42:04
modify-coding-system-alistでなんとかならんかね?
0641名無しさん@お腹いっぱい。05/02/15 22:45:40
>>639
set-HOGEHOGE-coding-system で設定できないかな?
set-buffer-file-coding-system とか
set-terminal-coding-system とか。
0642名無しさん@お腹いっぱい。05/02/15 22:53:08
みなさんレスどうもありがとうございます。

>>640さん
C-x v l は、vc(version control) というパッケージですよね。
.emacs に

(modify-coding-system-alist 'process "vc"
'(undecided . shift_jis-unix))

を追加してみましたが、変わりませんでした。

>>641 さん

C-x v l して、639 みたいになったバッファに C-x o に移動して、

M-x set-buffer-file-coding-system とかして shift-jis-unix しても、変わりませんでした...
0643名無しさん@お腹いっぱい。05/02/15 22:57:24
>>642
modify-coding-system-alist にはプログラムの名前を指定するので、
"vc" ではなく "cvs"。
0644名無しさん@お腹いっぱい。05/02/15 23:04:18
>>643 さん

できました!!
以下のように設定することで、無事に文字化けせずに
バッファの中に表示されました!!
どうもありがとうございました。

modify-coding-system-alist 'process "cvs"
'(undecided . shift_jis-unix))
0645名無しさん@お腹いっぱい。05/02/15 23:51:55
このやりとり見てて思ったんだけど、こんな風にしたら便利かもとか思った。

(setq vc-with-coding-system-alist
'(("/your/project/path" . (undecided . shift_jis-unix))))
(defadvice vc-do-command (around vc-with-coding-system activate)
"`vc-with-coding-system-alist' によって使う coding-system を変えてみる。"
(let ((coding-system
(cdr (assoc-if
(lambda (x)
(string-match
(concat "^" (regexp-quote (expand-file-name x)))
;; arg 3 = file
(expand-file-name (ad-get-arg 3))))
vc-with-coding-system-alist))))
(unless (consp coding-system)
(setq coding-system (cons coding-system coding-system)))
(let ((coding-system-for-read (car coding-system))
(coding-system-for-write (cdr coding-system)))
ad-do-it)))

>>644
分かってるかもしれないけど、ちょっとだけ解説。
その設定は
CVS からの出力を `undecided'(自動判別) で読む。
CVS への出力を `shift_jis-unix' で送る。
という事を意味してる。
これを知らないとたま〜にはまるんで気を付けてね。
064664005/02/16 00:01:00
>>642
あ、ごめん。別の板行ってた。
できてよかったね。おつかれさん。
0647名無しさん@お腹いっぱい。05/02/16 01:04:39
あるファイルが emacs のバッファに取り込んであったとして、
そのファイルを別のエディタ等で変更した後に
再び emacs の方でそのファイルの最新の状態で読みたいとすると、
どのような操作をするのが一番楽になりますか?

自分は kill-buffer してから C-x C-f で読み込み直しているのですが、
もっと楽な方法はないものかと


0648名無しさん@お腹いっぱい。05/02/16 01:09:16
>>647
C-x C-v かな?
0649名無しさん@お腹いっぱい。05/02/16 01:10:42
.emacsを書き換えたらemacsを再起動しなくては読みこめないんですかね?
ちょっとづつ書き換えているのですが なかなか起動もおそいしめんどくさい・・
0650名無しさん@お腹いっぱい。05/02/16 01:13:33
built-in functionでエラー出てるのgdbで追いかけてるんだけど
gdbで
p (Lisp_Object)tail.u.val
とかしても
No symbol "Lisp_Object" in current context.
って出て値が見れない。

gdbからLisp_Objectに何入ってるか調べるのどうしたら良い?
Emacsから見える値が知りたい。
0651名無しさん@お腹いっぱい。05/02/16 01:22:40
>>648
THX!!
長年の悩みが解消しました
0652名無しさん@お腹いっぱい。05/02/16 01:27:47
>>650
`pr' で見れない?
cf. (Info-goto-node "(emacs)Checklist")
0653名無しさん@お腹いっぱい。05/02/16 01:29:48
>>647
M-x revert-buffer
0654名無しさん@お腹いっぱい。05/02/16 01:32:29
>>649
M-x load-file
M-x load-library
C-x C-f .emacs M-x eval-current-buffer

こんな感じでどうだろ

065565005/02/16 01:57:41
>>652
ありがとう
srcディレクトリに.gdbinitがあるのね
(gdb) p tail
(gdb) pr


Program received signal SIGILL, Illegal instruction.
<function called from gdb>
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on"
Evaluation of the expression containing the function (debug_print) will be abandoned.

とか出たけどなんかうまくいきそう。
0656名無しさん@お腹いっぱい。05/02/16 02:40:56
>>649
再起動が確実。

>>654
一行消した場合はそれじゃだめだろう。
0657名無しさん@お腹いっぱい。05/02/16 02:52:38
>>656
確かに消す時もあるね
書き換えってのを勝手にプラス方向に解釈していたよ

>>654は参考程度にしておいてください
0658名無しさん@お腹いっぱい。05/02/16 03:59:08
>>650
emacs/src/.gdbinit
を読み込んでから

p tail.u.val
xtype
してから
Lisp_Objectの型によって
xstring
xcons
などでみれるとおもうよ
0659名無しさん@お腹いっぱい。05/02/16 15:45:47
BackSpaceを押すと
C-h (Type ? for further options)-
とミニバッファ?にでるんですけど どうしたらいいんですかね?
2回つづけて押すと
Type one of the options listed, or SPACE or DEL to scroll:
になります
Deleteでカーソルの前のもじの削除になります
Backspaceで前の文字の削除になるのでしょうか?
0660名無しさん@お腹いっぱい。05/02/16 15:53:51
>>659
書いてあるとおりですよ。
一覧のどれかを押すとヘルプが表示できます。
0661 ◆U2vkP/Ajkw 05/02/16 15:54:12
Emacs使い始めて間もないけど
EmacsとVim使いがわかれる理由が両方使って始めてわかるな
Emacsはコマンドが難解すぎる
1文字置換えするのにも 置換えする長い文字うって
それから 2回に分けて置換え文字列と 置換え後の文字列をうたなきゃならん
M-x replace-regexp <RET> a <RET> b <RET>
:$s/a/b/
EmacsもWindowsのGUIエディタにくらべたら全然楽だけど
俺みたいにVimから使い始めた奴は Emacsになかなか乗り換えれないな
俺もNavi2ch使うくらいだし
編集するのにEmacs使おうと思っても 分けがわからないからなかなか Emacs使う気になれん
0662名無しさん@お腹いっぱい。05/02/16 15:55:00
>>661
M-%
066365905/02/16 15:57:29
どうすればBackspaceで1文字削除に変えられるのでしょうか?
0664名無しさん@お腹いっぱい。05/02/16 16:01:35
質問します
EmacsとFireFoxを使っているのですが
どうすれば、EmacsでコピーしたものをFireFoxに張り付けられるのですか?
教えて下さい
0665名無しさん@お腹いっぱい。05/02/16 16:03:03
x-select-enable-clipboard
066666405/02/16 16:05:36
>>665
私に言ってるんですか?
M-x x-select-enable-clipboard
はないんですけど?
0667名無しさん@お腹いっぱい。05/02/16 16:05:53
>>663
http://www.bookshelf.jp/texi/faq/faq-ja-21_1_10.html#SEC141
066866405/02/16 16:17:00
あ、ごめんなさい
(setq x-select-enable-clipboard t)
でするんですね
ですが コピーして
FireFoxでC-vしてもペーストができません
066966405/02/16 16:22:13
もう一度書き直させていただきます
私がやりたいことは
Emacs上でコピーしたものを FireFoxでC-vでペーストしたいです
Vimで言うと "+yのような事です
すいませんがおねがいします
0670名無しさん@お腹いっぱい。05/02/16 16:23:41
>>669
Emacs 上の「コピー」って何よ。
kill のこと?
067166405/02/16 16:27:25
C-@で指定してM-wでコピーしたものです
すいません
0672名無しさん@お腹いっぱい。05/02/16 17:13:55
>>661
おれは emacs も vim も両方使ってるけど
あんたの emacs の使い方が未熟なだけ。
0673名無しさん@お腹いっぱい。05/02/16 17:19:45
>>671
マウスの真ん中ボタンでのペーストじゃだめ?
067466405/02/16 17:32:51
>>673
ありがとうございます
ですが、それでもペーストできないです

ちなみに私の環境は
GNU Emacs 21.3.1
で、kterm上で emacs -nwで使っています
0675名無しさん@お腹いっぱい。05/02/16 17:39:34
-nwってのは最初に書くべきではなかっただろうか。
0676名無しさん@お腹いっぱい。05/02/16 17:41:26
おれも emacs も vi も(vim も時々)使ってるけど、
vi の方が未熟な段階から十分満足して使えるとは思う。
emacs は最初不満たらたらだったけど、それなりに習熟度が
上がってくるにつれてどちらも使い分けられるようになってきた。
0677名無しさん@お腹いっぱい。05/02/16 17:42:32
マウスで範囲選択して中ボタンペーストという
原始的な方法は試した?
067866405/02/16 17:47:35
>>676
ありがとうございます
それだと、数行程度ならできるのですが
数十行になる場合等、ktermのウインドウの範囲を越えてしまう場合はできません

>>675
すいません
みなさんは、-nwで使ってなかったんですね
私は -nwで使うのが普通だと思ってました 勘違いしていて申し訳ありませんでした
0679名無しさん@お腹いっぱい。05/02/16 17:54:41
>>678
どっちが普通ってことはないけど、
X アプリの場合と
仮想端末の中で動いてるアプリとでは
話が変わってくるだろ。
0680名無しさん@お腹いっぱい。05/02/16 17:55:33
エディタの比較はこちらへ。

Vim vs Emacs (Editor War)
http://pc5.2ch.net/test/read.cgi/unix/983911547/
0681名無しさん@お腹いっぱい。05/02/16 18:36:00
selection と clipboard って違うんだよね。
kterm の場合 selection だと思うけど、
それを clipboard に入れる方法があればいいんじゃないの。
0682名無しさん@お腹いっぱい。05/02/16 18:37:20
xclipをcall-processする
0683名無しさん@お腹いっぱい。05/02/16 18:52:36
(defun xclip-str (text &optional push)
(with-temp-buffer
(insert text)
(call-process-region (point-min) (point-max) "xclip")))

(setq interprogram-cut-function #'xclip-str)

こんなんでいけるんじゃねーの?
068466405/02/16 20:08:44
>>683のを書いて
M-w すると
Searching for program: no such file or directory, xclip
と言われます
0685名無しさん@お腹いっぱい。05/02/16 20:13:00
そうですか
0686名無しさん@お腹いっぱい。05/02/16 20:13:53
仮想端末内(と予想)でコピーした物が表でペーストできたら怖いわw
0687名無しさん@お腹いっぱい。05/02/16 20:20:24
call-process-region() の引数に (nil 0)を追加したほうがよさそう。
0688名無しさん@お腹いっぱい。05/02/16 20:51:37
>>684
書いてあるとおりでは。
0689名無しさん@お腹いっぱい。05/02/16 20:52:42
>>686
xclip ならできんじゃないの?
0690名無しさん@お腹いっぱい。05/02/16 20:56:22
俺、何気にちょっと感動したわ。
0691名無しさん@お腹いっぱい。05/02/16 21:23:51
clipboard-hogehoge っていう関数つかうんじゃねーの?
0692名無しさん@お腹いっぱい。05/02/16 21:46:53
(defun clipboard-kill-region (beg end)
"Kill the region, and save it in the X clipboard."
(interactive "r")
(let ((x-select-enable-clipboard t))
(kill-region beg end)))
069366405/02/16 21:48:55
すいません xclipを入れてみました
ですが、M-wを押したらかたまります
ですので、C-gを数回押してとめるしかありません

Emacsはわからないのですが、 vimで言うと
function XClip() range
let filename = tempname()
execute "'<,'> write ".filename
call system("xclip ".filename)
call delete(filename)
endfunction
と言うことをしたらいけると思うのですが
これをELispで書いていただけないでしょうか?

上記は 選択した部分をファイルに書き込んで
そのファイルを引数にして xclipを実行するものです
0694名無しさん@お腹いっぱい。05/02/16 22:18:11
だからレスをよく読めってば。

-nwではxclip版でいいけど、X環境だと
emacs内でのやりとりでバケたりしてよろしくないな。
069566405/02/16 22:38:54
どういうことでしょうか?
上記のvimスクリプトを違うキーバインドに設定しておけば
clipboardに送るのかEmacs内で使用するのかも分けられ便利だと思ったのですが・・
0696名無しさん@お腹いっぱい。05/02/16 22:41:32
(unless window-system
>>683
)
しときゃいい、かな?
0697名無しさん@お腹いっぱい。05/02/16 23:05:20
age
0698名無しさん@お腹いっぱい。05/02/16 23:08:29
先生元気です
http://japan.cnet.com/media/2005/pers/02/lg_stallman_r.jpg
0699名無しさん@お腹いっぱい。05/02/17 00:45:11
.emacsでXIMを殺しかたを教えてください
0700名無しさん@お腹いっぱい。05/02/17 00:53:13
.emacsでじゃないと駄目?
0701名無しさん@お腹いっぱい。05/02/17 01:29:17
./configure --without-xim
0702名無しさん@お腹いっぱい。05/02/17 03:35:44
>>699
Vine Linux での例だけど、
ttp://search.luky.org/vine-users.6/msg07014.html
↑と逆のことをやればできるのかも。

.Xresources もいじる必要がありそう。
0703名無しさん@お腹いっぱい。05/02/17 04:59:12
>>702
useXim patch が必要なのでは。
070470305/02/17 05:27:19
CVS 開発版には useXim patch 同等の機能が取り込まれている様です。

0705名無しさん@お腹いっぱい。05/02/17 21:38:02
>>699
一番めんどくさくなくて、確実なのがこれじゃないでしょうか。

(sh系)
% XMODIFIERS=@im=none emacs

(csh系)
% \env XMODIFIERS=@im=none emacs
0706名無しさん@お腹いっぱい。05/02/17 22:24:07
.emacs でじゃないじゃん。
0707名無しさん@お腹いっぱい。05/02/17 22:30:57
(set-face-foreground 'modeline "orange")
(set-face-background 'modeline "gray10")

elispでこんな風にセットするんではなくて、.Xresourcesでモードラインの色変える事ってできますか?
0708名無しさん@お腹いっぱい。05/02/18 02:03:18
>>706
.emacsだと手遅れなんだよね。
0709名無しさん@お腹いっぱい。05/02/18 21:51:04
edebugで(load "func.el")の中にステップインする方法ってあるんですか?
0710名無しさん@お腹いっぱい。05/02/18 23:33:02
最近のcvs、突然abortしまくり。dispextern.hの中のxassert()マクロを
conditionalに戻したら落ちなくなった気がする。
0711名無しさん@お腹いっぱい。05/02/19 00:13:58
>>710
落ちまくるねえ。その変更は02/02かぁ。めったにビルドしないのに02/03に
co してビルドしてるわ orz
っつーことは 02/01 あたりに戻してみるか。
0712名無しさん@お腹いっぱい。05/02/19 01:33:21
最近のは abort は直ってきたけど,スゲー重くなる.
↓あたりでも話題になってるね.
http://heimat.jp/~nakaji/elips/20050216/5308.html
http://heimat.jp/~nakaji/elips/20050218/5311.html

とりあえず,dispextern.h を 1.194 に戻せば大丈夫っぽい.
0713名無しさん@お腹いっぱい。05/02/20 10:14:05
Emacs-21.4 linux上で使ってます。
Mule-UCSの起動を早くするにはun-define.elの使わない言語定義を
削ってしまうといいと聞き試しているのですが
コメントアウトする場所によってはバイトコンパイルに失敗したり
なかなか大変です。
どこのリストを削ればいいか/削ってはダメか、とか
説明してるところとかあったら教えて下さいませ。

開発者の人に申し訳ない使い方だとは思ってますが・・・
0714名無しさん@お腹いっぱい。05/02/20 10:29:12
21.4ってmule-UCS必要なの?
0715名無しさん@お腹いっぱい。05/02/20 11:20:00
必要
0716名無しさん@お腹いっぱい。05/02/20 14:01:09
今日のHEADはbuildすらとおらんな
ひでえ
0717名無しさん@お腹いっぱい。05/02/20 17:18:41
リージョンを設定して shell-command-on-region でコマンドを実行した出力がミニバッファ(?)に入ってしまうのですが
これを適当なバッファに出力するにはどうしたらよいですか?
0718名無しさん@お腹いっぱい。05/02/20 17:32:53
M-: (shell-command-on-region (region-beginning) (region-end) "command" "buffer")
0719名無しさん@お腹いっぱい。05/02/20 17:40:04
>>717
*Shell Command Output*バッファでないか?
0720名無しさん@お腹いっぱい。05/02/20 22:35:33
>>713
http://pc5.2ch.net/test/read.cgi/linux/1100446032/833
のパッチに、Mule-UCSのun-define.elを日本語だけにするのが入ってます。
見てみたらどうでしょうか。
0721名無しさん@お腹いっぱい。05/02/21 00:08:32
>>720
おー、やっぱ分かってる人がやるとちがいますね
自分のよりun-define-elcが100キロバイトは小さくなりました。
ありがとうございます!
0722名無しさん@お腹いっぱい。05/02/22 19:55:51
だーっとbuffer開き過ぎちゃって、ってときに
scratchだけ残して他のbufferを全部閉じたいという
ときどういうのがスマートなんでしょう、、。
0723名無しさん@お腹いっぱい。05/02/22 20:09:24
こんなの書いて使ってる

(defun my-kill-all-buffers ()
"kill all buffers except for `*scratch*'."
(interactive)
(when (y-or-n-p "Kill all buffers? ")
(let ((scratch (get-buffer-create "*scratch*")))
(switch-to-buffer scratch)
(delete-other-windows)
(if (fboundp 'delete-other-frames)
(delete-other-frames))
(dolist (buffer (buffer-list))
(unless (eq buffer scratch)
(kill-buffer buffer))))))
0724名無しさん@お腹いっぱい。05/02/22 20:11:44
特化したものは知らんけど、ibufferから%n.<C-s>scratchu
みたいな操作はどうだろうか。
普通は他にも残したいバッファがありそうだが。
0725名無しさん@お腹いっぱい。05/02/22 20:17:42
>>722
再起動
0726名無しさん@お腹いっぱい。05/02/22 20:22:08
725に同意
0727名無しさん@お腹いっぱい。05/02/22 20:22:21
*scratch*とか**とか***とかに捨て去るには惜しいコードを書きちらす性質なので
C-xC-bしていちいち確認しながら消してる。
だけどときどき、こういうコードを以前書いたはずなのにどこにもない!うわーん!
ということもある。
0728名無しさん@お腹いっぱい。05/02/22 21:38:02
GNU Emacs 21.3.1 を使っています。

テキストモードで emacsを起動すると初期状態では
フレームの分かれ目が画面中央にあります。
これを移動、もしくは下のフレームを表示させないようにするには
どのように設定すればいいでしょうか。
0729名無しさん@お腹いっぱい。05/02/22 22:04:32
C-x^
C-x0

×フレーム
○ウィンドウ
0730名無しさん@お腹いっぱい。05/02/22 22:05:59
>>728
それって、.emacsファイルとかに対してエラー出てるんじゃない?
0731名無しさん@お腹いっぱい。05/02/22 22:36:46
emacs -nwで起動したときの色(背景とか)を通常から変えたいのですが,ど
う書けばいいのでしょうか?elispの基本をわかってなくてすみません.
0732名無しさん@お腹いっぱい。05/02/23 00:19:29
>>731
端末側で変えた方が早いんじゃないか
■ このスレッドは過去ログ倉庫に格納されています