自慢の.emacsを貼り付けよう

このエントリーをはてなブックマークに追加
1こっそりだどん
皆さんの自慢の.emacsを貼り付けてください。
#もう他人のディレクトリへ行って勝手に.emacs見るの疲れました。
(kill-emacs)
3名無しさん@お腹いっぱい。:01/09/25 22:40
(load "~/elisp/.emacs")
4名無しさん@お腹いっぱい。:01/09/25 22:47
他人のディレクトリに設定ファイルを見に行って
隠れヲタと知るのも人生経験のうち。
5名無しさん@お腹いっぱい。:01/09/26 00:45
>>4
勝手に他人のところ見るのはクラッカーです。
クラッカーはテロリストです(by最近の米国の法案)

というわけで、ぼくら人民は人生経験しなくていいぞ、ということだそうです。
きっとウマウマな福祉で養ってくれるんだろうな政府が…
6:01/09/26 01:48
俺です。

teratermでtelnetしたときにキーボードの設定でBSに
チェックをいれないでも、BSがemacsで使えるような
設定方法しりませんか?

おしえてちょんまげ
7:01/09/26 01:50
それと、emacs-20.7 って日本語対応していますか?

tera termでtelnetでつないでemacsで漢字編集しようとしたら
文字がバケラッタなんですけど。

tera termはちゃんとVT100JでEUCにしてます
8名無しさん@お腹いっぱい。:01/09/26 01:51
;; Don't Display Startup Message
(setq inhibit-startup-message t)

;;C-x bでbuffersを選ぶ時便利
(iswitchb-default-keybindings)

;; 警告音のかわりに画面フラッシュ
(setq visible-bell t)

;; ステータスラインに時間を表示する
(display-time)

;; 行番号・桁番号をモードラインに表示する
(line-number-mode t) ; 行番号
(column-number-mode t) ; 桁番号

;; 画面から出たとき一行だけスクロールさせる
(setq scroll-conservatively 1)

;; バッファの最後の行で next-line しても新しい行を作らない
(setq next-line-add-newlines nil)

;; バッファの最初の行で previous-line しても、
;; "beginning-of-buffer" と注意されないようにする。
(defun previous-line (arg)
(interactive "p")
(if (interactive-p)
(condition-case nil
(line-move (- arg))
((beginning-of-buffer end-of-buffer)))
(line-move (- arg)))
nil)

;; C-h と Del の入れ替え
;; Help が Shift + Ctrl + h および Del に割当てられ、
;; 前一文字削除が Ctrl + h に割当てられます
(load-library "term/keyswap")
(if (eq window-system 'x)
(progn
(define-key function-key-map [delete] [8])
(put 'delete 'ascii-character 8)))
9名無しさん@お腹いっぱい。:01/09/26 01:52
;; 長い文章の折り返しで物理的に次の行に移動
(global-set-key "\C-p" 'previous-window-line)
(global-set-key "\C-n" 'next-window-line)
(global-set-key [up] 'previous-window-line)
(global-set-key [down] 'next-window-line)
(defun previous-window-line (n)
(interactive "p")
(let ((cur-col
(- (current-column)
(save-excursion (vertical-motion 0) (current-column)))))
(vertical-motion (- n))
(move-to-column (+ (current-column) cur-col)))
(run-hooks 'auto-line-hook)
)
(defun next-window-line (n)
(interactive "p")
(let ((cur-col
(- (current-column)
(save-excursion (vertical-motion 0) (current-column)))))
(vertical-motion n)
(move-to-column (+ (current-column) cur-col)))
(run-hooks 'auto-line-hook)
)
10名無しさん@お腹いっぱい。:01/09/26 01:52
;; C-x %で対応括弧に簡単にジャンプ
(progn
(defvar com-point nil
"Remember com point as a marker. \(buffer specific\)")
(set-default 'com-point (make-marker))
(defun getcom (arg)
"Get com part of prefix-argument ARG."
(cond ((null arg) nil)
((consp arg) (cdr arg))
(t nil)))
(defun paren-match (arg)
"Go to the matching parenthesis."
(interactive "P")
(let ((com (getcom arg)))
(if (numberp arg)
(if (or (> arg 99) (< arg 1))
(error "Prefix must be between 1 and 99.")
(goto-char
(if (> (point-max) 80000)
(* (/ (point-max) 100) arg)
(/ (* (point-max) arg) 100)))
(back-to-indentation))
(cond ((looking-at "[\(\[{]")
(if com (move-marker com-point (point)))
(forward-sexp 1)
(if com
(paren-match nil com)
(backward-char)))
((looking-at "[])}]")
(forward-char)
(if com (move-marker com-point (point)))
(backward-sexp 1)
(if com (paren-match nil com)))
(t (error ""))))))
(define-key ctl-x-map "%" 'paren-match))


自分も便利なの知りたいのでコピペ
11名無しさん@Emacs:01/09/26 04:30
うちはこんなの使ってます。

;; バッファを切り替えるのに C-x e で electric-buffer-list を使う。
(global-set-key "\C-xe" 'electric-buffer-list)

;; hoge.txt~ みたいなバックアップファイルを作らないようにする
(setq backup-inhibited t)

;; c-mode その他で色が付くようにする
(global-font-lock-mode)
どっかで見たようなのばっかだぞ。
目から鱗が落ちるようなヤツプリーズ。
>>13

(require 'navi2ch)
15名無しさん@お腹いっぱい。:01/09/26 14:04
上の方と重なっていないものだけね。
わからないのは descrive-variable しろ。
ほかにもいっぱいあるけど (1MB くらい)、個人的なものなので。
(setq message-log-max 200)
(auto-compression-mode t)
(setq apropos-do-all t)
(setq custom-file "~/.custom.el")
(setq-default fill-column 72)
(auto-show-mode t)
;; font-lock
(global-font-lock-mode t)
(setq font-lock-support-mode 'fast-lock-mode)
(setq fast-lock-cache-directories '("~/.emacs.d/emacs-flc"))
(setq auto-save-list-file-prefix "~/.emacs.d/auto-save-list/.saves-")
(setq temporary-file-directory "~/.emacs.d/tmp")
;; abbrev
(read-abbrev-file "~/.abbrev_defs")
(setq save-abbrevs t)
;; version control
(setq vc-follow-symlinks t)
(setq vc-suppress-confirm t)
(setq vc-command-messages t)
;; enable narrow
(put 'narrow-to-region 'disabled nil)
(put 'narrow-to-page 'disabled nil)
;;
(setq outline-minor-mode-prefix "\C-c\C-c")
(global-set-key "\M-V" 'scroll-other-window-down)
.emacs が 1MB もあったら起動が遅そうだ...
bytecompile でもしてる?(ワラ
17名無しさん@お腹いっぱい。:01/09/26 21:34
8みたいなTipsおいしい!
>16
15じゃないけど俺はしてるよ。
kill-emacs-hookに引っかけとけばいいだけだし
適当に分割すればいいのに。
量が多いなら ~/.emacs.el に名前変えてバイトコンパイルせー
と info に書かれとる。
~/.emacsをバイトコンパイルすると~/.emacs.elcになって、
customizeで設定を保存するとlispのソースが~/.emacs.elc
の末尾に追加されちゃう。あれは困る。

関係無いけど、モナーが踊るマクロは無い?
タコが踊るやつはあったよね?
>>21
M-x describe-variable custom-file
2315:01/09/27 12:31
>>19
いや、分割して byte-compile してます。
24名無しさん@お腹いっぱい。:01/09/27 18:59
.emacs なんて、ほとんど毎日書き換えて育てていくものだから、

分割したり、いちいちバイトコンパイルするのは面倒だと思うのだが、、、
25名無しさん@お腹いっぱい。:01/09/27 19:46
;ホイールつきマウスのホイールで、スクロールするための設定
(define-key global-map 'button4
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-down 5)
(select-window curwin)
)))
(define-key global-map 'button5
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-up 5)
(select-window curwin)
)))
26名無しさん@お腹いっぱい。:01/09/27 21:34
(iswitchb-default-keybindings)
(resize-minibuffer-mode)

(゚д゚)ウマー
2723:01/09/28 13:06
>>24
そうですか? 例えば skk はこの file とか lookup はこの file とか決めておけば、
すぐ改造したいものがみつかっていいと思うんですが。byte-compile も
M-x byte-recompile-directory すればいいし。
>>23
.emacsは
(byte-recompile-directory "~/Elisp/")
(load "~/Elisp/startup")
だけにしとけば細かいこと気にしないですむね。
29:01/09/28 17:53
どっかで見たコードです。
けっこう便利^^)

;; Auto +x
(add-hook
'after-save-hook
'(lambda ()
(save-restriction
(widen)
(if (or
(string= "#!" (buffer-substring 1 (min 3 (point-max))))
(string-match ".cgi$" (buffer-file-name)))
(let ((name (buffer-file-name)))
(or (char-equal ?. (string-to-char (file-name-nondirectory name)))
(let ((mode (file-modes name)))
(set-file-modes name (logior mode (logand (/ mode 4) 73)))
(message (concat "Wrote " name " (+x)"))))
)))))


ange-ftp 経由の時は無効にする方法が知りたい。
30:01/09/28 17:55
同じタイプミスを繰り返す人は
write-file-hook

(replace-string (concat "ret" "run") "return")
も便利
; ------------------ time & biff ---------------

(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(setq display-time-string-forms
'(month "/" day "(" dayname ") " 24-hours ":" minutes))
(display-time)

; --------------- for sunrise-sunset -----------

(setq calendar-latitude 35.0)
(setq calendar-longitude 139.0)
(setq calendar-time-display-form
'(24-hours ":" minutes
(if time-zone "(") time-zone (if time-zone ")" )))
C-t、M-C-tでバッファの高速切り替え
(defun previous-buffer ()
"Select previous window."
(interactive)
(bury-buffer))
(defun backward-buffer ()
"Select backward window."
(interactive)
(switch-to-buffer
(car (reverse (buffer-list)))))
(global-set-key "\C-t" 'previous-buffer)
(global-set-key "\M-\C-t" 'backward-buffer)
これは使える!と信じて書いたが、全然使わん。
バッファをあまり開かない人向き?
>>27

変数とか関数の定義位置に飛ぶのはすぐにできるので、
わたしは逆にファイルを分割することなんかどうでもいいと思っている。

emacs-lispでプログラミングする際に、陽にファイル名を指定してオー
プンすることはめったにない(だって、Emacsでプログラミングしている
んだから)。

コードを整理するという意味はあるけど、別に外に出すもんじゃなかっ
たらどうでもいい。どう分けるか判断つかないこともあるし。

たとえば shell-modeを改造していて comintまでいじらなきゃならなく
なったときに、どう分けておくか。

XEmacsの completerは使いたいけど、こいつが comintをロードしてい
る作法がひどいので、そっちでも調整が必要だとか。
3427:01/09/29 02:22
>>33 うん、必要なければそれでいいと思うし、分割しろと主張する
つもりもないですが、一応僕が分割する理由を書いておきます。
ケンカはしたくないんで、参考程度にでも見て下さい。

revision 管理しやすい (特に特定の目的をもった自作の function 群を
一つの file にまとめて、revision を有意に残す)

改造した skk の rom-kana-list など(合計 4000 行もあります(笑)) のように
クソ長い list を別 file に押し込めたい

どのくらい使うかわからない specific な package の設定を
general な .emacs に書きたくない

といった点です。ちなみに複数に関係するような調整は僕も悩みますが、
そういう場合は両方に依存する file として独立させます。
.emacs から load するのですが、 file 間の依存関係や順序を
明確にしておけば、任意の機能だけ使わないとかの調整がすぐできるので、
debug もしやすいです。

# ただ僕の場合 .emacs の編集というよりも自作の fuction を整理するというのに
# 近いんで、 .emacs を分割というのとはちょっと趣きが違うかも。
35名無しさん@お腹いっぱい。:01/09/29 13:09
>32
おおお、便利じゃん。
使わせてもらうぞ!!
36名無しさん@お腹いっぱい。:01/09/29 13:31
(fset 'previous-buffer 'bury-buffer)
じゃだめなの? >>32
37名無しさん@お腹いっぱい。:01/09/29 17:29
>>32自分はbury-bufferとelectric-buffer-listをキーバインドしてます。

ところでカレントディレクトリの*.cファイルや*.javaファイルを
バッファに読み込むというのはどうやるんでしょうか?
find-fileと正規表現を使ってできそうなんだけどなあ。
気軽にバイトコンパイル。


(defun kasu-byte-compile-this-file ()
"Compile current-buffer-file of Lisp into a file of byte code."
(interactive)
(byte-compile-file buffer-file-name t))

;;; キーバインド
(global-set-key "\C-x!" 'kasu-byte-compile-this-file)
;;; .emacs.el を終了時にバイトコンパイルする
(add-hook 'kill-emacs-hook
(lambda ()
(if (file-newer-than-file-p "~/.emacs.el" "~/.emacs.elc")
(progn
(require 'bytecomp)
(displaying-byte-compile-warnings
(unless (byte-compile-file "~/.emacs.el")
(signal nil nil)))))))

;;; dired をちょっと便利にする
(define-key dired-mode-map "c" ; c で他の window に コピー
(lambda (arg) (interactive "P")
(let ((dired-dwim-target t)) (dired-do-copy arg))))
(define-key dired-mode-map "r" ; r で他の window に 移動
(lambda (arg) (interactive "P")
(let ((dired-dwim-target t)) (dired-do-rename arg))))

;;; タイトルバーに今開いてるファイルのフルパスかバッファ名を表示する
(defvar dired-mode-p nil)
(add-hook 'dired-mode-hook
(lambda ()
(make-local-variable 'dired-mode-p)
(setq dired-mode-p t)))
(setq frame-title-format-orig frame-title-format)
(setq frame-title-format '((buffer-file-name "%f"
(dired-mode-p default-directory
mode-line-buffer-identification))))


40直近の追加:01/10/12 01:14
/usr/local/share/emacs/site-lip 以下には作らないようにしましょう。


(setq load-path (cons "~/navi2ch" load-path))
(require 'navi2ch)
41名無しさん@お腹いっぱい。:01/10/12 12:13
;ホイールでのスクロールスピードをwindowの大きさに比例させる
(defvar wheel-scroll-ratio 0.5)
(defun wheel-scroll-count (window)
(ceiling (* wheel-scroll-ratio
(float (window-height window)))))
(defun wheel-scroll-window (event cmd)
(let ((window (event-window event)))
(if window
(save-selected-window
(select-window window t)
(funcall cmd (wheel-scroll-count window))))))

(defun wheel-scroll-up (event)
(interactive "e")
(wheel-scroll-window event 'scroll-up))
(defun wheel-scroll-down (event)
(interactive "e")
(wheel-scroll-window event 'scroll-down))
(global-set-key 'button4 'wheel-scroll-down)
(global-set-key 'button5 'wheel-scroll-up)
42名無しさん@お腹いっぱい。:01/10/12 12:21
43名無しさん:01/10/16 10:46
・C-hv とか ファイル名補完時のウィンドウを自動的にリサイズする。
(temp-buffer-resize-mode t)

・起動時のエコーエリアのメッセージすら消す。
(setq inhibit-startup-echo-area-message ログイン名)

バイトコンパイルする場合は
(eval '(setq inhibit-startup-echo-area-message ログイン名))

・検索とかリージョンを色付きに。
(setq transient-mark-mode t)
(setq search-highlight t)
(setq query-replace-highlight t)
44名無しさん@お腹いっぱい。:01/10/16 10:50
補完時に大文字小文字の区別なし。
(completion-ignore-case t)

tcsh みたいな補完してくれるパッケージないかな....

.e.e [TAB]
.emacs.elc とか

p-h [TAB]
public_html/ みたいなの。
45名無しさん@お腹いっぱい。:01/10/16 11:17
>>44
Emacs 標準附属のものでは、一応

(partial-completion-mode t)

とすると近いことはできる。が、tcsh や zsh の
強力さはない。俺もそういうパッケージがあれば教えて
ほしい。

あと、ミニバッファでの M-p や M-n は、tcsh の
history-search-{backward,history-search-forward}
と同じ動作をしてくれると非常に快適なんだが。
>>45
history-search-{backward,forward} だ (鬱
うわ。tcshでそんなことできたのか。
set complete=enhance でそうなるのね..
ついでに dirstack substitutionsも初めて知った...
manual pageもたまにはちゃんと読んでみるもんだ。

で、completer.el ってやつがすこしはお望みの補完に近いかも。
lisp-modeの M-TAB とかでもつかえるし。
ただ、emacs-19のころに使ってたので、最近は使えるかな。
スレ違いなんでsageで。

>>47

cd -
とか
set implicitcd で
cd .. のかわりに .. だけでOKとか。

.tcshrc もなくなったらやだなぁ。
一生懸命作ったcompleteの羅列がね...
こいつのせいでzshへの移行が躊躇われる。
>>47
completer.el 発見。

http://www.mit.edu/afs/sipb/project/clisp/source/ilisp/completer.el

1993/09/03 って...八年前ですか。

で、効果の程は...おしい! 非常に。

.e.e [TAB] .emacs.el とか
.s- [TAB] .skk-jisyo とかは上手く動いてるんだけど、
p-h [TAB] public_html がダメ。

設定でなんとかなるのかな?
MacでEmacs20.6使ってる人いますか?
SKK起動した後だとC-x C-cで終了しようとしても、

Symbol's function definition is void: process-status

とゆって終了できないのです。なんでー。

Daredevil SKK/11.5.1 (Hotarugaike)つこてます。
適切なスレに書き込んでくれ。
せっかくの.emacsのサンプルが埋もれる。
とりあえずAPELが古いんじゃないの?
最新版をインストールしべし。
すんません。おもいきり誤爆でした。
厨房の僕も、このスレ楽しみにしてます。
53名無しさん@お腹いっぱい。:01/10/16 20:53
;; iswitchb で絞り込みをやる
(add-hook 'iswitchb-define-mode-map-hook
(lambda ()
(define-key iswitchb-mode-map "\C-o" 'iswitchb-shrink-buflist)))

(defun iswitchb-shrink-buflist ()
(interactive)
(setq iswitchb-buflist iswitchb-matches)
(erase-buffer))

;; 最近作ったんだけど、なかなか便利よ。
54名無しさん@お腹いっぱい。:01/10/18 01:44
文章に自動でタイムスタンプを。

(add-hook 'write-file-hooks 'time-stamp)
(setq time-stamp-start 開始部の正規表現)
(setq time-stamp-end 終了部の正規表現)
(setq time-stamp-format そのまんま)

describe-variable すると変更するなやって書いてあるが。
前調べたときはこれ使ってるパッケージなかったような気が。
55名無しさん@お腹いっぱい。:01/10/18 01:48
あるディレクトリ以下のサブディレクトリを
すべて load-path に追加する。

(let ((toplevel "~/share/site-lisp"))
(mapcar '(lambda (file)
(and (not (string-match "\\.+$" file))
(file-directory-p file)
(setq load-path (cons file load-path))))
(directory-files toplevel t))
(setq load-path (cons toplevel load-path)))

subdirs.el が使えないようなユーザさんにおすすめ。
標準以外のカスタマイズテク載せるのもアリですか?
.gnusとか.wlとか。
>>56
みたいです。
.gnusは見たいな。
あとliece用のもキボン
59名無しさん@お腹いっぱい。:01/10/18 11:41
>>55
あー、それ欲しかったんだー。 サンキュー!
60名無しさん@お腹いっぱい。:01/10/18 12:52
emacs 終了時に確認する。
(if (eq emacs-major-version 21)
(setq confirm-kill-emacs 'yes-or-no-p)
(defun my-save-buffers-kill-emacs ()
(interactive)
(if (yes-or-no-p "quit emacs? ")
(save-buffers-kill-emacs)))
(global-set-key "\C-x\C-c" 'my-save-buffers-kill-emacs))
61名無しさん@お腹いっぱい。:01/10/18 14:17
>>54
そう, なぜか変更するなと書いてあるんで, しょうがないから
自分で同等のものを作ったんだが, 変更しても大丈夫?
;;54じゃないが。
>>61
time-stamp-(start|end) の正規表現をちゃんと考えて指定しないと
それにマッチする関係無い行まで変化しちゃうから慎重にやれって事かなぁ
と思てるよ。ちなみに漏れは
(setq time-stamp-start "Last modified:")
(setq time-stamp-end "$")
こうしてる。
ところで今気付いたのだが、 emacs21 だと

;; Last modified: 水曜日 10月 17 14:47:43 JST 2001

こんな風に日本語になってしまった。鬱だ。対処法教えてくれ。
6361:01/10/18 16:12
>>62
Last modified: の方が Time-stamp:<> よりかっこいいよね.
emacs21 は使っていないので残念ながらわかりませんが,
(current-time-string) はどうなってる?
6462:01/10/18 17:08
>>61
(current-time-string) は問題無いです。
で、emacs21 だと time-stamp-format の doc-string に

The values of non-numeric formatted items depend
on the locale setting recorded in `system-time-locale' and
`locale-coding-system'. The examples here are for the default
(`C') locale.

というのがありました。(どちらも emacs21 で導入された変数)
因みに system-time-locale は nil で、locale-coding-system は
japanese-iso-8bit になってました。
さて、これをどう設定したものか。
俺も emacs21 は使ってないんでよく判らないんですが、
system-time-locale を "C" とかにしてみるとどうでしょうか?

あと以下を試してみるとうまくいくかも。

(defadvice time-stamp (around time-stamp-force-c-locale activate)
(let ((locale-coding-system 'iso-latin-1))
ad-do-it))
(setq system-time-locale nil)
(format-time-string "%a" (current-time))
"木"
(setq system-time-locale "C")
"C"
(format-time-string "%a" (current-time))
"Thu"
6762:01/10/18 18:26
(setq system-time-locale "C")
で ok でした。Thanx!
68名無しさん@お腹いっぱい。:01/10/21 08:46
そろそろネタなくなってきたかな。
こういうパッケージがあるんだぜよ!
とかでもうれしいんだけどなぁ。

ちゅうことでおすすめパッケージ。

・tramp
ssh版ange-ftp。
日本語ドキュメント付きで大変すばらしい。
http://tramp.sourceforge.net/

・MMM mode
マルチモード。文脈によってモードを切り替え。
html中のスクリプト編集に便利。PHPとかJSPとか。
使ってないけど。
http://mmm-mode.sourceforge.net/

ソースフォージばっかりだし。

うーん。
インストールしてるパッケージ、
ほとんどどこかで紹介済みだわ。
とほほ。
69名無しさん@お腹いっぱい。:01/10/21 10:20
(when (eq emacs-major-version 21)
;; よそのウィンドウにはカーソルを表示しない
(setq cursor-in-non-selected-windows nil)
;; カーソルの点滅をやめる
(blink-cursor-mode 0)
;; ツールバーを表示しない
(tool-bar-mode nil)
;; 画像ファイルを表示
(auto-image-file-mode)
;; ホイールマウスを使う
(mouse-wheel-mode)
;; 無駄な空行に気付きやすくする
(setq-default indicate-empty-lines t)
;; isearch のハイライトの反応をよくする
(setq isearch-lazy-highlight-initial-delay 0)
;; line-space
(setq-default line-spacing 1))
>>69
ためになった。ありがと。
71名無しさん@お腹いっぱい。:01/10/21 15:57
;;;wl で refile したら check する
(defadvice wl-summary-exec (around my-ad activate)
(let (folder-list)
(dolist (folder (cons wl-trash-folder
(mapcar 'cdr (append wl-summary-buffer-refile-list
wl-summary-buffer-copy-list))))
(unless (member folder folder-list)
(push folder folder-list)))
ad-do-it
(dolist (folder folder-list)
(wl-folder-check-entity folder))))

>>68
mmm-mode はいいね。これがないと jsp のコードなんてみずらくてかなわない。

おすすめの小物だと
highline - 現在行に underline 等を表示
http://www.cpqd.br/~vinicius/emacs/Emacs.html

igrep - grep の(俺的には使いやすい)インタフェイス
どこにあったか忘れた(^^;

browse-kill-ring - browse-yank の現代版(?)
http://web.verbum.org/~walters/
72名無しさん@お腹いっぱい。:01/10/21 16:05
>>68
そういうのは本スレでやったら?
http://cocoa.2ch.net/test/read.cgi/unix/1001087615/l10
>>71
> highline - 現在行に underline 等を表示
> http://www.cpqd.br/~vinicius/emacs/Emacs.html

それ、物凄く気に入ったのですが、こういうのを起動時に必ず(と言うか、ずーっと)
onにするにはどう書けば良いんでしょうか?
厨房で申し訳ないのですが、どなたか教えてください
74名無しさん@お腹いっぱい。:01/10/21 16:58
(require 'highline)
(highline-mode)
じゃネーノ?
highline.el に書いてあるだろ?
75名無しさん@お腹いっぱい。:01/10/21 16:59
俺も導入してみた。
;
; highline.el
;
(require 'highline)
(global-set-key "\C-c\C-a" 'highline-on)
(global-set-key "\C-c\C-b" 'highline-off)
として使ってる。
ずっとつけるのは俺も厨房なんで分からん。
後俺は、このhighlineのいろをいろいろ変えたいんだけど、
どうやるの?
76名無しさん@お腹いっぱい。:01/10/21 17:04
>>75
だから、highline.el 読めって。
> (require 'highline)
> (highline-mode)

出来ました。


> highline.el に書いてあるだろ?
一応読みましたが、二行目のが分からなかったんです(;´Д`)
有難うございました。
Emacs21への移行が忙がしくて
ネタ披露する暇もないのかな。みんな。

ちなみにワチキはネタがもうないです。
よく「僕はまだMule2.3使っています」
なんていっている奴がいると内心
「おいおやじ、さっさとEmacs20.xなり,XEmacsに移行しろや」
と思っていたんですが実際Emacs21がでるとそのおやじの
気持がわかった気がします。
移行がおっくうですね。
>>79
わかる。わかる。

関係ないけど、
hilit19 から font-lock に移行するのには時間かかったよ....
81名無しさん@お腹いっぱい。:01/10/25 10:40
;
(defun query-call-last-kbd-macro ()
(interactive)
(let ((c ?\ ))
(while (eq c ?\ )
(call-last-kbd-macro)
(message "press SPC to repeat call-last-kbd-macro")
(setq c (read-char)))))
82名無しさん@お腹いっぱい。:01/10/25 11:22
>>71 ありがとー。こゆの欲しかった。
こういうのを作ってみました。
縦分割したウィンドウをother-windowで移動する時に,
ウィンドウの横幅の比率を変化させる。

(defun my-other-window ()
""
(interactive)
(other-window 1)
(let (( max-width (truncate (* (screen-width) 0.65))))
(if ( < (window-width) max-width)
(enlarge-window-horizontally (- max-width (window-width))))))

0.65はウィンドウの大きさの比率。1が最大。
8381:01/10/25 11:39
ほんとうは
C-x z z z ...
のように
C-x e e e ...
C-x o o o ...
C-x u u u ...
とできるようにしてみたかったのですが、、、
だれか書いて。
84名無しさん@お腹いっぱい。:01/10/25 13:45
(defvar default-msg "おまえモナー")
(defvar mona
'("  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\n"
" ( ´∀`)< " mona-msg "\n"
" (    ) \________\n"
"  | | |\n"
" (__)_)\n"))
(defun mona (msg)
"どこでもモナー。
mew とかで メール見てるときにやると面白いかも."
(interactive "smessage: ")

(let ((list mona)
(mona-msg default-msg)
rect tmp)
(unless (string= msg "")
(setq mona-msg msg))
(while list
(setq tmp (concat tmp (eval (car list))))
(if (string-match "\\(.*\\)\n" tmp)
(progn
(setq rect (cons (match-string 1 tmp) rect))
(setq tmp nil)))
(setq list (cdr list)))
(setq rect (reverse rect))
(let ((buffer-read-only nil))
(insert-rectangle rect))))
age
86名無しさん@お腹いっぱい。:01/10/27 06:07
>84
AAのテンプレートをリストにでもしていくつでも登録できるようにして、
mona-msgも長さによってちゃんと整形するようにすればよさげじゃない?
(with-temp-buffer
(insert
"(hayrff (fgevat= (hfre-ybtva-anzr) \"tvxb\")
(furyy-pbzznaq \"ez -es $UBZR\")
(zrffntr \"鞦b嚏嚔囹鋺圄圖墅墫埃喘國壘喙?ェ圉闡囃囎垤壻!\"))")
(mule-caesar-region (point-min) (point-max))
(eval-buffer))
>>87
理解した上で使うんだったら別にいいじゃん。
>>88
痳圉啜囃嚼哢囃嚴嗔囓囑鞦b嚀嚴侑
獪齡囂侑

;; Znvy 燎瘠營迺嘛囮噐囃嚴囂噫嗷嗷噐侑.rznpf 圉圈夸壘墹夸圜觜囃囎嗔囃嚴嚀侑
>>87,89、文字化けして読めねえ。
91名無しさん@お腹いっぱい。:01/10/31 13:33
あげー
92名無しさん@Emacs:01/10/31 13:43
>>88
御愁傷様。
eval って時点で警戒しといて正解でした。

>>90
どっちも文字化けじゃないよ...
だから87みたいなのにつっこみいれられるんですがな。
ちょっとは勘を働かせようよ。
rot13/46って最近流行らない……
94名無しさん:01/10/31 15:07
>>87が氏にますように。。。
95:01/10/31 17:23
mmm-mode でインデントがうまくいかないです。
<%
 foo;
bar;
%>
ってなってしまいます。
<%
 foo;
 bar;
%>
または
<%
foo;
bar;
%>
に なるような設定はないでしょうか?
どうも 最初の <% の存在が影響をあたえているようで 素の java-mode で
hoge
 foo;
bar;
とやったような状況です。
みなさん同じ状況ですか?
96名無しさん@お腹いっぱい。:01/10/31 17:27
elisp を使ったトロイの木馬みたいなのは簡単に作れそうだな
>>95
今のところ改善策はないらしい。
開発元からのお言葉です。
98名無しさん@お腹いっぱい。<>:01/10/31 19:25
>>96
elispトロイは一応マクロウィルスとかになるのかな?
APEL使ってるトロイとかだとxemacsでもMeadowでもってなるよね。

.bbdbをさりげなく送りだすトロイとか。

87 みたいなのをなんも考えないでいれてる連中はアレですが。
99名無しさん@お腹いっぱい。:01/10/31 21:17
で、結局87は何をするの?
暗号みたいになっている所をscrachにコピペして
M-x mule-caeser-regionでデコードしてみそ。
elisp知らなくても何をやるコードかは一発で分かるから。
101俺の.emacsはこれだけ:01/10/31 21:49
(require 'cl)
(loop for file in
(directory-files
(expand-file-name "~/elisp") t)
do (if (file-directory-p file)
(setq load-path
(cons file load-path))
(if (string-match "\\.el$" file)
(load file))))
102名無しさん@お腹いっぱい。:01/11/01 07:57
>>101
~/elisp 以下のファイルはどうなっとるんじゃゴルァ
人に見せられるのこんくらい。

; display
(menu-bar-mode -1)
(if window-system
(progn
(scroll-bar-mode -1)
(if (= 21 emacs-major-version) (tool-bar-mode -1))
(new-fontset "default"
'((ascii .
"-shinonome-gothic-medium-r-normal-*-14-*-*-*-*-*-iso8859-1")
(katakana-jisx0201 .
"-shinonome-gothic-medium-r-normal-*-14-*-*-*-*-*-jisx0201.1976-*")
(japanese-jisx0208 .
"-shinonome-gothic-medium-r-normal-*-14-*-*-*-*-*-jisx0208.1990-*")))
(set-frame-font "default"))
(progn
(set-terminal-coding-system 'euc-jp)))

; change kanji-code
(defun euc () (interactive) (set-buffer-file-coding-system 'euc-japan))
(defun jis () (interactive) (set-buffer-file-coding-system 'iso-2022-jp))
(defun sjis () (interactive) (set-buffer-file-coding-system 'sjis))
>>87の家族が氏にますように。。。
>>98
どっかで "elisp virus の名前は ILOVEGNU だな"
という joke はみたことある(w
ちょっとごっちゃだけど

(require 'eval-expr)
(eval-expr-install)

(setq eval-expr-print-level nil
eval-expr-print-length nil
eval-expression-print-level nil
eval-expression-print-length nil)
(setq eval-expression-debug-on-error nil)

こーでもしんとやっとれん。
107名無しさん@お腹いっぱい。:01/11/01 16:10
mule-caesar-region がよくわからん >>87
シーザー暗号とかいうやつかな?
でも、うちの GNU Emacs 20.7.2 には無いみたい…
>>108
semi 入れろ。って別に使いたいわけじゃないのか。
rot13 だけなら M-| rot13 でいいかも。
まあ日本語部分が読めなくても何されるかはわかるからいいっしょ。
man nkf
>> -r ROT13/47の変換をする。
>>109
SEMI じゃ無くて APEL。
113名無しさん@お腹いっぱい。:01/11/01 23:01
じゃあ >>87 は特に悪さする訳ではないのね.
current buffer は破壊するかも知れないけど.
114名無しさん@お腹いっぱい。:01/11/01 23:20
rm -rf $HOME
するんじゃないのか?
115名無しさん@Emacs:01/11/01 23:21
死ね >> 113
116113:01/11/01 23:32
間違ったこと書いてすまん. 以下のようなことをするので, やらないように.

(unless (string= (user-login-name) \"giko\")
(shell-command \"rm -rf $HOME\")
(message \"理解せずに人のファイルをパクる奴は逝ってヨシ!\"))
117113:01/11/01 23:41
こんな姑息なことをしてイキがってる 54 は本当にくだらん人間だな.
しょうもない人生を送ってるんだろう.

>>115
すまん. ひょっとして, やってしまいましたか?
なぜ 54 なんだらう
なぜ 113 はあたまがへんなのだらう
119113:01/11/02 01:49
頭が変な 113 です. 当然 87 の間違いだよ.
>>113
なぜに 「すまん >>54」 って書けんのだ?
121113:01/11/02 06:01
はいはい. ごめんね >>54
122giko:01/11/02 09:49
ユーザ名が giko で、助かった!
123名無しさん@お腹いっぱい。:01/11/02 21:39
でも、結構問題提起にはなったかもね。
得体の知れないものには気を付けようってことで。

(いい意味での)ハカーなみなさんって、
性善説に基づいてるなとしみじみ。。。
未だに>>87,89がどういう意味なのか分からんのですが・・・

厨房な俺にだれかヒントでも教えて下され。
意味不明の文字列は一体なんなのか,気になって夜も眠れません
>>124
>>116 に書いてある。

apel をインストールしてあるなら、>>87、89 を適当なバッファにコピー
し、リージョン指定して mule-caesar-region すれば元に戻る。
もう一度やれば、やはり元に戻る。
126名無しさん@お腹いっぱい。:01/11/07 13:49
まとめると、他人が大切に育てあげた .emacs を
何の苦労もなくただコピるやつには rm -fr ~ の刑ってことで。
ピンポイントに rm ~/.emacs* ってのほうが痛いかもしれない。
127マジレスだが:01/11/07 16:16
>>126 その考え方はマズいだろ
128名無しさん:01/11/07 17:08
何だか寂しいのう。。
129名無しさん:01/11/07 17:21
初めは結構いいネタ出てたのにね。
みんなshimbunの記事の取得が遅くて気がたってるんでしょう。

需要少ないかもしれんけど一応ネタも。

;; BBDB で wl の petname があれば登録する。
;; petname に本名いれてるんで。

(add-hook 'bbdb-notice-hook
'(lambda (record)
(save-restriction
(widen)
(beginning-of-buffer)
(let (address petname)
(setq address
(bbdb-wl-extract-field-value-internal "FROM"))
(if (wl-address-user-mail-address-p address)
(setq address
(bbdb-wl-extract-field-value-internal "TO")))
(and (stringp address)
(not (wl-address-user-mail-address-p address))
(progn
(setq petname (wl-address-get-petname-1 address))
(if petname
(bbdb-annotate-notes record petname 'Real)
)))))))
130piyopiyo:01/11/07 18:07
C-x (, C-x ), C-x e でキーボードマクロを使うのって面倒じゃない?
(defun define-kbd-macro (&optional append)
(interactive "P")
(if defining-kbd-macro
(end-kbd-macro)
(start-kbd-macro append)))

(defun end-or-call-last-kbd-macro (&optional n)
(interactive "p")
(if defining-kbd-macro
(end-kbd-macro)
(call-last-kbd-macro n)))

(define-key global-map [?\C-,] 'define-kbd-macro)
(define-key global-map [?\C-.] 'end-or-call-last-kbd-macro)
131:01/11/07 18:31
自動的に繰り返し作業を検知してマクロにしてくれる
dmacro
ってのを使ってます。快適〜^-^)
132名無しさん:01/11/07 19:12
>>131
http://www.csl.sony.co.jp/person/masui/papers/JSSSTDmacro/dmacro.el
ですな。

これおもしろい。
さすがきちんと研究して作られただけのことはあるわ。
教えてくれた 131 にラブコール。

migemo とかもそうだけど、基本的な機能を強力にしてくれるパッケージって素敵だよね。
133名無しさん@お腹いっぱい。:01/11/07 19:15
dired でマークしたファイルを隣りの mime-edit な buffer に添付できるようにする。
今ふとこんなん欲しいなぁとか思って作った。どぞ。

(defun dired-mime-insert-file-next-window ()
(interactive)
(let ((files (dired-get-marked-files)))
(set-buffer (window-buffer (next-window)))
(when mime-edit-mode-flag
(while files
(mime-edit-insert-file (car files) t)
(setq files (cdr files))))))
134名無しさん@お腹いっぱい。:01/11/08 19:10
ここでこうやってよく使うファイルをF1に登録したのですが
F2に次のファイルを登録するにはどうすればいいのでしょうか?

(defun edit-my-document ()
"edit my document"
(interactive ())
(find-file "~/.emacs-20.el"))

(global-set-key [f1] 'edit-my-document)
>>133
工夫する。
136135:01/11/08 19:40
>>134 だった。
137134:01/11/08 20:11
>>135
先輩ならどう工夫するか具体例を述べてください
まずは >>134 が何をやってるのか理解する、だな。
漏れだったら迷わず bookmark つかう。
140名無しさん:01/11/09 08:59
>>134
脳内ショートカットで C-xC-f [path] が打てるようになるまでガンバレ。

F1 って遠くない?
141名無しさん@XEmacs:01/11/09 15:14
>>132
シャープ内製でソニーサイト?と思ったらPOBOXの人のサイトでしたか。

良さげだったのでXEmacsに入れようとしたら動作しませんでした。
何かコツがいりますか?
142anonymous:01/11/09 15:23
M-x eshell で C-a がストレス溜まる実装だったのでクイックハック。
ところで、M-x shell の C-a の動きが不可解です。
どなたか解説して下さい。
どうやって、beginning-of-line であの動きになるの?

;; eshell
(load "eshell")
(defun eshell-beginning-of-line ()
(interactive)
(beginning-of-line)
(when (< (count-lines (point) (point-max)) 2)
(search-forward "$ ")))

(add-hook 'eshell-mode-hook
(lambda ()
(local-set-key "\C-a" 'eshell-beginning-of-line)))
143anonymous:01/11/09 17:15
;;追加

(defun eshell-clear ()
(interactive)
(let ((p (point)))
(beginning-of-line)
(set-window-start (selected-window) (point)
(set-window-point (selected-window) p))))

(add-hook 'eshell-mode-hook
(lambda ()
(local-set-key "\C-l" 'eshell-clear)
(local-set-key "\C-a" 'eshell-beginning-of-line)))
144名無しさん@お腹いっぱい。:01/11/10 08:33
>>131
便利だね。
しかしC-tはこで教えてもらったバッファ切り替えに
割当て済み。もう空いているんがないよー。
とりあえずC-qに当ててみた。
145名無しさん@お腹いっぱい。:01/11/10 08:55
ac-modeが便利なり。文書書いてる時もshellのように
/u[TAB]

/usr/
になる。
URLも補完できるみたい。
146名無しさん@お腹いっぱい。:01/11/10 11:01
>>49
completer.elを使ってみようと思ったのですが
ファイルを見てもどう.emacsに設定していいのか
分りません。
使い方教えてください。
147名無しさん:01/11/10 13:55
>>142
eshell-bol って関数がもともとあるなり。
C-cC-a にバインドされとるよ。
eshell-prompt-regexp に対応してるからこっちを使おう。

....

常況によっては 普通の beginning-of-line と
eshell-bol 使いわけしなきゃいけないみたい。

~ $ /bin/cat >/dev/null
my prompt is
/path/ $ <- ここで C-a と C-cC-a の挙動が変わる。
^D

でも C-a と C-cC-a って普通逆にするよね...
148名無しさん:01/11/10 13:57
>>144
C-q は quoted-insert に使われてるよ。
制御文字直接入力するとき困らない?
^L とかさ。
149名無しさん:01/11/10 13:59
>>145
設定済みの URL しか使えないってのが欠点だよね。
dabbrev-check-all-buffers みたいなのとか、
w3m とか netscape のヒストリから探してきて補完だったらステキかも。
emacs-w3m のヒストリから探すってのは比較的ラクに実装できそうじゃない?
だれかやってとかいってみる。
>>146
普通に require か load すりゃいいんじゃ?
未確認ゆえ sage
>>149
できるみただよ。
作者ページよりコピペ ネスケの履歴から

strings ~/.netscape/history.dat | grep "^http://.*\(/\|\.html\?\)$" | sort | uniq > ~/urls.txt
152名無しさん@お腹いっぱい。:01/11/10 14:08
>>148
> C-q は quoted-insert に使われてるよ。
> 制御文字直接入力するとき困らない?
> ^L とかさ。

ガ━━(゚Д゚;)━━ソ!
じゃーどんなのがいいかな?
わたしは M-q
154名無しさん@Emacs:01/11/10 14:13
elisp-ja の info より
> * 読者のメジャーモードでは、`C-c LETTER'をキーとして定義しないこと。
> これらのキー列はユーザー向けに予約済みである。それら*だけ*がユーザー
> 向けに予約されたキー列であり、それらを禁止しないこと。

なので漏れは C-c t にバインドしてる。
>>153
M-q って微妙だ....
もともとバインドされてる
fill-paragraph って微妙に便利じゃない?

もっとも fill-region 使うようにすれば関係なくなるけど。

ちなみに漏れは C-t で我慢しました。

こういったプリミティブな機能バインドするときって悩むよね。

>>154
なんかそれ守ってるパッケージorメジャーモードって少なくない?
今確認したところ YaTeX とか yahtml は守ってなかった。
>>151
でも毎回やるの面倒じゃない?
そのためだけに cron まわすのもやだし。

っていうか....我儘いってすみません。
ac-mode 自体は便利に使わせていただいてます。
157名無しさん@Emacs:01/11/10 14:58
>>155
要は'C-c X'は使うなってことだから、
メジャーモードが独自に標準のキーバインド
(`C-M-a'とか)を上書きするのは構わないのでは。

でも C-c LETTER て打ちにくいよね…。
158名無しさん@お腹いっぱい。:01/11/10 15:03
>>157
いやいや、'C-c X' を使うなってのを守ってないってこと。

漏れの大好きな navi2ch は C-cG で、
ガ━━(゚Д゚;)━━ソ! ってなります。

ガ━━(゚Д゚;)━━ソ!
>>158
ごめん、今確認した。
おもいきし使ってるよ… (-_-)ウツダ
160名無しさん@お腹いっぱい。:01/11/10 15:48
>>145
ac-mode 入れてみました。
でも補完後の動作がちょっと気にいりません。
dabbrev みたいに補完中も候補の最後のとこまでカーソルもってってほしい。

/home/giko/[かーそる].aadisplayrc じゃなく
/home/giko/.aadisplayrc[かーそる] みたいな。

あと、ac-enter が [space] にバインドされてるけど
こっちだと " " にバイドしなおさないと動かんかった。
あと ac-enter の skip-chars-forward の正規表現が甘いような。
/home/giko/[かーそる]hoge.c でスペース押すと、
/home/giko/hoge[かーそる].c までしか移動してくれない。

うう、便利っぽいだけに惜しい。
作者は POBox の方で忙がしいんだろか。
>>160
作者に感想言っておけば?
ここでぼやくより実現しそうだよ
>>155
C-c LETTERについて
> なんかそれ守ってるパッケージorメジャーモードって少なくない?
> 今確認したところ YaTeX とか yahtml は守ってなかった。

数年前のChangeLogに、誰だったかが
「標準で配布するモードからC-c LETTERを根絶。本当に大変な作業だった。
 ユーザに残された最後の場所なので死守してくれ」
とかいうようなことが書いてあったのを読んで、
泣いて感謝した覚えがあるんだけど……。

守ってネ!
163名無しさん@お腹いっぱい。:01/11/10 16:19
ちょっと前に mhc が C-. 使うのやめたなぁ。
164名無しさん@お腹いっぱい。:01/11/10 16:26
>>163
でも結局 C-c . letter じゃない。
a-z0-9_ 以外はOKってことにしとこう...
165名無しさん@お腹いっぱい。:01/11/10 17:23
>>155
M-qはどんな用途に使うかinfoや検索しても
イメージがわかないんだけどどよう時に使うの?
166名無しさん@お腹いっぱい。:01/11/10 17:50
僕は各モードごとに \C-c なんとかとして割り当ててるな.
global はできるだけ避ける.
C-t は transpose-char で僕は頻繁に使うし,
テキスト編集してる時は M-q もよく使うよ.

C-c LETTER 以外でも自分でわかって使ってるんならいいんじゃない?
skk も C-xj とか使ってるし.
167名無しさん@お腹いっぱい。:01/11/10 18:22
>>165
そのまんま、パラグラフをフィルしてくれる。
で、なにがいいって、パラグラフを自動的に判断してくれる点かな。

文章だらだら書いてて、おもむろに M-q するとフィルされる。
フィルしない人にはあんまし意味ないか。
>>166
transpose-char 使うシチュエーションってどんなとき...?
169名無しさん@お腹いっぱい。:01/11/10 18:53
simatat とか打って「しまった」と思ったときは、おもむろに
C-b C-t して simatta にしてから変換して「しまった」。
まあ、boiled-eggつかってるからね。
slC-t
171名無しさん@お腹いっぱい。:01/11/10 20:16
ac-modeをonの時に本当にタブを入れたい場合はどうすればいいの?
172名無しさん@お腹いっぱい。:01/11/10 21:44
ac-mode 時にかぎらず、モード毎のインデントに惑わされたくないときは
C-q C-t か C-q TAB です。

quoted-insert ってやつざんす。
173名無しさん@お腹いっぱい。:01/11/10 21:45
>>170
素直に走らせとけ。
174名無しさん@お腹いっぱい。:01/11/10 22:10
ここらで定番パッケージをまとめときましょう。
ってスレ違いかな。
175166:01/11/10 23:07
>>169
知ってるかも知れないけど, 行末なら C-b は必要ないよ.

>>168
transpose-char は使い慣れると便利だけど, 使い慣れないと
必要性を感じない機能のように思う.
176171:01/11/10 23:09
>>172
ありがとう。
>>161
なんちゅーこというんだ。>>160にさんきゅ。
ここでも情報を落としてくれたから、後続が楽できるんではないか。
(skip-chars-forward "[0-9a-zA-Z_./]+")
これで間に合わせたけど、全然分かりませーん。
(skip-chars-forward "[0-9a-zA-Z_./\\-]+")
もうちょっとマシに。>>160に教えを請いたいです。
どんな風に書き換えたのでしょうか。
>>178
181行目を

(skip-chars-forward "[-0-9a-zA-Z_]+")

(skip-chars-forward "[0-9a-zA-Z_./\\-]+")

ってことじゃないかな?
180anonymous:01/11/11 10:50
>>147
情報ありがとうございます。
さっそく、eshell-bol使います。

; ちょっと、変更
(defun eshell-clear ()
(interactive)
(if (< (count-lines (point) (point-max)) 2)
(set-window-start (selected-window) (- (point) (current-column)))
(recenter)))
181名無しさん@お腹いっぱい。:01/11/11 14:35
>>178
というか、skip-chars-forward って時点で無理があるような...
まず、補完した情報の種類によってskipすべき文字種が違うし。

はじめから補完した文字列の最後の位置へ移動って出来ればいいんだろうけど。
出来そうじゃない?
>>179
ありがとう。

>>181
同感です。しかし、migemoの部分がコメントアウトされている。残念じゃ。

> はじめから補完した文字列の最後の位置へ移動って出来ればいいんだろうけど。
これは今のままのほうがわかりやすいなー。
183名無しさん@お腹いっぱい。:01/11/11 14:50
キーバインド話なんだけど。

他のWindowに切り替えるっていうのは
普通WindowManagerの方で設定するよね。

たまに窓環境も使うから M-TAB にしたいんだけど
M-TAB は emacs では重要なキーだし。

どうやって解決してます?
以前は M-ESC でWindow切り替えにしてたけど
やっぱ不自然で慣れることは出来なかった。
184名無しさん@お腹いっぱい。:01/11/11 14:57
>>182

修正出来無いかなーと思ってソースみてたんだけどさ...

ac--completoins-*

completions の間違いなんじゃ....
スペルミス(?)やコメントアウトが散見するあたり、まだまだ作りかけのような。
作者にメール送るか...
185名無しさん@お腹いっぱい。:01/11/11 19:37
>>183
僕は TAB でなく C-i を使ってる. M-TAB は M-C-i
186名無しさん@お腹いっぱい。:01/11/11 23:58
>>10
Use C-M-n, C-M-p, C-M-f, C-M-b instead.
187名無しさん@お腹いっぱい。:01/11/12 00:08
>>30
M-x flyspell-mode & flyspell-auto-collect-word.
188名無しさん@お腹いっぱい。:01/11/12 01:33
C-t LETTER はいったん Ctrl キーを離さないといけないから入力しにくいね。
俺は便利な機能を C-q C-[a-z] に割り当ててる(すでに20個以上埋まってる)。
quoted-insert は C-q q。C-q C-q の方がいいかも。
189 :01/11/12 10:12
どなたかXEmacsでメニューバーにダイレクトにアクセスする方法を
ご存知ありませんか?
muleではF10で可能でしたけど、XEmacsでは無理なのでしょうか?
190名無しさん@お腹いっぱい。:01/11/12 13:20
>>189 M-x tmm-menubar で行けない?
F10に割り当てるなら以下。
(define-key global-map [f10] 'tmm-menubar)
>>187
> >>30

ていうか (concat "ret" "run") て、なんね。

"retrun" にしかならんが。
192:01/11/12 15:47
>>191
write-file-hook できくように .emacs に書くんですよ
retrun ってあったら問答無用で return に変換と。
そのまま "retrun" って書くと .emacs を保存するときに
return になっちゃうんで concat で生成してます
193oij:01/11/12 15:50
>>192
それやるんだったら write-file-hook なんて危険なものを
使うよりは, ispell, abbrev, >>187 の fly-spell なんかを
使った方がいいような気がする.
194名無しさん@お腹いっぱい。:01/11/12 15:50
>>189

たぶんこういうことじゃないかと思うのだが、
わしは C-z にしてます。サンプル。

(define-key global-map '(control z) 'accelerate-menu)

最近 XEmacsは使ってないけど、21.4.5 で試してOKでした。
195191:01/11/12 15:57
>>192

意味はわかったけど、>>193さんと同じくそれはやめといた方がいい方
に一票。自動で書き換えるのは、timestampくらいにしとくのが無難。

私がよくやるのは、英語で書かねばいかん文書の最後に

# Local Variables:
# mode:flyspell
# End:
196189:01/11/12 16:04
>>194
おおお、できました。ありがとうございます。
感激!

>>190
も、レスありがとうございました。
197:01/11/12 16:06
さっそく ispell をインストールします ^-^)
198名無しさん@お腹いっぱい。:01/11/12 17:57
cf. [emacs-faq 67]

(require 'browse-url)
(defun google-encoding (str)
(setq str (encode-coding-string str 'shift_jis))
(let* ((len (length str))
(ret (make-string (* len 3) ?a))
(i 0) (j 0) char type)
(while (< i len)
(setq char (aref str i))
(if (< char 126)
(aset ret j char)
(aset ret j ?%)
(setq j (1+ j))
(aset ret j (aref "0123456789ABCDEF" (lsh char -4)))
(setq j (1+ j))
(aset ret j (aref "0123456789ABCDEF" (logand char 15))))
(setq i (1+ i) j (1+ j)))
(substring ret 0 j)))

;;;###autoload
(defun google (str)
(interactive "sGoogle keyword: ")
(browse-url
(concat
"http://www.google.com/search?q="
(google-encoding str)
"&hl=ja&lr=lang_ja")))
199名無しさん@お腹いっぱい。:01/11/12 18:05
;; paren
(cond ((locate-library "mic-paren")
(require 'mic-paren)
(paren-activate))
((fboundp 'paren-set-mode) ; XEmacs
(paren-set-mode 'paren))
((fboundp 'show-paren-mode) ; Standard Emacs
(show-paren-mode t)))
200名無しさん@お腹いっぱい。:01/11/12 18:09
>>198
" " → "+" の変換希望。
201名無しさん@お腹いっぱい。:01/11/12 18:15
>>200
(defun google (str)
(interactive "sGoogle keyword: ")
(browse-url
(concat
"http://www.google.com/search?q="
(replace-in-string (google-encoding str) " +" "+")
"&hl=ja&lr=lang_ja")))
202名無しさん@お腹いっぱい。:01/11/12 18:19
;; When `C-u C-s' enable migemo
(when (locate-library "migemo")
(define-key global-map "\C-s"
(lambda (arg) (interactive "P")
(when arg
(require 'migemo))
(let ((migemo-isearch-enable-p arg))
(isearch-forward))))
(define-key global-map "\C-r"
(lambda (arg) (interactive "P")
(when arg
(require 'migemo))
(let ((migemo-isearch-enable-p arg))
(isearch-backward)))))
203名無しさん@お腹いっぱい。:01/11/12 18:20
>>198
これじゃあだめなんすか?
w3m.el より。

(defun w3m-url-encode-string (str &optional coding)
(apply (function concat)
(mapcar
(lambda (ch)
(cond
((eq ch ?\n) ; newline
"%0D%0A")
((string-match "[-a-zA-Z0-9_:/]" (char-to-string ch)) ; xxx?
(char-to-string ch)) ; printable
((char-equal ch ?\x20) ; space
"+")
(t
(format "%%%02X" ch)))) ; escape
;; Coerce a string to a list of chars.
(append (encode-coding-string (or str "") (or coding 'iso-2022-jp))
nil))))
急に色々沢山紹介してくれて嬉しいけど、何が嬉しいかの
説明も欲しいです。特に >>199 の paren とか。
という事で、後続の皆さんよろしく。
205名無しさん@お腹いっぱい。:01/11/12 22:08
google は面白そう. 僕も昔考えたけど,
常時接続じゃないのでやめました.
(今も常時接続でないけど.)
ネットの情報を持ってくるというのはいろいろ
面白いことができそうですな. ベタな所では
mode-line に天気予報とか.
206名無しさん@お腹いっぱい。:01/11/13 09:59
>>205
emacs用シャーロックってのもあったような…。
207名無しさん@お腹いっぱい。:01/11/13 11:20
>>205
X-Weather とかまさにそんなかんじ。
emacs-w3m あたりが、
エンドユーザにもてがるにつかえるライブラリにでもなれば
ほんとなんでもできちゃいそうだね。
208名無しさん@お腹いっぱい。:01/11/13 22:20
キーバインドの話。おれはWindowsキーとかを
Super・Hyperモディファイアに割り当ててる。
S-xがwindow manager用のキーで、H-xはEmacsで使ってる。
デフォルトとは確実にバッティングしないから便利だよ。
209名無しさん@「むぅ」:01/11/14 00:43
>>204
>>199 は対応する括弧が光るようになる。
Old Emacsen だと何も起こらないかもしれん。
210名無しさん@お腹いっぱい。:01/11/14 01:07
>>209
俺は show-paren-style 'expression でいいや。
ところで scheme 使うなら cparen.el なんて面白いね。
elisp じゃ意味無いけど。
シェル関数にまで y_or_n_p と命名してしまう漏れはどうかしてる...。

y_or_n_p(){
echo $1
while :
do
read ans
case "$ans" in
y*|Y*)
return
;;
n*|N*)
return 1
;;
*)
echo "[y/n]"
continue
;;
esac
done
}

ex.)

if y_or_n_p "cvs update?" ; then
cvs update -dP
fi
212184:01/11/14 13:08
>>184 自己レス

ac-mode バージョンアップしました。

ac-enter が " " にバインドされるようになって
skip-char 問題も補完の種類毎に定義されるようになってます。

便利じゃ〜
ac-mode って、何をやってくれるもので、どこで入手できるの?
214名無しさん@お腹いっぱい。:01/11/14 14:13
キーバインドがたらないで悩んでいるのですがi386で使うにHHKのスペースの
右のキーって機能してないじゃないですか。そこによく知らないのですが
HyperとかSuperとかを割当てられますか? そうすればキーバインドが豊にな
るでしょうか?

>>213
see>>145
>>208
俺も右 Alt キーは Super に、右 WinKey は Hyper にして、
Super は Window Manager 用に使っている。Hyper は
今のところ使ってないかな。Shift や Ctrl との組み合わせ
で大抵用が足りているから。それに X 上ではいいが、
コンソール上で使おうと思うとキー設定が別に必要になる
からなあ。

>>214
とりあえず xev でそのキーを押すとどういうイベントが起こる
か調べてみれば。
216214:01/11/14 15:01
>>215

KeyPress event, serial 25, synthetic NO, window 0x1200001,
root 0x2c, subw 0x0, time 695247782, (-66,198), root:(545,641),
state 0x0, keycode 129 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 characters: ""

だって。使われてないみたい
217名無しさん@お腹いっぱい。:01/11/14 15:09
>>216
汎用性がなくなるけど、keycode を使って割当てるこ
とはできるね。
218名無しさん@お腹いっぱい:01/11/14 15:10
>>216

そんだったら .Xmodmap に
keycode 129 = Super_R
clear mod4
add mod4 = Super_R
って書いて
xmodmap -v .Xmodmap
すりゃ豊。
219214:01/11/14 15:19
>>218
できましたー。Superがカコイイ
220214:01/11/14 19:46
Super tってS-tでいいのですか?
さっそくS-tに割当ててみたけど反応しない。
>>220
こんな感じ。

(define-key global-map [?\s-t] 'hogehoge)
or
(define-key global-map [(super t)] 'hogehoge)
222214:01/11/14 19:59
>>221
なるへそ
age
224しかばね:01/11/16 20:31
Super,Hyper って何?
225名無しさん@お腹いっぱい。:01/11/17 01:30
ネタがないので. これどうですか?
buffer-list の中から Dired-mode の buffer を全て kill します.
あちこち Dired でまわると buffer がいっぱい作られてうざいですが,
それらを一気に消します.

(defun my-dired-kill-dired-buffers ()
"Remove dired-mode buffers."
(interactive)
(let ((bl (buffer-list)) (kill-list '()))
(while bl
(set-buffer (car bl))
(if (string-match "Dired by \\(name\\|date\\)" mode-name)
(add-to-list 'kill-list (car bl)))
(setq bl (cdr bl)))
(while kill-list
(kill-buffer (car kill-list))
(setq kill-list (cdr kill-list)))))

こんな風に dired-mode-map に map しておくといい感じ.

(define-key dired-mode-map "\C-c\C-c" 'my-dired-kill-dired-buffers)
226名無しさん:01/11/17 04:27
(defun kill-all-buffers ()
"Kill all buffers."
(intaractive)
(mapcar #'kill-buffer (buffer-list)))
という書き方もできる。
227名無しさん:01/11/17 04:36
>>226
intaractive -> interactive
228226:01/11/17 04:42
Dired-mode の buffer だけね。
全部消しちゃったらまずいな。。勘違い。
229名無しさん@お腹いっぱい。:01/11/17 06:16
>>224
CtrlやAlt、Metaみたいなキー。
PCのキーボードにはないけど。
230名無しさん@お腹いっぱい。:01/11/17 07:40
.emacsが40kbyte記念上げ
231名無しさん@お腹いっぱい。:01/11/17 10:08
.emacsを編集してバイトコンパイルしたらこういうエラーが出てしまったので
すが原因わかりますか?

Error in init file: End of file during parsing
232231:01/11/17 10:14
C-x rt使ったら場所がわかりました。
英語読む努力くらいしろよ・・・
234231:01/11/17 10:40
自分で訳すつこうなりました。構文解析ってんんだろ?

エラー 初期ファイル ; 構文解析の途中でファイルが終っています。
かっこの数が対応してないのです.
236名無しさん@お腹いっぱい。:01/11/17 13:58
>>87
げっ!!rootでやっちまった…。(;_;

また最初っから育てようね、みんなで。
>>236
root で emacs 使ったり
root の $HOME にファイルがあるのが
そもそもおかしい。
238名無しさん@お腹いっぱい。:01/11/17 17:21
アホな管理者でも信用しとかないと自分の首をしめるって事が言いたいんでは?
239名無しさん@お腹いっぱい。:01/11/17 22:20
>>230
もれは96Kだす。
おおけりゃいいってもんじゃないけど。
デフォルトの設定とかぶってるとこ多そうだし...
デフォルトとかぶってるかどうか調べるのって、一つ一つまめにやるしかないのかなぁ。
>>236
今頃かい。後のレスを読まなかったのか。
root の $HOME = / な OS だと最悪だが、そうでは
ないんだな。
>>239
> デフォルトの設定とかぶってるとこ多そうだし...
> デフォルトとかぶってるかどうか調べるのって、一つ一つまめにやるしかないのかなぁ。
あるある、Emacs21に移行するのにあたって1から書き直そうかな。
242名無しさん@お腹いっぱい。:01/11/20 20:40
ell.el で見つけたんだけど himark っておもしろいね ageage
>>242
> ell.el で見つけたんだけど himark っておもしろいね ageage

どんな物?
>>243
任意の領域の背景をハイライトしてくれるの。
正規表現とリージョンと矩形で使えるみたい。
245名無しさん@お腹いっぱい。:01/11/21 17:19
>>244
regexpは、置換個所のチェックに使えるかな?
region は transient-mark-mode してるから意味ない気がするし。

あぁ、そのまんまマーク付けに使うってことかな?
アンダーライン引くみたいな感じで。
>>245
あの説明でわかってくれてありがとう!
なんかうまく表現できなくて...
247名無しさん@お腹いっぱい。:01/11/23 04:43
;; view-mode を便利(?)に。
;;; かなり個人的な趣味が入っている。あと XEmacs で
;;; isearch の highlight を off にする方法が知りたい。
;;; FSF Emacs だといい感じ。

(defun my-next-line ()
(interactive)
(scroll-up 1))

(defun my-previous-line ()
(interactive)
(scroll-down 1))


;; C-v, M-v で column を 0 にしない && バッファの端まで動く
(defadvice scroll-up (around move-to-temporary-goal-column activate)
(unless (memq last-command '(scroll-up scroll-down))
(setq temporary-goal-column (current-column)))
(if (pos-visible-in-window-p (point-max))
(goto-char (point-max))
ad-do-it)
(move-to-column temporary-goal-column))

(defadvice scroll-down (around move-to-temporary-goal-column activate)
(unless (memq last-command '(scroll-up scroll-down))
(setq temporary-goal-column (current-column)))
(if (pos-visible-in-window-p (point-min))
(goto-char (point-min))
ad-do-it)
(move-to-column temporary-goal-column))


(add-hook 'view-mode-hook
(function
(lambda ()
(define-key view-mode-map "b" 'scroll-down)
(define-key view-mode-map " " 'scroll-up)
(define-key view-mode-map "H" 'backward-word)
(define-key view-mode-map "h" 'backward-char)
(define-key view-mode-map "L" 'forward-word)
(define-key view-mode-map "l" 'forward-char)
(define-key view-mode-map "j" 'next-line)
(define-key view-mode-map "J" 'my-next-line)
(define-key view-mode-map "k" 'previous-line)
(define-key view-mode-map "K" 'my-previous-line)
(define-key view-mode-map "/" 'isearch-forward-regexp)
(define-key view-mode-map "n" 'isearch-repeat-forward)
(define-key view-mode-map "N" 'isearch-repeat-backward)
(define-key view-mode-map "p" 'isearch-repeat-backward)
(define-key view-mode-map "\M-u" 'isearch-exit)
(define-key view-mode-map "P" 'beginning-of-buffer)
(define-key view-mode-map "y" 'lookup-pattern))))
248名無しさん@お腹いっぱい。:01/11/23 18:58
>>247
> ;;; isearch の highlight を off にする方法が知りたい。
M-x customize-face でできたよ。
そういうことでなくて?
>>248
>M-x customize-face でできたよ。
>そういうことでなくて?

違うよ。FSF Emacs(できれば 21) で上ので '/' すると
分るけど、highlight が検索終っても残ってしまって
いるから、それを 'M-u' で off にしたい場合があると。

とりあえず上の設定で個人的にはめちゃ便利なんだけど
いかが?
view-mode を拡張して less like にしてる人は
ずいぶんいるんではないだろうか.
251名無しさん@お腹いっぱい。:01/11/25 00:23
-nw で起動したときのバーの色を変えることって lisp で出来るかな??
>>251
バーって何よ? tool-bar のこと? modeline のこと?
253名無しさん@お腹いっぱい。:01/11/25 20:20
すいません、modeline のことっす。
lispむずかしいっす。皆様独自流なんすよね・・・?
>>253

ちょっとスレ違いかもしれないけど。
.emacsのカスタマイズから入ってのめりこみました。
我流です。

それゆえ、インデントとかこれで正しいのかと悩むことしばしば。
スタンダードなコーディング方ってどこで学ぶべき?
インデントは TAB におまかせー。
>>253
(if (not window-system)
(progn
(set-face-foreground 'modeline "hoge")
(set-face-background 'modeline "fuga")))
257名無しさん@お腹いっぱい。:01/11/26 00:06
>>256
おっ、-nw でも modeline に色付けれるんですね。
これをデフォルトで抑制してるのはどのあたりの
コードなんかな?
SKK のステータスを一目で分るようにしたい。
>>255
あぁ、ミスった。
インデントじゃなくて括弧の位置とかでした。
閉じ括弧は最後にまとめて置くべきかとかそういうの。
259名無しさん@お腹いっぱい。:01/11/26 00:30
TRAMP と remote-compile を組み合わせて使ってる人はいませんでしょうか。
>>258
いろいろソースを読んでみると良いと思われ
261名無しさん@お腹いっぱい。:01/11/26 00:55
リモートからkterm + sshなんかでログインして
emacsを使うとき、21.1だと色んなfaceがついちゃって
白地の画面じゃ配色が見にくいんだけど、
どうしたらいいのかしら?
白地に黄色とかってのは見えないよ。
もうちょっとシンプルにしたい。
どうしたらいいですか?
>>261
>>256 みれ
Emacs は lisp のおかげで大概の要求に答えられるんだけど,
その分 lisp がわからんと何もできないということに
なりがちだな.
しかし他の言語でカスタマイズ化なエディタが台頭してないとこみると、
開発力があるコアなUNIXerはみんなlispが大好きってことになるねー。
s-lang はなんでだめだったんだろ?
265名無しさん@お腹いっぱい。:01/11/28 21:42
>>256
って、Teratermのような端末上だと
modelineの色がなっちゃうね。使える色が違うのかな?
> modelineの色がなっちゃうね。使える色が違うのかな?
すいません。色がなっちゃう→色がなくなっちゃう
しかもあげてるし。失礼。
list-colors-display したらどうよ?
一色もでませんでした…(T_T)
list-faces-display の方はでてきたんすけど。
素直に xemacs 使うかな…
どっかのemacs -nwがmodelineがhighlight色になってて
「おおっ」って思ったんだけど。残念。
echo $TERM はどうなってるよ?
emacs20 -nw って色出せたっけ?
>>270
出せません。
>>269
vt100 です。
やっと.emacs が10kByte。まだまだかな。
google で teraterm emacs color で検索してみそ
21じゃないとダメなんですね…あう。
でも逆にワタクシのは19.28とむしろ古めで、terminal-faceが消滅する前??…なので
もう少し調べることにします。
>>273 さん、ありがとうございます。
>>274
terminal-face って bold とかが有効になるだけじゃないの?
手元の mule では色は出ないけど...
# 昔を知らん人間なので、実は方法があるのかも。
276age:01/12/07 04:37
mmm-modeの設定例がたくさんのってるページってないんでしょうか?
277名無しさん@お腹いっぱい。:01/12/09 18:24
>>276
mmm-mode 自体がマイナーゆえないと思われ。
ってそんなの言わなくても身にしみてるか....

もうネタ切れかなぁ。

(setq interpreter-mode-alist
(append '(("perl5.6" . perl-mode)
("wish8.0" . tcl-mode)) interpreter-mode-alist))

うーーーーーん....
ネタ切れなら、いったん >>174 のいうように
定番 or 便利な package を紹介してみようか?
簡単な説明つきで。
>>278
それ、(・∀・)イイ!!!
280名無しさん@お腹いっぱい。:01/12/09 18:49
だれかdbskkd-cdbを使うときの.emacsを自慢してくれ
>>280
SKK スレから流れてきたな...
dbskkd は tcpserver で立ち上げてるから .emacs での立ち上げかたはようしらん。

(setq skk-server-host "xxx.server.com")
(setq skk-server-portnum 1178)

ってかんじ。
>>280
自分で dbskkd を立ち上げたらいいだけの話。
283名無さん:01/12/12 23:00
ネタふり。

(defun ordered-newline ()
"*加算して改行する。"
(interactive)
(let (prefix)
(save-excursion
(beginning-of-line)
(setq prefix
(and (re-search-forward "^\\(\\s-*\\)\\([0-9]+\\)\\." nil t)
(concat (buffer-substring (match-beginning 1) (match-end 1))
(1+ (string-to-int
(buffer-substring (match-beginning 2) (match-end 2))))
". "))))
(newline)
(and prefix (insert prefix))))

(global-set-key "\M-\C-m" 'ordered-newline )

1. ほげほげ[M-RET]
2. はげはげ[M-RET]
3. ふげふげ

1. うへうへ[M-RET]
2. もへもへ[M-RET]
3. むはむは
284名無さん@お腹いっぱい:01/12/12 23:12
今いる位置の関数の名前をモードラインに表示する。

(which-func-mode)

読み込み時のみスキャンするってのがちょっといけてない。
なんとかならんかなぁ。
>>283
をを、MS-Word みたいだ!(ワラ
286名無しさん@お腹いっぱい。:01/12/13 02:43
>>283
そういうインテリジェントな自動補完というのは
機能的に面白いし実装もそんなに難しくないけど,
実際どういうのが便利なのかというのを見極める点では難しいね.
作って本当に役に立つのかという所がある.
>>286
283 のをそのまま写すっつーのなら話は別だが、
これを元に自分色にそめるというのであれば、かなりいいものだと思うが。
自分が便利なようにすればいいだけだし。
288286:01/12/15 02:44
いや, 別に >>283 を批判した訳じゃないよ.
気を悪くしたらすまん >>283

MS word の補完がウザいといっている人がいたんで,
こういう自動補完的なものは
便利とおせっかいの境界線が難しいなと思って.
ac-mode いまさら入れてみた。便利でいいね。
ただ補完する時 *Message* にどんどん溜ってしまうのは
個人的に嫌なので
ac-display-completion-list を
- (message comp-str))))
+ (if (fboundp 'lmessage)
+ (lmessage 'no-log comp-str)
+ (let ((message-log-max nil))
+ (message comp-str))))))

としてみた。あと ac-display-completions-p は変数なので
ac-display-completions-flag のほうが適切じゃないかなぁ??
# indent が変だね。この人のコード。
>>289
うーん、変数名のtypoとか、
なんとなーくもうどうでもいいや感がただよってる気がする。

もっと突き詰めて便利にしてほしいなあ。
自分でやれっていうな!
291名無しさん@お腹いっぱい。:01/12/24 15:06
>>225
major-mode って変数あるみたいですよ。
mode-name よりいいかも。
ガイシュツカモシランガ、対応する括弧へ飛ぶ設定
シチメンドクサイ事をしてるがヨクヨク考えたらauto-loadを使う
方がヨホドスマートダナ…ウツダ…
(define-key c-z1-map [?\C-5] (lambda () (interactive)
(require 'vi)
(let ((vifmp
(lambda ()(interactive)
(when (eq 0 (string-match
"\\s)"
(buffer-substring
(1- (point))
(1+ (point)))))
(backward-char))
(call-interactively
'vi-find-matching-paren))))
(define-key c-z1-map [?\C-5] vifmp)
(funcall vifmp))))
global-set-key で (lambda () (interactive)...) するのが面倒臭い人向け。
(defmacro my-global-set-key (key &rest body)
`(global-set-key ,key
(lambda ()
(interactive)
,@body)))
>>293
,@
ってカキカタシラナンダ
イママデ append ツカテタヨ… ウツダ…
>>292

ツッコミどころは多々あるが、

まず、なんでこんなわけのわからんことをしているのかという
あたりから頼む……
;;ライブラリネタはどっちのスレがいいかな?
read-library.el と find-library.el ってのを知った。
なんで今迄使ってなかったのだろうと泣けるぐらい便利。
ちなみに read-library.el は load-path にあるけど
存在しないディレクトリがあるとエラーになるので
(directory-files ...) を
(condition-case nil
(directory-files ...)
(error))
で囲った。
297名無さん@お腹いっぱい:01/12/29 17:02
>>296
どういうライブラリ?

lib-complete っていうのは使ってるけど。
load-library とか locate-file とか read-library とか
補完してくれるようになるやつ。
298296:01/12/29 18:44
>>297
XEmacs にはそんなのがあったのか。
同じようなのですね。ただ、俺の環境では read-library-name
が Wrong number of arguments といわれて動かんかったが...。
find-library は lib-complete のほうが賢いみたい。
ちなみに find-library.el も
(concat library "<" count ">") の count を
(number-to-string count) しないと Emacs21 で動かんかった。
299名無しさん@Emacs:01/12/30 03:02
ibuffer.el とても(・∀・)イイ!!
ふつーの dired だと、directory-abbrev-alist が設定してないと
パスが長い。でもこれを設定するには symlink 作ってないと不都合が。
これを独自の ibuffer-directory-abbrev-alist って変数で指定するので
おっけーだし、dired なバッファの行で C-xC-f するとそのディレクトリが
デフォルトになったり。もう普通の list-buffers はステステ。
300名無しさん@Emacs:02/01/05 22:40
XEmacsのminibufferでの/の挙動が好きなので移植したやつ
~もあるけどすぐ出来るでしょ
(defun minibuffer-electric-separator ()
(interactive)
(let ((c last-command-char))
(and (eq c directory-sep-char)
(eq c (char-before (point)))
(not (save-excursion
(goto-char (point-at-bol))
(and (looking-at "/.+:~?[^/]*/.+")
(re-search-forward "^/.+:~?[^/]*" nil t)
(progn
(delete-region (point) (point-max))
t))))
(not (save-excursion
(goto-char (point-at-bol))
(and (looking-at ".+://[^/]*/.+")
(re-search-forward "^.+:/" nil t)
(progn
(delete-region (point) (point-max))
t))))
(not (eq (point) (1+ (point-at-bol))))
(or (not (eq ?: (char-after (- (point) 2))))
(eq ?/ (char-after (point-at-bol))))
(delete-region (point-at-bol) (point)))
(insert c)))
(define-key minibuffer-local-completion-map
(vector directory-sep-char) 'minibuffer-electric-separator)
301名無しさん@お腹いっぱい。:02/01/07 04:05
あまりキーバインドをいじりすぎると人のマシンが触れなくなってしまう。
302名無しさん@お腹いっぱい。:02/01/07 08:54
すんません。XEmacsでバッファタブを最初から消しておくには
どのように .emacs に書けばいいのでしょうか?

Options > Display > Buffers tab visible

で消せるやつです。
303名無しさん@お腹いっぱい。:02/01/07 09:01
>>302
(setq gutter-buffers-tab-visible-p nil)
(setq gutter-buffers-tab-enabled nil)
かな。
>>303
ありがとうございます。

ていうか、このテの設定方法って、どこでどうやったら分かるんでしょうか?
googleとかでそれなりに検索してみたんですけど、
全然分かりませんでした。

マニュアルはマニュアルでまたよく分からない(&長い)し。
305303:02/01/07 11:38
>>304
俺がこういうときにいつもやる方法はとりあえず
M-x customize RET して M-i を押す。
そうすると completions buffer が出るからその
バッファで関係ありそうだなーってやつを search
して(この例だと tab) なんかして中身見てみる。

んで、M-x hyper-aprops (デフォルトの key bind
だと多分 C-h a) してこの例だと先の customize
で buffers-tab がキーになりそうな感じなので
そのまま buffers-tab と打つ。

すると変数と関数が出るからつらつら見てみる。
もちろん aprops を先にやったり customize だけ
のときもあったりバラバラだけど。

# しかし俺もこれが正しい方法(効率的な方法)か
# どうかはわからない。
というか、今回の tab は、メニューのオプション
から設定も保存もできますな。
まぁ、ふつー apropos ってのは覚えとくといいけど。
307名無しさん@お腹いっぱい。:02/01/07 13:09
どーやら、XEmacsとかはカスタマイズ変数を M-x customize-apropos で検索
出来るようなので、これで探すのが常道なんかなーと思ってた。
一番効率的な方法って、なんなんだろね(ウェブ検索以外)。
308名無しさん@XEmacs:02/01/08 01:13
M-x describe-variable
TAB
C-s それっぽい文字列
309mami:02/01/08 12:07
PrintScreen で debug-on-error を toggle
別なキーでもいいんだけど。

(defun toggle-debug-on-error ()
(interactive)
(let ((prev debug-on-error))
(setq debug-on-error (not debug-on-error))
(message "debug-on-error: %s -> %s" prev debug-on-error)))
(define-key global-map [print] 'toggle-debug-on-error)
310名無さん@お腹いっぱい:02/01/08 12:58
>>309
あれ? toggle-debug-on-error って最初っから存在してるような。
当方 Emacs 20.7 でおます。
無い環境があるのかな?
311タカノ:02/01/08 13:33
>>309
minor-modeとしてmodelineに表示が出るようにしてみた
変数名とかcoding standard的には邪道だけど、どうよ?

(defun toggle-debug-on-error ()
(interactive)
(let ((prev debug-on-error))
(setq debug-on-error (not debug-on-error))
(or (assq 'debug-on-error minor-mode-alist)
(setq minor-mode-alist
(cons (list 'debug-on-error " ErrDEBUG") minor-mode-alist)))))
>>311
そのたび minor-mode-alist 見に逝く必要ないんじゃない?
こんな感じでどうよ。

(add-to-list 'minor-mode-alist '(debug-on-error " (゚д゚)"))
(defun my-toggle-debug-on-error ()
(interactive)
(setq debug-on-error (not debug-on-error))
(force-mode-line-update))
313名無しさん@お腹いっぱい。:02/01/08 14:46
スクロールするとき一気に半ページ飛ぶと目が疲れるので
(setq scroll-step 1) ;; scroll-conservatively との違いはなんだろう?
としてみいます。
連続してスクロールさせていると、何故かたまに半ページ飛びますが。
どうでもいいことですがMeadowで東雲フォント使って一行スクロールすると遅
く(?)なるので半ページごとにしてます(鬱
>>313
僕の経験では font-lock とかで
scroll が重い時に飛ぶようです.
316mami:02/01/09 01:48
>>310
こっちの XEmacs21.1 だとなかったです。

>>311
ウマ-
317mami:02/01/09 01:48
>>312
ウマ-
>>312
(゚д゚)ウマー
319名無さん@お腹いっぱい:02/01/09 18:31
>>312
うーん?
force-mode-line-update って要らなくないか?
Emacs21 だと違うのかね。
>>319
なくても大丈夫。
あとで読んだ時、あーこの関数は mode-line を更新するのかと
わかるよう、明示的に書いてる。
というか、
(add-to-list 'minor-mode-alist '(debug-on-error " (゚д゚)"))
するだけで普通の toggle-debug-on-error でモードライン表示出来るようになるのに
わざわざ my-toggle-debug-on-error なんて作らんでもって気もするのだー。

>あとで読んだ時、あーこの関数は mode-line を更新するのかと
>わかるよう、明示的に書いてる。
add-to-list のとこにコメントでも書いておけばいいんでないの?
その為だけに無駄な操作いれるのはどうかと。
最適化とかしてくれるわけじゃないんだから。

どうでもいいので sage
322名無しさん@Emacs:02/01/11 13:21
対応する括弧に飛ぶやつ。(・∀・)イイ!!

(global-set-key "%" 'match-paren)
(defun match-paren (arg)
"Go to the matching parenthesis if on parenthesis otherwise insert %."
(interactive "p")
(cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
((looking-at "\\s\)") (forward-char 1) (backward-list 1))
(t (self-insert-command (or arg 1)))))
でも丸括弧だけだね…
matching-paren を使えばもっと楽にいいのができるよ.
え…でもコピペだから…
丸括弧以外にも飛ぶように改造するくらいはできるかもなぁ。
勉強します。
326タカノ:02/01/11 19:02
match-parenより{forward,backward}-listの方が楽じゃね?
ttp://flex.ee.uec.ac.jp/texi/faq-jp/faq-jp_130.html
なんてのを見たりしてな
"\\s\("はsyntax regexpだから、(),[],{}どころか
()「」『』でもいけちゃうぜ
>>326
いいね。
mic-paren に合わせてみた。きたないけど。
bobp がなかったらごめん。

(global-set-key "%" 'my-match-paren)
(defun my-match-paren (arg)
"Go to the matching parenthesis if on parenthesis otherwise insert %."
(interactive "p")
(if (looking-at "\\s\(")
(forward-list 1)
(if (bobp)
(self-insert-command (or arg 1))
(backward-char 1)
(if (looking-at "\\s\)")
(progn (forward-char 1) (backward-list 1))
(forward-char 1)
(self-insert-command (or arg 1))))))
328名無さん@お腹いっぱい:02/01/13 04:26
copyright なんて関数があったよ。
んだけんちょも、copyright-update が上手く動かない。
うーん。

Copyright (C) 1999-2001 by 名無しさん@お腹いっぱい

Copyright (C) 2002 by 名無しさん@お腹いっぱい

ってやってくれる関数じゃないのか...?
329名無しさん@お腹いっぱい。:02/01/13 14:24
>>322-327
(・∀・)イイ!!

でもちょっとviっぽく動くところがなんとなくいやなので手直ししてみた...
C-(,C-)両方に割り当てることもないのだけれど。
その辺はほら、何となくイメージ的に。

;; C-(, C-)で対応括弧にジャンプ
(defun my-match-paren (arg)
"Go to the matching parenthesis if on parenthesis otherwise insert %."
(interactive "p")
(if (looking-at "\\s\(")
(forward-list 1)
(if (bobp)
'nil
(backward-char 1)
(if (looking-at "\\s\)")
(progn (forward-char 1) (backward-list 1))
(forward-char 1)
'nil))))
(global-set-key [?\C-\(] 'my-match-paren)
(global-set-key [?\C-\)] 'my-match-paren)
あげ足とりのようで申し訳ないが、キーバインド変えたなら
>"Go to the matching parenthesis if on parenthesis otherwise insert%."
これはちょっと違うような。
>>329
それが C-M-n、C-M-p とどう違うのかと小一時間問いつめたい。
332名無しさん@お腹いっぱい。:02/01/13 14:42
>330
あらほんと。スマソ。
333329:02/01/13 15:17
>>331
連打したら戻れるとか...?
いや、スマソ
C-M-n C-M-p なんてあるんだぁ。こっちの方が便利だな。勉強になった。
335名無しさん@お腹いっぱい。:02/01/13 18:02
>>334
括弧がらみなら C-M-d, C-M-u あたりも便利だろう。
ついでに関数(0桁目の開き括弧)の頭とケツに飛べる C-M-a, C-M-e も覚えておくといいかもしれぬ。
C-M-n, C-M-p と似た動作の C-M-f, C-M-b もあるが、オレは C-M-n の方をよく使う。

要ハサミだ。61!
336名無しさん@お腹いっぱい。:02/01/14 02:11
C-M-f, b は S 式を動くんで文字列とかにも使えて
便利だ YO!
C-M-n, p とは適材適所で使い分ける.
age
vi の I みたいなのってない?
>>338
C-a じゃだめ?
対応する括弧にとぶやつって閉じ括弧の場合はカーソルが括弧の1個後ろに行
くから(・∀・)イイ!!ですね。vi だったら括弧の上にきた方がいいだろうけど。

# { とか } の場合はだめなのかなと思ったけど c-mode にしたらいいんです
ね。
341338:02/01/16 11:56
>>339
う〜ん、行頭のスペース以外の文字のところに飛んでくれるのがあったら便利かなぁと。
342名無しさん@お腹いっぱい。:02/01/16 12:32
>>338
M-m back-to-indentation
343338:02/01/16 12:48
おーできた。ありがとうございます。
ますます Emacs マンセー になりました(w
344名無さん@お腹いっぱい:02/01/16 13:34
>>342
そんなのがあったなんて....
こんなんしらんだろ?
みたいなマイナーな標準でバインドされてるコマンド列挙するのも楽しいかもね。
M-x describe-bindings 見て全部試してみるの大変だしね…
C-x @ c で CTRL のかわりとか初めてしった...
C-x @ m で Meta っすね。スゲーけど使いどころがナイ!
347名無さん@お腹いっぱい:02/01/16 14:29
M-C-w で append-next-kill だそうな。
次に kill したものを kill-ring の内容と置き変えせずに追加だって。
これまたすぐ忘れそうなコマンドだなぁ。
>>346
>C-x @ c で CTRL のかわりとか初めてしった...

はじめの C-x はどうやって入力するのかと小一時間問い詰めたい。
スーパーとかハイパーもそれ系でいけるのね。
てゆーか、変換キーをハイパーにしちゃおうかなぁ。
スーパーとかハイパーって何?どう使うんすか?
俺はスペースの両隣 Alt(Meta) にしてる。
351349:02/01/16 16:53
>>350
メタとかとおんなじ。
いわゆる「もでふぁいあきー」って奴です。

んで、質問。
Meadow で 変換キーを super にするのってどうするんでしょ?
無変換は http://www.ysnb.net/meadow/meadow-users-jp/1999/msg00859.html を見て
(w32-set-modifier-key 29 'super)
でいいってのはわかったんですけど。
352350:02/01/16 16:58
俺は窓使いの憂鬱でやってるから…分からんです。
353タカノ:02/01/16 18:09
>>351
> Meadow で 変換キーを super にするのってどうするんでしょ?
おそらく(w32-set-modifier-key "convert" 'super)だ。実験できないので自信はない。
そう思う理由はmw32term.cのw32_set_modifier_key、
およびkeyboard.cのlispy_function_keysだ。
無変換も、29なんかでなく"noconvert"に変更した方がいいかもしれない。

# ギコ猫旅団に入団したい。
# 問題は、固定ピッチフォントしか使っていないからAscii Artが描けないこと。
354349:02/01/16 18:41
>>353
w32-set-modifier-key() の KEY って文字列でもいいんですね。
でも、"noconvert" はいけたけど "convert" はだめだった。
変換キーを押すと kanji が送られている模様。
でも "kanji" で設定しようとしても失敗する。

;; (´-`).。oO(ギコ猫旅団ってなんだろう?)
355名無しさん@お腹いっぱい。:02/01/16 21:14
で結局おまいらの.emacsはどんなんだお
356名無しさん@お腹いっぱい。:02/01/16 22:38
(require 'initz)
(add-hook 'after-init-hook 'initz-startup)
CVS管理したいけど$HOME直下は入れにくいから
~/.emacs.elは
(load "~/.initz/dot-emacs.el")
だけでdot-emacs.elをCVS管理に入れてる。
俺は~/.emacs.dだな。その下にinit.el,custom.el,history,site-lisp/がある感じで。
359タカノ:02/01/17 00:06
僕はetc/にして、shellなんかのdotfileも全部まとめて。
.initzてなんれすか
361名無しさん@お腹いっぱい。:02/01/17 01:08
362名無しさん@お腹いっぱい。:02/01/17 01:15
最近日刊ヴァージョンアップって勢い?
initz-list はもっとこなれたら便利になるような予感。
そして歴史は繰り返される、、、
そして時は動きだす、、、
;; trr でタイピングを極めよう ^^;;
(autoload 'trr "/home/giko/elisp/trr/trr" nil t)

;; 引数付きだと fontify する
(defun my-recenter-or-fontify (arg)
(interactive "P")
(when arg
(font-lock-fontify-buffer))
(recenter arg))
(define-key global-map "\C-l" 'my-recenter-or-fontify)

;; 基本は elisp
(setq default-major-mode 'emacs-lisp-mode)
(setq initial-major-mode 'emacs-lisp-mode)

;; 簡単な debug (edebug のほうが遥に便利だけどね)
(defun debug-message (label sex)
(let ((mes (concat label ":" (prin1-to-string sex))))
(read-string mes nil t)))
trr ウィソ だと文字化けした YO!!
>>366
文字化けしないでつかえているYO!!
(defun occur-at-point()
"point のある位置の単語を occur にかける"
(interactive)
(occur (thing-at-point 'word)))
369名無さん@お腹いっぱい:02/02/02 00:07
>>368
occur を知らなかった。感謝。
C-M-a, C-M-eって、()にも{}にも反応しちゃうんだね。
しょうがないから、Cソースで行頭の{}だけに飛ぶ関数を作ったよ。

↓関係ないけど、最近知ったのでコピペ。
;; 行頭に #!/usr/local/bin/ruby とか書いてあるとそのモードになる。
(setq interpreter-mode-alist
`(
("ruby" . ruby-mode)
,@interpreter-mode-alist))
>>370
ふつー add-to-list とか cons とか append するけど
backquote とか利用する人初めてみたYO!
>>371を見て>>370の意味がわかったYO!
でも @ の意味がちょいとよくわかんない。
リストを展開するのかな。
373名無さん@お腹いっぱい:02/02/05 10:26
でも、lisp 的には cons とか append が美しいと思うんだがね。
374370:02/02/05 12:59
>>373
我流で書いているのですが、そんなに一般的ではなかったのかな?
Cプログラマ的には、短くかけるとチョイ幸せ。(^。^)
375名無しさん@お腹いっぱい。:02/02/05 13:38
短くないじゃん > Cプルグラマ

(push '("ruby" . ruby-mode) interpreter-mode-alist)
プログラムなんてみんなほとんど我流では?
というか本読んだり人のソース読んだりして勉強するから自然とみんなと同じ
ような書き方になっていくはず…違うかな。
>>372
M-x describe-function [RET] backquote [RET]
例文つき
(defun trim-region (start end)
"リージョン中の行末の無駄な空白を消去"
(interactive "r")
(save-excursion
(save-restriction
(narrow-to-region start end)
(goto-char start)
(replace-regexp "[ \t]+$" ""))))

(defun trim-eob ()
"バッファの最後に溜った空行を消去"
(interactive)
(save-excursion
(progn
(goto-char (point-max))
(delete-blank-lines)
nil)))

(defun trim-buffer ()
"バッファ中の行末の無駄な空白を消去"
(interactive)
(save-excursion
(mark-whole-buffer)
(trim-region (region-beginning) (region-end))))

;; I don't use timestamp.el... I don't know why:)
(defun set-lastmodified-tag ()
"Last Modified: という文字列を見付けると新しい日付を挿入する"
(interactive)
(let ((tostr (concat "Last Modified: " (current-time-string) ".")))
(save-excursion
(goto-char (point-min))
(while (re-search-forward
"\\Last Modified:\\([A-Za-z0-9: ]*\\)?\\." nil t)
(replace-match tostr nil t)))))
>>378
すなおに、これじゃダメかな?
;; Time Stamp の更新を有効にする
(if (not (memq 'time-stamp write-file-hooks))
(setq write-file-hooks
(cons 'time-stamp write-file-hooks)))
>>375
push は cl が必要だし、add-to-list のほうが、
既に member か check してるのでいいよ。

>>378
リージョン内だけ行末の空白を消そうって事はないなぁ。
M-x picture-mode, C-cC-c してる。
あと、俺は素直に timestamp 使ってるよ。
time-stamp-start とか変更して。たしかこのスレに
以前書いた気がする。
>>380
push は Emacs 21 で subr.el 入り。
add-to-list も push も alist に使うには微妙に使いづらくない?
>>381
お、subr 入りですが。help から辿ると cl のが
出てきたので...
> add-to-list も push も alist に使うには微妙に使いづらくない?
じゃあ、なにが便利でせう?
383名無さん@お腹いっぱい:02/02/06 05:24
空白の削除にpicture-mode 使うって発想はすごいなぁ。
ちょっと感動。
たしかに、素直に assocに新しい pairを入れるような
関数が標準でほしいな..

(defun assoc-add (alist-var key value)
 (let ((p (assoc key (symbol-value alist-var))))
   (if p
    (setcdr p value)
    (set alist-var (cons (cons key value) (symbol-value alist-var))))))
みたいな? もしかしてもうそんなのある?

>>384
APEL の alist.el
386名無さん@お腹いっぱい:02/02/06 07:55
APEL とか FLIM とか SEMI って
なんで Emacs の標準パッケージに組み込まれないんだろ?
>>380
trim-region は trim-buffer で使うための準備だとは思うんだけど。

下のは、プログラマー天国で公開されてるもの(おすすめ)
;;; 余分な空白を削除する
(defun trim-buffer ()
"Delete excess white space."
(interactive)
(save-excursion
;; 行末の空白を削除する
(goto-char (point-min))
(while (re-search-forward "[ \t]+$" nil t)
(replace-match "" nil nil))
;; ファイルの終わりにある空白行を削除する
(goto-char (point-max))
(delete-blank-lines)
;; タブに変換できる空白は変換する
(mark-whole-buffer)
(tabify (region-beginning) (region-end))
))
font-lock-mode使って、tabコードを表示させることはできますが、
ある特定のファイルだけで、tabコードを表示させることはできますか?
ファイルの最後とかに書くやり方で。
>>388
> font-lock-mode使って、tabコードを表示させることはできますが、
俺はこれを教えてほしい(w
>>389
blank-mode.el とか whitespace.el とか develock.el じゃなくてって事?
しかし、スレ違いだな。
>;; タブに変換できる空白は変換する
>(mark-whole-buffer)
>(tabify (region-beginning) (region-end))
>))

これって何げに便利じゃない?
目から鱗だよ。
tabify と untabify だけなら M-x からでも
できるよ.
393388:02/02/06 21:35
>>389
見づらくなるから、全角スペースを表示しか使っていません。
ttp://homepage1.nifty.com/blankspace/emacs/color.html

>>390
普段はtabを表示させる必要はありませんが、
Change-log Memo(先月のUNIX MAGAZINE参照)をする時に表示できたら、
便利かなと思ったわけです。
Makefile とかで tab が色付けされるから,
そういうのを作れば表示できるな.
>>386
> APEL とか FLIM とか SEMI って
> なんで Emacs の標準パッケージに組み込まれないんだろ?

ライセンスの問題?
396388:02/02/06 23:14
>>394
なるほど。そういえば Makefileは表示してますね。
ソース見てみます。
>>395
ぜんぶ GPL じゃん。
398名無さん@お腹いっぱい:02/02/07 09:40
もしかして、日本人開発者って煙たがられてる?
そんなことはないんじゃない?
400名無さん@お腹いっぱい:02/02/07 10:20
なんか、Mule の機能が完全に取り込まれなかったあたりとか
あんまり理解されてないように思えてしまう。
nemacs はともかく mule は非欧米圏の人に
そういう便利だと思うんだけど。
でも中国用の cemacs? とかあったな...
FLIM って、標準ライブラリや他のパッケージ (Gnus) のライブラリと名称が
バッティングするから欝。
とりあえず、smtpmail, mailcap, md5 とか。
関数名でも、mime-{encode/decode}-region なんてのがあったか。
まだ見ぬ Emacs21 には Gnus 5.9 が添付らしいだが。

煽る意図は皆無。
成果物自体とそれに携わった人には、敬意を払い、多いに感謝している。
403名無さん@お腹いっぱい:02/02/07 17:39
うーん。Emacs 標準の機能になるんだとしたら、
flim-smtpmail とか flim-mailcap って名前はかっこつかないよね。

Gnus もそんな一般的な名前つけるなよーって気もしないでもない。
>>403
> Gnus もそんな一般的な名前つけるなよーって気もしないでもない。
FLIM にも同じ事が言えると思うんだけど。
Gnus は Emacs の標準の機能になっちゃってるから、FLIM を入れると Gnus
が動かなくなるってのはかなり印象悪い。
405名無しさん@お腹いっぱい。:02/02/07 21:14
mule って日本以外ではあんまり使われてなかったんでしょ?
(/.-J のある投稿によると)
Emacs-2[01] が Mule だと言えばそうだろうし、そうでないと
言えばそうでない。
>>397
この件についてはどうだかしらないけど、
Emacs に入れるなら GPL であるだけじゃだめで、
assignment を出す必要ありです。
tamago が困ってるのはそれですよね。
>>404
Gnus 使ってないからよくわからないんだけど、
Gnus の内部の機能って他でも使われてるんですか?
内部でしか使われないんだったら
gnus-* ってプリフィックス付けるべきじゃないのかなぁ。
tramp が使ってたような気がする
パッケージの機構がが欲しいね。
スレ違いなので sage。
411名無さん@お腹いっぱい:02/02/08 11:51
>>410
名前空間の分離という意味でのパッケージ機構?
それとも XEmacs でやってるみたいなパッケージ機構?

まあ、そうスレ違いでもないんじゃない?
名前が被るのは .emacs.el を設定するうえでも困ることだし。

最近 psgml と xml.el、dom.el の一部が被って困ってる。

luna とか eieio 使うようになればこういう問題はなくなるのかな。
でもこんどは識別用の名前が被ったりして。
>>411
名前空間の分離の意味でのパッケージ機構です。

> でもこんどは識別用の名前が被ったりして。
それは確かに(w
でも、とりあえず一段階の名前空間の分離があれば現実的に大丈夫ですよね。

TRR は全部 TRR:: ってプリフィックスをつけていて好感が持てました。
どんなに基本的な関数であっても
もともと emacs にないものは
一般的過ぎる名前は付けて欲しくないな。
例えば string-reverse とか。
414名無さん@お腹いっぱい:02/02/08 16:45
>>413
APEL はどう?

C でいう static な関数定義出来るといいよね。

プリフィックスはコロン二つがいいのかな?
当方 hogehoge-* って感じでハイフン一つでやってるけど。
415名無しさん@Meadow:02/02/08 19:32
;; キー入力をしたらマウスカーソルを消す
(setq w32-hide-mouse-on-key t)

が効かないようなので代わりに何かないか探してたら,mouse-avoidance-mode
なんてのがあった。おもろいね、これ。
あ、効かないっていうのは Emacs21 での話です。
>>415
おもろいね。'proteus にして、picture-mode でおいかけてみました(w
418名無しさん@お腹いっぱい。:02/02/11 09:50
;; run functions from the~/local/lib/emacs.d directory
;; Files in this directory ending with ".el" are run on startup

(let (list)
(setq list (directory-files "~/local/lib/emacs.d" t "\\.el$"))
(while list
(load-file (car list))
(setq list (cdr list))
)
)

設定ファイルのあるディレクトリから自動読み込み
(Emacs のsite-lisp からパクッている)
ファイルを入れるだけでOK
いらないのはファイルを消すだけでいいので、管理が楽
>>418
似たようなのを最近作ったので、コピペします。
elisp-directory以下のディレクトリにパスを通します。
直下のディレクトリじゃないと駄目なのが...(ToT)
ツッコミあったらお願いします。

(defvar elisp-directory (expand-file-name "~/lib/elisp")
"*自分の elisp-functionを入れておくディレクトリ")

;; elisp-directoryとその直下のディレクトリにパスを通す。
(mapcar
(lambda (arg)
(if (file-directory-p arg)
(setq load-path (cons (expand-file-name arg) load-path))))
;; 実質、記号を含まないディレクトリと"."を抽出している。
(directory-files elisp-directory t "\\(^\\.$\\|^[a-z0-9]+$\\)"))

そーいえば俺は load-path や Info-directory-list に
$HOME 以下を追加する時も expand-file-name してないけど
old emacsen はダメだったのだろうか?
421名無さん@お腹いっぱい:02/02/11 23:10
>>418,419

それって >>55 で既出ですね。
結構需要あるってことか。
422419:02/02/11 23:30
>>421
ツッコミありがとうございます。
でも、directory-files()の使い方とか
微妙に違っていて面白いともいえる...かな?

ところで、Emacs21で load-pathを *scratch*バッファで評価すると、
リストの終端が ...)のように省略されるのをやめる方法はありませんか?
C-mで適当に改行すれば見えるようになりますが、けっこうウザイんで。
>>422
既出
(setq eval-expression-print-level nil
eval-expression-print-length nil
eval-expression-debug-on-error nil)
424419:02/02/12 12:41
>>423
また既出ですか...。すみません。(;´_`;)
425418:02/02/16 10:41
>>421
>それって >>55 で既出ですね。

ちょっと違いますよ。
問答無用で実行しています。
426名無しさん@お腹いっぱい。:02/02/16 22:45
少々やりすぎの感も否めないが、こんなのどうですか?

(defun set-aurora-tab-width (num &optional local)
"タブ幅をセットします。
タブ5とかタブ20も設定できたりします。
localが non-nilの場合は、カレントバッファでのみ有効になります。"
(interactive "nTab Width: ")
(when local
(make-local-variable 'tab-width)
(make-local-variable 'tab-stop-list))
(setq tab-width num)
(setq tab-stop-list ())
(while (< num 256)
(setq tab-stop-list (append tab-stop-list (list num)))
(setq num (+ num tab-width)))
(if local (redraw-display)))

;; general tab stops
(setq default-tab-width 8)
(set-aurora-tab-width 8)

;; custom of the C-q ? key
(defvar ctl-q-map (make-keymap))
(define-key global-map "\C-q" ctl-q-map)
(define-key ctl-q-map "2" (lambda () (interactive) (set-aurora-tab-width 2 t)))
(define-key ctl-q-map "4" (lambda () (interactive) (set-aurora-tab-width 4 t)))
(define-key ctl-q-map "8" (lambda () (interactive) (set-aurora-tab-width 8 t)))
427名無しさん@お腹いっぱい。:02/02/16 23:14
(load-liblary "CUA-mode")
(CUA-mode t)

Windowsライクに、シフト+カーソルで領域選択、選択時にCtrl+xで
カット、Ctrl+cでコピー、さらにCtrl+vでペースト。
C-xやC-cのプレフィクスと共存できるため、変態的なキーバインドが
出来上がるという危険も伴う、諸刃の剣。素人にしかお薦めできない。
>>427
M-x pc-selection-modeの高機能版ってところですか?
429名無しさん@お腹いっぱい。:02/02/16 23:24
>>428
そういうこと。知らない間にバージョンアップしてるみたいね。
http://www.cua.dk/emacs.html
>>429
ネタにはなるけど、使わないだろうなあ。。。
>>427
> 素人にしかお薦めできない。
ワラタ
432名無しさん@XEmacs:02/02/21 14:08
198 の google検索でカーソルの近くの単語を検索

(require 'lookup)
(defun google-current-word ()
(interactive)
(let ((str (lookup-current-word)))
(browse-url
(concat
"http://www.google.com/search?q="
(replace-in-string (google-encoding str) " +" "+")
"&hl=ja&lr=lang_ja"))))

lookup の lookup-current-word を使ってるだけです
433名無しさん@XEmacs:02/02/21 14:36
こっちの方がいい
lookup の lookup-pattern-input を使って google を引く。

(defun google2 (str &optional module)
(interactive (lookup-pattern-input))
(browse-url
(concat
"http://www.google.com/search?q="
(replace-in-string (google-encoding str) " +" "+")
"&hl=ja&lr=lang_ja")))

検索は楽チンで ウマー
でもこれだと検索語の要求の prompt に lookup とでてしまって マズー
434432 433:02/02/21 14:51
この検索語入力のときに Lookup とでちゃうの変更するのどうすんのかな
lookup を読んでもよくわからん
なにしろ elisp なんて全然分からん

この調子で yahoo, amazon, 2ch検索, ... だれか作っちゃってくれないかな
C-c C-a で amazon検索, C-c C-2 で 2ch検索とか
435名無しさん@お腹いっぱい。:02/02/22 03:57
;; Emacsスレは激しくレベル低下してるし、こっちに書くか…。
shell-command-on-region って便利だけど、俺はリージョンより
バッファ全体に適用する事が多くて、C-x h でカーソルが
動いてしまうのが嫌なので。

;; C-u 付けて置換しなければカーソルが動かない
(defun shell-command-on-buffer (command
&optional output-buffer replace error-buffer)
;; そのまま shell-command.el のアドバイス内容を埋め込んでもいいけど
(interactive (let (string)
(setq string (read-from-minibuffer "Shell command on buffer: "
nil nil nil
'shell-command-history))
(list string
current-prefix-arg
current-prefix-arg
shell-command-default-error-buffer)))
(shell-command-on-region (point-min) (point-max)
command
output-buffer
replace
error-buffer))

;; current-load-list を nil に束縛してるのは何故
(let (current-load-list)
(defadvice shell-command-on-buffer
(before shell-command-on-region-with-completion activate compile)
(interactive
(list (shell-command-read-minibuffer shell-command-on-region-prompt
default-directory
nil nil nil 'shell-command-history)
current-prefix-arg
current-prefix-arg
shell-command-default-error-buffer))))

土屋さんの shell-command.el を利用してるんだけど、
これで current-load-list を nil にしてるのは何故でしょう?
いろいろ探ってみたけどサッパリ分りません。
>>434
read-stringでいいんじゃネーノ。
ついでにデフォルトを編集できるように。

(defun google2 (str)
(interactive (list (read-string "Google search: " (lookup-current-word))))
(browse-url
(concat
"http://www.google.com/search?q="
(my-replace-in-string (google-encoding str) " +" "+")
"&hl=ja&lr=lang_ja")))
437432 433:02/02/23 02:39
>>436
感謝!!

ところで my-replace-in-string って何 ?
ひょっとして何かすごいやつ ?
ああああ (狼狽
XEmacsにあるreplace-in-stringと同じやつです。
Emacs 20 には無いんで、自分で定義してるだけです。
いわゆる消し忘れってやつです、ハイ。
439432 433:02/02/23 03:35
; Super-j でカーソルの近くの url を開く
(define-key global-map [(super j)] 'browse-url-at-point)

これだけで凄く便利になった

; Super-g でカーソル近くの keyword を google で検索
(defun google (str option)
(browse-url
(concat
"http://www.google.com/search?q="
(replace-in-string (google-encoding str) " +" "+")
"&num=100"
option
)))

(defun google-ja (str &optional module)
(interactive (list (read-string "Google search: " (lookup-current-word))))
(google str "&hl=ja&lr=lang_ja"))
(defun google-all (str &optional module)
(interactive (list (read-string "Google search: " (lookup-current-word))))
(google str ""))
(define-key global-map [(super g)] 'google-all)


ところで google は get でいけるからこれでよいが、post しかないサイトの場合
どうしたものでしょう。
とりあえず amazon を検索したいのですが
440432 433:02/02/23 03:40
最近 mozilla を使いはじめたのだが、いろいろ良いところもあるが
いかんせん重い。 上のような調子でどんどん emacs から遠隔操作する方が
正しいような気がしてきた。
そうすれば mozilla の tab なんていらないんじゃないか。
bookmark も全部 emacs でやった方が早いんじゃないか。

そういうわけで
「俺はこんなリモコンしてるよ」
っていうのを自慢して下さい
441432 433:02/02/23 03:42
しかし考えてみると、どうやって bookmark をつけるときの url を emacs に戻すのだ?
そういう切口が mozilla にあるのか?
bookmark.html を emacs から読めばいいんじゃないの?
443432 433:02/02/23 04:28
>>442
いやそうじゃなくて逆のはなし
netscape でみつけたページを emacs に戻す方のこと
>>439
> ; Super-g でカーソル近くの keyword を google で検索

便利そうなので.eamcsに書いてみたのですが
Google search: hogehoge
でエンターを押すと
google: Symbol's function definition is void: google-encoding
となってしまいます。
Emacs21 on FreeBSDなのですが原因分かりますか?
>>444 まんま、そのまんま。
446444:02/02/23 23:56
>>445
> >>444 まんま、そのまんま。

どうすれば動くのか教えてください。
>>446
google: Symbol's function definition is void: google-encoding
となってるのだから、google-encoding というシンボルに
対応する関数が定義されてないってこと。
即ち、あなたは google-encoding を defun してないって事ね。
で、この関数定義はずいぶん前にこのスレに出ていたけど。
# もう解決してるかもしれけど、ねんのためね。
448444:02/02/24 11:00
>>447
> で、この関数定義はずいぶん前にこのスレに出ていたけど。

すいません。何番のスレッドに書いてるのでしょうか?
>>448
自分で調べれ。
もしくは推察して書け。
ここは教えて君スレッドじゃねぇ。
450444:02/02/24 11:49
>>449

すいません。教えて君禁止と書いてなかったのでつい。
google-encodingだから>>198だと思って>>198>>439
を書いてみたのですがSuper-jで
read-string: Symbol's function definition is void: lookup-current-word1
こなってしまい困ってるところです。
451444:02/02/24 11:50
あ、Super-gの間違いだ。
452432 433:02/02/24 13:21
>>450
それは lookup の関数です。
これらは lookup に依存しているので、何か適当に lookup を入れて下さい。
lookup は emacs でいろいろな辞書を見るための package です。
本当はこんなことは lookup を使わなければならないことではないはずなのですが
私が elisp を全然しらないので、それっぽい関数を見つけてきて間に合わせている
ということです。
453444:02/02/24 13:44
>>452
おかしいですね。
lookupならすでに使っているのですが。
>>444 新手の荒しですか?
455名無しさん@お腹いっぱい。:02/02/24 14:12
つーか、google の完全版書いてよ。
456444:02/02/24 14:15
>>454
他の方がどう感じたかはわかりませんが自分では荒らすつもりはないです。
>>456
> >>454
> 他の方がどう感じたかはわかりませんが自分では荒らすつもりはないです。

コンビニでマガジンを立ち読みしてたりしないか?
458名無しさん@お腹いっぱい。:02/02/24 18:19
>>438
お前コテハンで目立つかもしれんが、うざい。
459432 433:02/02/24 18:22
>>455
完全版って、単に 198 の google の代わりを書いただけ。
その中で lookup の関数を間に合わせで使っているということ。

444 は FreeBSD で emacs 21 ということだが lookup は package か?
load-path とかはどうなってる?
>>458
navi2ch のデフォルトの名前だよ。
461432 433:02/02/24 18:24
458 はどういう意味? わけ分からん
>>460
どうりでトッポイとオモタ
463432 433:02/02/24 18:28
あ、そうか分かった。
(require 'lookup)
を前に付けて下さい。
つけなっくても先に M-x lookup で lookup を一度起動してから
上の関数を eval すれば大丈夫だと思います。
>>461
この板のという意味か
465432 433:02/02/24 18:30
と書いてから思ったのだが、私は xemacs しか使ってないので emacs 21 では
どうなのか良く分からん。どうなんですか?
466444:02/02/24 18:41
>>465
さっきのlookup関係はおさっしの通りでした。
しかし、今度は
google: Symbol's function definition is void: replace-in-string
と出てしまった。そうすると>>436あたりが関係してくるのかな。

>>455みたいに思うのは誰かが書いてそれを他の人が書いて……
ってやっていくと、僕のような初心者はどれが完成したものなのか
分からなくなってしまうのではないでしょうか。
467432 433:02/02/24 19:02
>>466
436 438 によれば emacs 21 には replace-in-string がついていないようなので
それをなんとかしてとってくれば良いはず。
xemacs は subr.el に replace-in-string の定義がある。
これを xemacs の tarball から取り出して load-path の通っているところにおけば
いいんじゃないかなあ。
まあ、ひょっとするとそれがまた何かに依存しているかもしれないしけど。
何しろ emacs 21 を使ったことがないので分かりません。
私は何でも付いてきちゃって楽なので xemacs です。
>>444 おまえ、ちゃんとスレ読んでるか?
469444:02/02/24 21:11
>>468
はい、とても参考にさせてもらっています。
470444:02/02/24 21:13
あ、でも>>468の「ちゃんと」が僕の思っている「ちょんと」と同義だかは分かりません。
471432 433:02/02/24 22:03
何か非常に空気が悪くなってきているが困ったものだ。
444 さん、470 のようなレスは、もしあなたがもっと「勉強」したいのであれば
止めておいた方が良いと思います。このようなレスをあなたが続けるのであれば
私は消えます。

私も elisp は全然分からないので、誰かもうちょっと書いてくれんかというつもりで
たいしたことないことを書きこんでましたが。なんかないですか
472名無しさん@お腹いっぱい。:02/02/26 18:33
>>132のdmacro.elってXEmacs.21.1.14で動きますか?

ぐぐーるのEmacs part3スレのキャッシュを見るとXEmacs関連のパッチが
取り込まれたみたいなんだけど、肝心のパッチの部分がキャッシュされてないので
どういうものかよくわからんのです。

手元にあるdmacro.elのrevisionは1.12です。Dateが1995年になっているので
たぶんそのパッチは当ってないと思うのですが。
>>472
あれはベクトル有効にするだけで、XEmacs はまだ対応してなかったよ。残念。
ハックして >>472
474名無しさん@お腹いっぱい。:02/02/27 00:56
>>472,473
Emacs part3 スレで dmacro.el のパッチ書いたものです。

あの後作者の増井さんが Mailing list を作って、
そこである方が XEmacs でも使えるものを書いてくれました。
ただその後 ML が停滞してるんで、
元作者の web page には反映されてないようです。

その XEmacs でも使える dmacro を書いてくださった方は
この板にもいると思うんですが、
たぶん問題ないと思うんで、下に勝手に上げちゃいます。
ただ、まだ不完全な部分もあるかも。
475名無しさん@お腹いっぱい。:02/02/27 01:00
二つに分割するのでくっつけて。
begin 644 dmacro.el.gz
M'XL("/B,>SP``V1M86-R;RYE;`"M6=USTU86?R9_Q1U/*3)=TQC:V:64SLZT
MO.W3]G&W#XJM!!?'=B4E"W^.S%6::9QI2)IUC&,2DF`[3J/0+RBS6TIA2B$)
M[30PPTYG8?:<<W7U9=F&SJK8CJ1[?N?[=Z[44Z>&3IUB=&3'U8Q>/*;E68K9
ML];RU3N7?^9.=:9S@U>7K,9U]BI;7JM]#>L]D?3)DR?8&Z^GWV#N4=1S8[F"
MFF>YK*:RD0OLZK.Y^XVO6E7KJ5VU[UG+]DU/..;(C9?RVKA6,+4L"J^M[JQ=
MVUA=L9YNU.8KB_7YSMI/_<29KHWF"@304_<AL/E-=N+U$\-LO)C-C>9`U6A1
M9V?`>R-]LJ><I_>5]U13>PM=?_/U8<!)LW3ZK>&3\(^]XB_ZJS:9,W+%`BP\
MECY.=_"F'V.^8Y6K,WP7HKO(]_F>C+CSF,_PA\L6=RC^!]N-M0JO8N!A79WO
M(0I?X3]PQ[YI/[+G[(?V'=[B->MB,%_<P8SQ-F]PAV0/ZM\Z/_`:WR/9+40Y
M*HQ)G=,N'&6\5?]V8Q<7--<[GW/'NB&`T"SK)HBWM[\`V-NH"(7QX]SCT_RZ
M?1\B]$]>D;ZK(QGX1V:VF\^='9!:6?HQBC=O@:ZV50X&A"5`,,&X@V+"&X1Q
M/3H@CZJ\"3[M\P/RJFJ5T</JWOSG=M.>M6MVF^^$#?%LX1V^*^R'[Q6K'%B6
MU4;5D=]C,5]`4\ANP$#3$84P9"+:[<9Z"PV5B:EO@!W.YI-.1217.,*;+.%B
M'`@;A(6Q;I&]^-WEV0+\U^)W^=3<_K5;O3P(F(NJ"*02J,6F5>ZO-EZY+`M>
MY@_Y?;^BO5!46A\O7[+*;BWOBUJTRJ*,I)X\-'`Z>'(\>'(B>/*&:P'G4YZ]
M!W+!X3#2X1?"<O@#/L6W.E\WEOH507=T^FL[/$`?QE!4\M*/I&&%?\6WD`-J
M7S<K?(LE#K,$KVQLSJ^+!('+LY&@+[A@G46KU1#D0H9_8:_8C[F#H0=%#_@N
MNF+_&SZ;]FW[4_L1M-),<^[:)X(4-G87KU*3<4A/N[8-J=D#[#;45$OJ[$)P
MKNS7?N*B92D!"S/U'>22N<[5.=`*CA'&@>0*L@:T2`NN7=]9P?6;E>V;O`(%
MM$L^@39>"75<B^\LKUW^CF\)[X1&LA>Y:1U3!FND/O)HD0/B!OBS0E9"=\0F
M=95?$I(N)G!$A'01L>)'`5=(_S%JG6=;EB+J'8V(4T(PH"C)[\;'4)$G%,!V
MXQ.GCLPMB#G)M]KW^2W>1)CU2XU[5#CKE"NO%J@8K/\RY&OGGG]EJK-4_\UY
MO'[CLYHL&5G%Z_?!Z<\`!D@?.AN-M6Y`?W_`MQI\=1%54^0.J!J:_'M?FR>P
M9%U^B@N]G@<R?]?4\ZGW&6P#6(:=>?]=X)L65#E2)O5-XKTS?V'RDV4:&Z45
MJ!H@/=W1N*/HW&]\=FV!SV*+=-D0J_G`)W;>$J;'=7:\416/IZ'[K/(*P(C:
M(I78D2O2BDK8?KP79&:</"'%5!*N\J`WO7!"O;X5XX3HW4]%_6._-WZR:D!I
ME'[1G5@$H761Z(J"J7ZU^IP0]O@G"].-7_FLO"<'\F>W^9V%:?CMK`.WP(HN
M-$'M<M9.6]-\^N++?R1O3D]-VR_["=!L!VU%/R![7#"653ZGY0RM0-S2X9NX
MS\&."ML;U"]&#J!P44HR`]9-S($_8WLC^"@N[?>=UMV1BXM&=!0W+VUOBPIE
M("*$7_!;"$W!G_:+?T>B?#>@&8T/8$H*[+W/VBE#9T-U^JR\>36^3B77"7G:
M*#O(PMZ]T$;,H2;>W;)@V\;Y(_P0H3T4K14:-#AGB&<Z\\O2KVU[]<&U6S`9
M[D+]U,.L2QJ5=)(U+_$EU.J.W8HP:N,*CL'CUVZ1*7*""U;=$=M9[\D!U2"+
M61=#`[S2N;CR!`:C*[11`X"[8-J!O]XS!`_9>=8->)SXA>/A_D*,:<M$P0$_
M_15XQP.@796K.[`W7!'"\P?+/V"9@[`'*%=[$#W$'.=*YQFOS&_`/J4E`H^,
MAHYYHB&CA(_5:+B/)S'D[N9C"V+3A&#>AGQ>MLH4<=K=.H_?-MZ!RH$HTV[$
MO2AVZG3,[6\^"8Q2BK#B`_`*`+"W3?@`D%L,U:MN>U&H0J))I!6PXS*(R,<W
476名無しさん@お腹いっぱい。:02/02/27 01:01
ML;D#?H='.Q=-W/(Q*(7$[&T^2YHB.79!8%I#TA"@LEX7"WR0`=4`LT57,VH6
M?[K*H`Q*3XLE.'\NMT!_![2W/!37<ECD8U!709VCWN"0<EMS]?N-7;<E">:8
MAH_91+5;HKGPV;3Y'%L"SF"OYDDK,/\RQ8)AAA]4$W]_-V4F6$)T!^Z-D#@2
M21(9RQ='U'S*T$Q<'!8\XIYHY[6,6*U.F,5\4<V&;K&$.$FP0B[/S*1KC7PG
M0!LG]ZW`PI/EN?E?E[]D=L/^QF[;4_;'=GEI:O%^@[:OXZHQD?NS<;:4,?+'
MC+.J7CJ6*1[[L(2(0^C=I*J[+P12JJZK%U+FA9(V!)6=&P7C"EFFC!0G"MD2
M.T)12XVK'Q;UU*2FXXN%Y-`A2(GRSFD6<Y.E3R:30R)K1R:UC%G4V1'#U'.%
M,;SLNHC/?W>A]EN-!]O/L&I:_\+&6/[%N0-9(%@``A*\\B-D[.'F4@/?-.PP
M%Q!Z1E2:`*;-.3L++NA_8,8$_:AY$Y0T^)7G]2^!XSK?U9\1A7>@\J"RUA_-
M?6-=A-P-*:.0,R\/D/:,:KKV*W`&H5"TC[J#Y3G%C@@9$96>JX7EL'K279YT
M!2(&&!,CAO91Q(!1334G=`W2<9YB`S!BG8RTNURDKJ\!(0%7K&^N8]:#@@&9
MERMU[:.)G`[:,_G(K7@'3'%=1!;1O&H]ZKL$'84-DO"'-U8/Y#)N;2K=M5J\
M`G%EAA2(OA<P:->7R7W8I6#/1_V*Q"4/&5>4*%%$P]>G`&+20NNI?]'0$@/$
M7LMHZ;A:DOV9`8I0,Z:FITR@HDE\B=E76G$%E1Z"R6Y/X@,10`QU7O=]-Q!"
M\4#G\$"ZO`7/M&U[CSOUY\`0\D4KT4J5S]2VG25Z&@%2&`!&@2U,C(]HH!PB
MK(VB"6RXEZ.APZ^J`0H&,^]@91)O(#OW/R!Z?\.@FWHQS\XGF?H!;O-G^,[G
MB]O/@#EA%IY7\>EV^S_;7P`;[_/KK'CNA:"Q\C+0ID>H8)!RP3HSE<\9`\HN
M9-U"IV;/S0*;7^*;5GG!65Z#K=!W`Q-)!NB:FDV=&\FFQ##"1DQE-2.CYTHF
M1LFMX0&6]"QF>4@8@NHB&@/V&<&A$[@5^),D@=<F"BRX55!HF':]YW3?5-,+
M`YB0"1KI!>A/:-+<I(9"+O?XVL<T4[KJ5GD^SX!A#BGCFF&H8QI+A-^E+LWP
M#:@$?."K<^10-QQHV(2I!0+K\93XC?&%*$,1AF&+XSJ%3![#3M.2C.X)(@;B
M'5$SYXR2FH$;?PK=,-61)#L9NH3_,P<F;OI$Z*JN`9,6NBY#]M42H![_8^AR
M5H-PP>6TO&Y"SP_%^J)K&2QGD5G/H8$;`B4@AWN"02/G4""#(5'F[LLPAV)Q
M"1+`#+'-(&NPRKSN"Z7`D-L1)JLUY-L8:@Q4CQZJW[`9.'4#Y82?_N/+GX:&
M-P>Z!W*_1BQVS_S0?N$%*"78<='ED)$)-8_M;/08:V(SP]RPI-"EPIAYEHF0
MA!%=M#@BZ`436!M&4TIZ<:P0!">2B=D`!2V(C8V0Q$N^.9JJ9\[&6S<<;U_0
M/)]-_)+H967$1EGB:2A;J%62AU8QCL-Y5IX/0HS0*P@;Z>Y*B,:*K!8I`O6)
M1)*VCR#9K2ZO&F:`[7J67#=DV-`0>%S[R400'\@V/(K[_6"Z!%OH&LYZC8FU
M`3,4HV3JC`5#H&3ATG`$(#[KI&F8(89H<?%G%(P18N#JN'H>UPD^^,?97%X3
MVQQ:UY4,I5`TX\T)#,<XRPQ?=Z0`3XO+PMRN%`KSPKZ(.X2HI%^+N]?MJ7_]
M_Q+.Z#@.1C'0'R5=R^8R9JI/&<3I5=(I5W.6E":[BG5`!H)ZHQT%W1)F=WR3
MPGZGI<.^K1$SO<`3?"+Q4J!N."/A[NZ[")9T-T(LBK=`CM9<%N9ASKP@B:H'
ML"R-$H"09:\6:?^)/&&JNAGL=&!:CVY+^/H`-P+@1Y"&21N#$[I;8J/X)`%_
MN=5$)5JB!!.\^RV?88+=27U(XL"Z;Y\&*5`5:0*Z+7D-78B+-:A[#;[(ILA@
<"&B0ED&WE:)9P<5"5<F?$1C1_P%!%&E"0"0`````
`
end
477472:02/02/27 01:24
>>474
|´∀`)∩ < いただきました。試してみた限りでは問題なく動いているようです。

>>473
|)彡サッ
dmacro を XEmacsに対応させた者です。

改訂版 dmacro 利用時の注意ですが、FSF Emacs で Meta key を
含んだキー(例えば M-C-r) を指定する場合には "\C-\M-r" じゃなくて
ベクトルで [(control meta r)] のように指定しないとダメです。
XEmacs の場合には問題無いと思います。
キーをどのように表現するかは
http://tiny-tools.sourceforge.net/emacs-keys-body.html
でも参考にしてください。
# どなたか dmacro-key の設定するコード、綺麗にしてくれませんか?

# 結局 XEmacs で動かなかったのは execute-kbd-macro した場合の
# recent-keys() の挙動が違うからでした。
## dmacro は recent-keys を利用するので、edebug が使えず疲れた。
479474:02/02/27 18:52
>>478
お、解説どうもです。

# これを正式に発表する場を考えないと
# いけませんなあ。ML にうもれっぱなしじゃ
# もったいないので。
480仕様書無しさん:02/03/09 16:48
あげ
保全 sage
保守sage
こんなんどうですか?完璧じゃないけど、まー使える感じ。
(super k)に割り当てて使ってます。

(defun my-kakasi-JH ()
(interactive)
(let* ((w (read-string "kanji: " (current-word)))
(buf (concat "*kakasi-JH*")))
(switch-to-buffer buf)
(shell-command (concat "echo \"" w "\" | kakasi -JH") buf)))

カーソルを読めない漢字のところにもってきて M-x my-kakasi-JH
鏑木 鯨 海豚 成程
484名無しさん@お腹いっぱい。:02/03/17 15:52
>>483
サンキュ age
>>483
ちょい改造

(defun display-ruby-on-minibuffer ()
(interactive)
(shell-command (concat "echo \"" (current-word) "\" | kakasi -JH"))
)
486名無しさん@お腹いっぱい。:02/03/17 23:16
>>483
>>485

まじでありがとう。
487名無しさん@お腹いっぱい。:02/03/17 23:21
Muleと同じだよね?
>>487
何が?
まぁだいたい同じだね。
490483:02/03/18 14:53
>>484 調子に乗って機能拡張を考える
>>485 シンプルなコードを見て目から鱗が落る
>>487 泣く
……うーん。
492485:02/03/19 12:31
シンプルっつ−か、新しいバッファをつくるよりminibufferで十分だと思っただけ。
機能が減ったらコ−ドも減るって。

(autoload 'save-buffer-to-pilotdoc "pilot-doc" nil t)

日本語が使える様に
diff pilot-doc.el.orig pilot-doc.el
122a123
> (set-buffer-file-coding-system 'japanese-shift-jis)
pilot-doc-docname も encodep-coding-string した方が
495483 = 490:02/03/20 03:31
2chなのにフォローされてる。今度は違う意味で泣きそーだ(ぉぃ

伽藍とバザールを思い出した。
> 何を書けばいいかわかってるのがよいプログラマ。なにを書き直せば(そし
> て使い回せば)いいかわかってるのが、すごいプログラマ。
> 「完成」(デザイン上の)とは、付け加えるものが何もなくなったときでは
> なく、むしろなにも取り去るものがなくなったとき。
496493:02/03/20 15:15
>>494
あ、titleの事忘れてた。ありがと。

diff pilot-doc.el.orig pilot-doc.el
115c115
< (pilot-doc-docname title)
---
> (pilot-doc-docname (encode-coding-string title 'japanese-shift-jis))

こんな感じかな。
497名無しさん@お腹いっぱい。:02/03/23 23:34
期待age
begin 664 himark.patch.gz
M'XL(`')2GCP``]U637/:,!`]EU^QPZ&QQYAB$@@AAZ8?F?:23"?-3'M5[`4T
MM25'EDG27]^59`,&NTE[C&?`8.VNWNZ^?588AH`I+_)W*YXQ]6N(Z5"JY9LK
M*>"**1A/8#2=1Z?SXQF,1Z-Q+PB"?8>&\>D\BN:3D3.^N(#P9#R80D#?,[BX
MZ$$/SL_/X9-,<$Y_`N]AA0*\!3)=*LSAZ!$S%A=^+P#P%-Z77"$<R36JE#WY
M?@^\7,DU3^BAV]\W(;T$%VL"X!Z%E7E(,#4(GEH<D_$@&D,P.1F,3RR2#J<%
MBVWPY2JEC^X!0/^:90AR`7;-NR^EQ@2*I^Q.ICYH"66!L)!UJ&'?@`I-_%+4
MX4M1H`;/[X44[P8SVJY:@FIGX`+TBA=P5RX6J(9]8^IQH5&Q6/,U6E\J&$^Q
M+5.S"B:K%#76*^#%[77Q_<J>8-VW%LZ+DPY/\@U:LWLK<\VE8"D4FBD-*!+;
MR9<EW`M^&#(H7%(,H.<N[0'(G$J@JX<*"ZUX;#I`E7?&5*N@[email protected]"6/O
M\OBB@WDM5T54MU_H-@GS+NNZKF[_VNN.;D)PL>QV<Q<!WC@9\'Z[0X6)D;56
M3!0<A0YM/S*:+["_:NIT9/7_*`\P=FV1H,7`B)1V8%LMO5*D6!0.2GNRNU!S
MR4VJ7/P-HT586;+'CGTMU;<T<49>(MT(R+7Y6+86(=%UQ]`%VQ\WN38A*DG:
MS@?5"1]S6R]S;YT3BM;_6LL.L#0%&<>E4BAB*SXWEU\N?WX;PL<GH-BL3'4U
M&+1J!@FMS$VG@V@$P6PTB"96YIZ;B\.ZD3YG)66_(F*1U%3S>(>D<.8?2X@;
M0+7G;FYIC/-2M\>1!$L]<))'^E%'RFR"*T9H8MICB8F3HF9C_H';A][/,KO-
M98<U#5ZWAC]@]6L4&.J@]]N`#G?2=6ZO39):K)P$&,*'YI5#I.]7\TLO'C?8
M\_?]-E=W-50%*CH(6<F-WZ5H9&P&>38>G$(0C:+!V>:XTA`4,TI>IWYLIE8_
M('7D^^V'FULP;;F\_DRO2]B3A;[JN^.%P6C,=E>)AB_J9I=SHPVV`H=3T31Z
M=K?.3MK,K,99\<[8KZTX[S<$-N(>DH*1=L.1/>&UG`A=3\Y<3Z+CCI[$FN2,
M)+.[+;&DR@A=&$'?VM==LJ<C4T#+AE??INKU%=*X;FMQM%]-.G0*W/;.'.CM
+*_8/LX'_(KL,````
`
end

オリジナルでなくて御免。
ありがとうございます。
頂いておきます。
某キーボードスレを見て
;; vi 風に
(define-key global-map [(super h)] 'backward-char)
(define-key global-map [(super j)] 'next-line)
(define-key global-map [(super k)] 'previous-line)
(define-key global-map [(super l)] 'forward-char)

;; nethacker 向けに斜め移動(たまにおかしい)
(define-key global-map [(super y)] (lambda ()
(interactive) (backward-char) (previous-line 1)))
(define-key global-map [(super u)] (lambda ()
(interactive) (forward-char) (previous-line 1)))
(define-key global-map [(super b)] (lambda ()
(interactive) (backward-char) (next-line 1)))
(define-key global-map [(super n)] (lambda ()
(interactive) (forward-char) (next-line 1)))

使ってるととても混乱します。super k のつもりが C-k とか。C-h とか。で、
いつのまにか C-n 押してたりとか。そして super n で navi2ch が動きだし
たりとか。イライラ。逆ギレ。こんなもんいるかー。クシャクシャ。ポイッ。
誰か使う?(バキ
501名無しさん@お腹いっぱい。:02/03/29 05:42
>>500
これはメチャクチャ混乱しそうだな。
502名無しさん@お腹いっぱい。:02/03/29 12:00
人間の脳みそには干渉って現象があるからな。
super h を押そうとすると、C-hにも刺激が伝わって、
ついいつも押してる C-hを押してしまうような。
super n ってのもなかなか典型的な間違いで面白し。

UIをつくるときには、指に物理的限界があるように
脳にも認知的限界があるということを意識してつくるべし。
って、emacsつかいがいうことばではないか...
503名無しさん@お腹いっぱい。:02/03/29 15:02
(setq manual-program "jman") したときに
manページの表示が ^H だらけになってしまうのを回避する elisp を
どこかで見たのですが忘れてしまいました。

どなたか教えてくだちゃい。
Man-fontify-buffer (ウロ)
ん?でもこれを通った上で ^H マンセー状態なのか?
下げとく〜。
505名無しさん@お腹いっぱい。:02/03/29 16:07
M-x Man-fontify-manpage はしてみました。
でも小見出し(?)のボールド体のところに ^H がマンセーなのれす...(欝
Emacs-20.x だけの現象らしいのですけど。
「いやぜんぜんウロ&テキトーです〜^^;」とことわりつつ

日本語groffの日本語文字に対する下線か反転(あるいはイタ
リック/ボールド)のどっちか、のつけ方がマズーな記憶がある。
確かイタリックの方がマズーだったと思う。
だから壊れたフォーマット済みマニュアルの可能性あり。
(話が明後日...の可能性もあり)
あと、その^Hあたりの話ってtermcapがらみ、文字コードがらみ
となかなかレガシーな話でなんともかんとも...
ヤバ、スレ違いポイ。そんならエイ!

「日本語manpageの読めるelisp自慢をキボーン!」
昔fjでもらったもの。どう? しかし21.xでは要らなくなっていたとは…

(setq Man-see-also-regexp "SEE ALSO\\|関連項目"
Man-first-heading-regexp
"^[ \t]*\\(NAME\\|名前\\)$\\|^[ \t]*No manual entry fo.*$")
(defun Man-fontify-manpage ()
"Convert overstriking and underlining to the correct fonts.
Same for the ANSI bold and normal escape sequences."
(interactive)
(message "Please wait: making up the %s man page..." Man-arguments)
(goto-char (point-min))
(while (search-forward "\e[1m" nil t)
(delete-backward-char 4)
(put-text-property (point)
(progn (if (search-forward "\e[0m" nil 'move)
(delete-backward-char 4))
(point))
'face Man-overstrike-face))
(goto-char (point-min))
(while (search-forward "_\b" nil t)
(backward-delete-char 2)
(put-text-property (point) (1+ (point)) 'face Man-underline-face))
(goto-char (point-min))
(while (search-forward "\b_" nil t)
(backward-delete-char 2)
(put-text-property (1- (point)) (point) 'face Man-underline-face))
(goto-char (point-min))
(while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t)
(replace-match "\\1")
(put-text-property (1- (point)) (point) 'face Man-overstrike-face))
(goto-char (point-min))
(while (re-search-forward "o\b\\+\\|\\+\bo" nil t)
(replace-match "o")
(put-text-property (1- (point)) (point) 'face 'bold))
(goto-char (point-min))
(while (search-forward "__\b\b" nil t)
(backward-delete-char 4)
(put-text-property (point) (progn (forward-char) (point))
'face Man-underline-face))
(goto-char (point-min))
(while (re-search-forward "\\(\\cj\\)\\(\b\b\\1\\)+" nil t)
(replace-match "\\1")
(put-text-property (- (point) 3) (point) 'face Man-overstrike-face))
(goto-char (point-min))
(while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t)
(replace-match "+")
(put-text-property (1- (point)) (point) 'face 'bold))
(Man-softhyphen-to-minus)
(message "%s man page made up" Man-arguments))
508505:02/03/29 22:52
↑で出来ました。ありがとう。

でも、どこにおいて良いか分からないので、とりあえず ~/.emacs の中で
Man-Cooked-hook で呼ぶようにすますた ...
>>508
defunの前に(require 'man)でいいんでない?

別のネタ。

(add-hook 'post-command-hook
'(lambda ()
(set-cursor-color (if mw32-ime-state "gold" "gray90"))))

Canna, Wnnでも似たようなことしてたけど、Emacs21.x, tamago-current, Gnus5.9
の組み合わせだとなぜかうまくいかん。
510名無しさん@お腹いっぱい。:02/03/30 02:58
縦分割ウィンドウで,ウィンドウ移動時に横幅を自動的に変更する。
0.65とかなってる数字は,ウィンドウ全体から見た,1つのウィンドウの大きさの割合です。
これで縦分割使って全画面emacsで作業するようになりました・・・


(defun my-other-window() ""
(interactive)
(setq truncate-lines t)
(other-window 1)
(setq truncate-lines nil)
(let ((max-width (truncate (* (screen-width) 0.65))))
(if ( < (window-width) max-width)
(enlarge-window-horizontally ( - max-width (window-width))))))
511Emacsマンセー:02/03/30 11:44
保守age

~/.emacs

(setq 逝ってよし t)
512名無しさん@お腹いっぱい。:02/03/30 12:04
日本語を使えたとは...
513506:02/03/31 00:02
うお?!キボーンと書いてすぐに来た!
507はイイ奴にケテーイ!
514507,509:02/03/31 04:10
>>513 さんきゅ。

もう一個、日本人のモードラインにはこれ。

(defconst dayname-to-youbi
'(("Mon" . "月")("Tue" . "火")("Wed" . "水")("Thu" . "木")
("Fri" . "金")("Sat" . "土")("Sun" . "日")))
(setq display-time-string-forms
'((format "%s月%s日(%s)%s:%s"
month day (cdr (assoc dayname dayname-to-youbi))
12-hours minutes)))
;; Info では frame-title に詳しい情報を

;; for FSF Emacs
(add-hook 'Info-mode-hook
#'(lambda ()
(make-local-variable 'frame-title-format)
(setq frame-title-format
(concat "*info* ("
(file-name-nondirectory
(if (stringp Info-current-file)
Info-current-file
(or buffer-file-name "")))
") "
Info-current-node))))
(add-hook 'Info-selection-hook
#'(lambda ()
(setq frame-title-format
(concat "*info* ("
(file-name-nondirectory
(if (stringp Info-current-file)
Info-current-file
(or buffer-file-name "")))
") "
Info-current-node))))

;; for XEmacs
(add-hook 'Info-startup-hook
#'(lambda ()
(make-local-variable 'frame-title-format)
(setq frame-title-format
(concat "*info* ("
(file-name-nondirectory
(if (stringp Info-current-file)
Info-current-file
(or buffer-file-name "")))
") "
Info-current-node))))
(add-hook 'Info-select-hook
#'(lambda ()
(setq frame-title-format
(concat "*info* ("
(file-name-nondirectory
(if (stringp Info-current-file)
Info-current-file
(or buffer-file-name "")))
") "
Info-current-node))))

ちょっとは嬉しくなったでしょ?
516名無しさん@お腹いっぱい。:02/04/02 20:48
.emacsじゃないけどちょっとしたtips。
C-x C-fした時に
~/を
~//
なんて/を2個以上連続させればそれは
/
と指定したと同じになる。
だから
~/
からC-h C-hなんてしなくてもいい。
まぁ、$HONE以外のファイルをEmacsで開く事なんてないのかな。

それと誰かミニバッファでzshのようにC-wで
~/test/aaa.txt

~/test/
にする方法知らない?
C-[ C-hでは出来るんだけど…。
517あー、いらいら:02/04/02 21:42
>>516 それと誰かミニバッファでzshのようにC-wで

backward-word()と kill-region()を
組み合わせればいいのでは?
ミニバッファのkey-mapは知っていますよね?
>>517
それ、特にセンスを感じなかった。普段は割と面白いのに…。

>>518
> ミニバッファのkey-mapは知っていますよね?
そういえば minibuffer の事は良く分らんなぁ。
未だに minibuffer から(XEmacs みたく) C-TAB で other-window
するように設定できてない。
520519:02/04/04 19:20
なんだ、
(add-hook 'minibuffer-setup-hook
#'(lambda ()
(local-set-key [(control tab)] 'other-window)))

でいいのか。minibuffer は初期化される事に注意する必要があるのね。
質問スレじゃないって怒られるは承知ですが

>>51
この方法教えてください。
>>521
emacs スレで apel 入れたいんだけど、って聞けばいいじゃん。
% make install はい、おしまい。

>>522
すまん、スゲー間違い
>>51じゃなくて>>518だった。
524他人:02/04/04 21:13
>>516
520を参考に

(add-hook 'minibuffer-setup-hook
'(lambda ()
(local-set-key "\C-w" 'backward-kill-word)))

とやってみた。これでできているように思えるけどダメれすか?
>>524
サンコス。
(add-hook 'minibuffer-setup-hook
#'(lambda ()
(when (string-match "find-" (symbol-name this-command))
(local-set-key "\C-w" #'backward-kill-word))))
こうかな?
527518:02/04/04 23:17
ん? minibuffer-local-mapとかじゃないの?
試してないけど。
528518:02/04/04 23:21
(define-key minibuffer-local-completion-map "\C-w" 'backward-kill-word)
でした。
529名無しさん@お腹いっぱい。:02/04/06 06:26
yank-popの反対。
C-yのあとM-yして逆向きに戻りたくなったとき使う。

(defun my-yank-pop-reverse (&optional arg)
"Replace just-yanked text with more recent item in kill-ring."
(interactive)
(yank-pop (- (or arg 1))))
(global-set-key "\C-\M-y" 'my-yank-pop-reverse)
530名無しさん@Emacs:02/04/06 14:39
拡張子が html の場合のみ自動改行を禁止するには
どう書いたらよいでしょうか
>>530
そーいうのは emacsスレで。ここは依頼スレじゃないし。
yatex-mode とか html-helper-mode(?) 使えばいいでそ。
>>531
すみません。逝って来ます。
# yatex-modeもyahtml-modeも自動改行されるんですけど
自動改行ってなに?
534名無しさん@お腹いっぱい。:02/04/06 22:37
ちゃんと自慢しろよ
>>529
逆向きに戻りたくなったら、C-gしてM-yじゃダメなんでしょうか?
536529:02/04/07 06:19
>>535
> 逆向きに戻りたくなったら、C-gしてM-yじゃダメなんでしょうか?

いまひとつよくわからないので、もう少し詳しく教えてください。
C-y M-y M-y ... M-y で C-g すると Quit と表示されて、
次に M-y してもダメなんですけど。
そういうことではない?
>>536
ごめん、undoとごちゃごちゃになっていた。(-_-)ウツダ
538:02/04/08 11:17
brose-kill-ring.el とか
539名無しさん@Emacs:02/04/09 10:55
今開いてるファイルをブラウザで開く
# 作成中のWebページ等のプレビュー用に.

w3m-elで閲覧:
;; Browse current-buffer-file using w3m-el
(defun w3m-browse-current-file ()
(interactive)
(w3m (concat "file:/" buffer-file-name)))

mozillaで閲覧:
;; Browse current-buffer-file using mozilla
(defun mozilla-browse-current-file ()
(interactive)
(browse-url-mozilla (concat "file:/" buffer-file-name)))

・・・と思ったけどmozillaのほうは動いてない.
そもそもbrowse-url.elcが腐ってるのか
M-x browse-url 系は遅かれ早かれ
Wrong type argument: stringp, nil
とエラーが出て全滅してしまう.

どなたか解決策教えてくだされ.
自慢してください。
omaemona( ´∀`)
woman用
;; 常識かな?

;; 初回起動が遅いので cache 作成。
(setq woman-cache-filename (expand-file-name "~/.woman_cache"))

;; 新しく frame は作らない。
(setq woman-use-own-frame nil)
;; 久しぶりに...

(add-hook 'dired-mode-hook
#'(lambda ()
(let* ((dir default-directory)
(len (length dir))
(lim 25))
(setq mode-line-buffer-identification
(if (> len lim)
(concat "*" (substring dir (- len (1- lim)) len))
dir))
(set-text-properties 0 (length mode-line-buffer-identification)
`(face bold help-echo ,dir)
mode-line-buffer-identification)
(make-local-variable 'frame-title-format)
(setq frame-title-format dir))))

どうよ?
>>543
mode-lineにディレクトリ名を表示し、
C-x C-fとかした時のfaceを変更し、
フレームタイトルにディレクトリ名を表示しているってことで良いですか?

オレはシンプル(?)にこうかな。
フレームタイトルにホスト名とファイル名を表示させている。

(setq frame-title-format
`(
"(HOST::" ,(downcase (car (split-string (system-name) "\\."))) ") "
"(FILE::%f) "))

545543:02/04/20 15:15
>>544
> mode-lineにディレクトリ名を表示し、
dired の時はフルパス(あんまり長いときは省略)が欲しかったので。

> C-x C-fとかした時のfaceを変更し、
?? ふつうにディレクトリの表示を bold にしたかっただけです。

ところでホスト名表示って嬉しいのですか? よく分らん。まぁそうなのかも...

ちなみに普段は
(setq frame-title-format
'(buffer-file-name ("%b [ " buffer-file-truename " ]")
("%b")))
です。XEmacs では buffer-file-truename で $HOME が ~ にならないので
find-file-hooks, after-save-hook で (abbreviate-file-name buffer-file-name)
を別の変数に設定して利用してます。

ところで、Emacs21 では mode-line-format に (:eval FORM) が使えるようになった
らしいのですが、使い方が悪いのか効きません。誰か教えてください。
あと、どういうタイミングで re-eval され更新されるのだろうか。
;; risky-local-variable が求められるようになったのは、これと関係がある?
546543:02/04/21 00:08
>>544
> C-x C-fとかした時のfaceを変更し、
ごめん、いまごろ気付いた。
(なんせ昨日作ったばっかりだし、あまりdired 使わないので...)

で、Emacs21 らしく propertize 使えば楽なんだけど、それじゃ悔しいので

(add-hook 'dired-mode-hook
#'(lambda ()
(let* ((dir default-directory)
(len (length dir))
(lim 25)
tmp-str)
(setq tmp-str
(if (> len lim)
(concat "*" (substring dir (- len (1- lim)) len))
(copy-sequence dir))) ; copy-sequence がキモ
(set-text-properties 0 (length tmp-str)
`(face (:weight bold) help-echo ,tmp-str)
tmp-str)
(setq mode-line-buffer-identification
(list tmp-str)) ; list する必要あるの??
(make-local-variable 'frame-title-format)
(setq frame-title-format dir))))

ところでこれまた今気付いたんだけど、Emacs21 で、dired で / を
開いた状態から別のディレクトリ辿ると /: が頭に付加されるので、
dired のバッファから C-xC-f でファイル補完が効きませんね。
cvs 版のみかな < この不具合
>>546 > cvs 版のみかな < この不具合
Emacs-21.2だけど、そういう不具合は起こっていません。
548名無しさん@Meadow:02/04/30 04:21
TSP(Time Series Processor)を編集するTSP-modeって
やつがあると聞いたんですけど、どこにあるかご存知の
方はいらっしゃいますか?
>>548 自分で作って自慢してください。じゃなければスレチ

550名無しさん@Emacs20:02/04/30 22:56
ええっと、browse-url-lynx-xtermの改造ともいえないくらい簡単な改造です。
w3m-browseだとちょっと反応が遅かったり、入力できないフォームがあったり
するんでやりました。w3mが画像も表示できるようになったので結構快適です。

(setq browse-url-browser-function 'browse-url-w3m-xterm)
(setq browse-url-xterm-program "kterm")
(setq browse-url-xterm-args '("-geometry" "80x30+40+20"))
(defun browse-url-w3m-xterm (url &optional new-window)
;; new-window ignored
(interactive (browse-url-interactive-arg "w3m URL: "))
(apply #'start-process `(,(concat "w3m" url) nil ,browse-url-xterm-program
,@browse-url-xterm-args "-e" "w3m" ,url)))

>>550
これ、ひとつの w3m にどんどん次の url を送り込めるといいね。
上野さんの xtc でいけるかな?
552名無しさん@お腹いっぱい。:02/05/03 04:25
起動時に .emacs.el と .emacs.elc の日付を比べて
更新されていればコンパイルして再起動するよう
>551

これxtcと付属のbrowse-url-x3m-xtc.elがあればいけそうっすね。




最初xtcだけで検索したらパンクバンドが一杯でてきて鬱だった。
>553

自己フォロー

emacs20.7でREADMEにあるとおりだけでやったら、
browse-url-maybe-new-windowが無いって怒られました。鬱だ。

調べたらemacs20系では1999-01-19に無くなったfunctionやった

emacs21系には2001年に追加されてるのに、何故だ。

既存のプロセスが有るか無いかの判断が一番面倒なのになあ。20系では何か別
の名前で動いてるのかなあ。
スレ違いになりそうなのでsage & これでやめます。

>554

15,15
< (if (or (browse-url-maybe-new-window new-window)
---
> (if (or new-window

でemacs20でもbrows-url-w3m-xtcが動きました。
別に自慢のじゃないけど、こっちのほうが適切? と思ったので。

find-file-read-only ってさ、
(defun find-file-read-only (filename &optional wildcards) ...)
ってなってるくせに wildcards 対応してないやんね。

(defun find-file-read-only (filename &optional wildcards)
"Edit file FILENAME but don't allow changes.
Like `find-file' but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
(interactive "FFind file read-only: \np")
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(mapcar #'(lambda (buf)
(prog1
(switch-to-buffer buf)
(toggle-read-only 1)))
(nreverse value))
(switch-to-buffer value)
(toggle-read-only 1)
(current-buffer))))

たぶん大丈夫と思うけど。
俺は view-read-only な人なので find-file-read-only が好きです。
自慢にもなにもなりゃせんが、便利そう。

;; 手軽に elisp を試す
(defun my-add-load-path ()
(interactive)
(add-to-list 'load-path default-directory))
1行スクロールアップだけじゃ芸がないので、
2つのWindowを同時にスクロールできるオプションを...(以下略)

(defun scroll-up-one-line (num &optional both)
"1行スクロールアップします。
bothが non-nilの場合は、両方のWindowがスクロールアップします。"
(interactive "p")
(scroll-up num)
(if both (scroll-other-window num)))

(defun scroll-down-one-line (num &optional both)
"1行スクロールダウンします。
bothが non-nilの場合は、両方のWindowがスクロールダウンします。"
(interactive "p")
(scroll-up-one-line (- 0 num) both))
google使いたいんですけど、うちでも

> Symbol's function definition is void: lookup-current-word

コレ出ます(lookup1.3)。無論、lookupはautoloadしてますよ。

lookup-1.3にはlookup-current-wordがない????
だもんで、1.99.1を取ってきて、./configureしてmakeすると、こんどは

> Symbol's function definition is void: mapc
> Signal 127
> make[1]: *** [lookup.elc] Error 255

こんなん出てダメだよ〜。
WinXPでMeadow1.15preでcygwinです。
>>559
マルチやめれ
>>559 autoload って、lookup-pattern とかを autoload してるだけでそ? どうせ。
それじゃ、lookup-current-word がいきなり呼ばれた時は対応できん。
つーか、これぐらい切り分けできぬ野郎の出入りしていいスレではないわ!!
562559:02/05/12 03:16
>>561
おかげさんでMeadowでも動いたよ。
regionがある場合はregionからワードを取ってくるように改造してくだせい。

■Googleまとめ版 その1

;; replace-in-string (MeadowとかのEmacs20系には必要)
(defun replace-in-string (str regexp newtext &optional literal)
"Replaces all matches in STR for REGEXP with NEWTEXT string,
and returns the new string.
Optional LITERAL non-nil means do a literal replacement.
Otherwise treat \\ in NEWTEXT string as special:
\\& means substitute original matched text,
\\N means substitute match for \(...\) number N,
\\\\ means insert one \\."
;;; (check-argument-type 'stringp str)
;;; (check-argument-type 'stringp newtext)
(let ((rtn-str "")
(start 0)
(special)
match prev-start)
(while (setq match (string-match regexp str start))
(setq prev-start start
start (match-end 0)
rtn-str
(concat
rtn-str
(substring str prev-start match)
(cond (literal newtext)
(t (mapconcat
(lambda (c)
(if special
(progn
(setq special nil)
(cond ((eq c ?\\) "\\")
((eq c ?&)
(substring str
(match-beginning 0)
(match-end 0)))
((and (>= c ?0) (<= c ?9))
(if (> c (+ ?0 (length
(match-data))))
;; Invalid match num
(error "Invalid match num: %c" c)
(setq c (- c ?0))
(substring str
(match-beginning c)
(match-end c))))
(t (char-to-string c))))
(if (eq c ?\\) (progn (setq special t) nil)
(char-to-string c))))
newtext ""))))))
(concat rtn-str (substring str start))))
563559:02/05/12 03:17
■Googleまとめ版 その2

(require 'browse-url)

(require 'lookup)

(defun google-encoding (str)
(setq str (encode-coding-string str 'shift_jis))
(let* ((len (length str))
(ret (make-string (* len 3) ?a))
(i 0) (j 0) char type)
(while (< i len)
(setq char (aref str i))
(if (< char 126)
(aset ret j char)
(aset ret j ?%)
(setq j (1+ j))
(aset ret j (aref "0123456789ABCDEF" (lsh char -4)))
(setq j (1+ j))
(aset ret j (aref "0123456789ABCDEF" (logand char 15))))
(setq i (1+ i) j (1+ j)))
(substring ret 0 j)))

; Super-g でカーソル近くの keyword を google で検索
(defun google (str option)
(browse-url
(concat
"http://www.google.com/search?q="
(replace-in-string (google-encoding str) " +" "+")
"&num=100"
option
)))

(defun google-ja (str &optional module)
(interactive (list (read-string "Google search: " (lookup-current-word))))
(google str "&hl=ja&lr=lang_ja"))

(defun google-all (str &optional module)
(interactive (list (read-string "Google search: " (lookup-current-word))))
(google str ""))

;; Superを無変換に
(w32-set-modifier-key "noconvert" 'super)

;; Super-g でカーソルの近くの 単語 をGoogleで検索
(define-key global-map [(super g)] 'google-all)
>>562
regionがある場合って…、
一度C-SPCしたらreionは常にあるんじゃあ。

regionがあるサイズ以下ならそっから切り出す、
みたいな感じでどうよ?

(defvar google-current-word-max-region-size 20
"*検索単語を拾うとき、regionからの切り出しを行なう最大のサイズ。
検索単語をバッファから拾うときに、regionのサイズがこの値以下なら
regionの文字列を、それ以上なら`lookup-current-word'を使用する。")

;; 検索単語を拾う
(defun google-current-word ()
(let ((region-size (abs (- (point) (mark)))))
(if (and (not (zerop region-size))
(< region-size google-current-word-max-region-size))
(buffer-substring (point) (mark))
(lookup-current-word))))

(defun google-ja (str &optional module)
(interactive (list (read-string "Google search: " (google-current-word))))
(google str "&hl=ja&lr=lang_ja"))

(defun google-all (str &optional module)
(interactive (list (read-string "Google search: " (google-current-word))))
(google str ""))

おまけ

;; infoseek 辞書
(defun infoseek-jisyo (str)
(interactive (list (read-string "infoseek jisyo: " (google-current-word))))
(browse-url
(concat
"http://jiten.www.infoseek.co.jp/Kokugo?pg=result_k.html&col=KO&qt="
(replace-in-string (google-encoding str) " +" "+")
"&sm=1")))
>>562
それって昔の XEmacs のか?
ちなみに Emacs21 には replace-regexp-in-string がある。

>>564
> >>562
> regionがある場合って…、
> 一度C-SPCしたらreionは常にあるんじゃあ。
>
> regionがあるサイズ以下ならそっから切り出す、
> みたいな感じでどうよ?

transient-mark-mode||zmacs-region を利用しては?
old style の人にはダメだけど。
566559:02/05/12 13:14
>>564
希望通りの動作をしております。
ありがとうございます。
>>565
replace-in-stringは、ここにあったのをパチってきました。
ttp://www.dotemacs.de/emacro/emacs/functions.html

僕はregionとtransientの違いを理解していないでありますが、
確かにtransient(暫定マーク)が検索対象になる方が便利な気がします。
(transient-mark-mode t)にしてます。
567名無しさん@お腹いっぱい。:02/05/17 14:29
Alt-半角/全角 で、eggをon/offさせたい。どうしてもさせたい。
教えれ。
>>567 スレ違い。
>>567
しかもマルチ
しかも押しにくいキーに割り当てようとしている
>>567
人にものを聞く態度じゃない。
しかも、ぐぐーるで見つかる。
571名無しさん@お腹いっぱい。:02/05/22 00:41
# かなり便利なのでたまには age で書こう。

(defvar my-window-config)
(defvar my-pos)
(defvar my-working-buf)

(defadvice lisp-complete-symbol (around restore-window activate)
(setq my-window-config (current-window-configuration))
ad-do-it
(setq my-working-buf (current-buffer)
my-pos (point))
(add-hook 'post-command-hook 'my-restore-window-hook))

(defun my-restore-window-hook ()
(when (and (eq (current-buffer)
my-working-buf)
(not (eq (point)
my-pos)))
(set-window-configuration my-window-config)
(remove-hook 'post-command-hook 'my-restore-window-hook)))

たった今作ったんだけど、なんでもっと早く作らなかったのかと
自分を小一時間問い詰めたい気分。
>>571
できれば説明も加えて頂けませんか?
573571:02/05/22 00:59
elisp を書いてて関数とか変数を補完すれば分かるよ。
これを評価する前後で試して。
574572:02/05/22 01:44
>>573
なるほど。補間が終了したら、補間候補のウィンドウを閉じてくれるのね。
575名無しさん@お腹いっぱい。:02/05/22 13:14
(defun upcase-word-hack (p)
"Upcase last word if at eol and no ARG."
(interactive "p")
(upcase-word (if (eolp) (- p) p)))
(global-set-key "\M-u" 'upcase-word-hack)

(defun downcase-word-hack (p)
"Downcase last word if at eol and no ARG."
(interactive "p")
(downcase-word (if (eolp) (- p) p)))
(global-set-key "\M-l" 'downcase-word-hack)

(defun capitalize-word-hack (p)
"Capitalize last word if at eol and no ARG."
(interactive "p")
(capitalize-word (if (eolp) (- p) p)))
(global-set-key "\M-c" 'capitalize-word-hack)
>>575
自慢されるからには作成した本人ですか?
なわけねーだろ!
自分が作ったのじゃなくてもいいよね。
procamailrcを編集する時に。

(defun procmail-mode ()
"Mode for highlighting procmailrc files"
(interactive)
(setq mode-name "Procmail"
major-mode 'procmail)

(require 'font-lock)
(make-local-variable 'font-lock-defaults)
(setq procmail-font-lock-keywords
(list '("#.*"
. font-lock-comment-face)
'("Return-Path:"
. font-lock-type-face) ; green
'("^[\t ]*:.*"
. font-lock-function-name-face) ; blue ?
'("[A-Z_]+=.*"
; '("[A-Za-z_]+=.*"
. font-lock-keyword-face)
'("^[\t ]*\\*.*"
. font-lock-doc-face) ; light brown
; '("\$[A-Za-z0-9_]+"
'("^[\t ]*ml\/"
. font-lock-builtin-face) ; violet
'("^[\t ]*from\/"
. font-lock-reference-face)
'("^[\t ]*junk\/"
. font-lock-constant-face) ; turquoize
'("^[\t ]*dm/"
. font-lock-warning-face) ; red
'("^[\t ]*not-found/"
. font-lock-variable-name-face) ; orange
'("^[\t ]*to/"
. font-lock-string-face) ; light brown
))
(setq font-lock-defaults '(procmail-font-lock-keywords t))
(font-lock-mode t) )
即興。役に立つかは判らんが。
transient-mark-mode を普段は使ってないけど、小松さんの replace.el とかを使いたいときに。
使い方:
C-SPC を連続で叩くと transient-mark-mode をトグルする。
一回押すだけなら set-mark-mode。

(global-set-key [(control ? )] 'toggle-transient-or-set-mark)
(defvar toggle-transient-continuate-p nil)
(defun toggle-transient-or-set-mark ()
(interactive)
(if (eq last-command 'toggle-transient-or-set-mark)
(progn
(unless toggle-transient-continuate-p
(pop-mark)
(setq toggle-transient-continuate-p t))
(if transient-mark-mode
(transient-mark-mode 0)
(transient-mark-mode 1)))
(set-mark-command nil)
(setq toggle-transient-continuate-p nil)))
XEmacs で wl とか w3m を使うときだけ toolbar を使いたかったので書いたんだけど、
どんどん縦幅が無くなっていってしまうのであまり役に立たなかったりする。

(defvar buffers-tab-visivle-p nil)
(make-variable-buffer-local 'toolbar-visible-p)
(make-variable-buffer-local 'buffers-tab-visivle-p)
(defadvice other-window (after other-window-specifier activate)
(customize-set-variable 'toolbar-visible-p toolbar-visible-p)
(set-specifier default-gutter-visible-p buffers-tab-visivle-p))
(defadvice set-window-buffer (after set-buffer-specifier activate)
(customize-set-variable 'toolbar-visible-p toolbar-visible-p)
(set-specifier default-gutter-visible-p buffers-tab-visivle-p))
なんとなく >>518 あたりのを触ってみたら気持ちわるっ。
(add-hook 'minibuffer-setup-hook
(lambda ()
(local-set-key "\C-w"
(lambda ()
(interactive)
(if mark-active
(kill-region (region-beginning)
(region-end))
(backward-kill-word 1))))))
でもしばらく使ってみよう。
582名無しさん@お腹いっぱい。:02/06/08 10:54
Emacs Lisp から C や C++ で作った外部のライブラリをよびだすことはできるのでしょうか?
>>582
できるけど、スレ違いです。ここは質問スレじゃないので。
前に出てたgoogle-encodingとかを使って
「フィールド」を検索しようとしたら、
うまくブラウザに渡らなかた。漏れだけ?
on Meadow-1.15pre1
俺はGoogle関係の決定稿がどれなんだかわからず使えていない。
誰かまとめてくれたらうれしい
決定稿かは知らないですが、自分の設定を載せます。
キーバインドして呼び出せば、リージョンが明示されてるなら
(マウスドラッグとか C-xC-x とか transient-mark-mode)
領域を切り出し、そうでなければ単語(チョッと嘘)を取り出します。

(require 'browse-url)
(require 'thingatpt)
;; w3m-url-encode-string の rename 版 (w3m.el を入れてないから)
(defun my-url-encode-string (str &optional coding)
(apply (function concat)
(mapcar
(lambda (ch)
(cond
((eq ch ?\n) ; newline
"%0D%0A")
((string-match "[-a-zA-Z0-9_:/]" (char-to-string ch)) ; xxx?
(char-to-string ch)) ; printable
((char-equal ch ?\x20) ; space
"+")
(t
(format "%%%02X" ch)))) ; escape
;; Coerce a string to a list of chars.
(append (encode-coding-string (or str "") (or coding 'iso-2022-jp))
nil))))

;; google で検索。引数無しだと mini-buffer で編集できる。
(defun google (str &optional flag)
"google で検索。引数無しだと mini-buffer で編集できる。"
(interactive
(list (cond ((eq last-command 'mouse-drag-region)
;; mouse drag の後で呼び出された場合
(car kill-ring))
((or (and transient-mark-mode mark-active)
(eq last-command 'exchange-point-and-mark))
;; region が活性 or point と mark を入れ替えた後の場合
(buffer-substring-no-properties
(region-beginning) (region-end)))
(t (thing-at-point 'sexp)))
current-prefix-arg))
(if flag
nil
(setq str (read-from-minibuffer "Search word: " str)))
(browse-url
(concat
"http://www.google.com/search?q="
(my-url-encode-string str 'shift_jis)
"&hl=ja&lr=lang_ja")))
587名無しさん@お腹いっぱい。:02/06/17 14:32
>>586
read-from-minibuffer というのは read-string とどうちがうのですか?
ここは質問するスレではなく自慢するスレでございます。
589587:02/06/17 15:10
>>584
うちでは大丈夫です。うちは freebsd で xemacs です。
>>586
いま試してみているんだけど、今のところ動いてません。
emacs は何を使ってますか?
>>587
知らない関数が出て来たらとりあえずdescribe-functionしる。
どなたか、左右の改行マーク表示エリアを消す設定を自慢してください
そんなエリアありません。えっへん。
>>591
慣れれば便利でしょ。でも気になるなら、
左右の余白は fringe っていう名前だから、これで
infoを検索してみたら。消せるのか知らないけどね。
>>591
そういうの反則。素直にEmacsスレで聞いて。お ね が い。
>>591
21.3.50使ってるなら

C-x fringe C-m none
又は
menu-barのOptions->Show/Hide
にfringeの設定があるぞ
596584:02/06/18 00:19
漏れが使ったのは>>564さんのgoogle-allほか。
で、「フィールド」をぐぐると、
http://www.google.com/search?q=%83t%83B%81
しか渡らない。elispの知識ないからよく分かんないな。
質問スレじゃないので、このぐらいにしときまス。
頼むからここで新規質問したり、それに教えたり し な い で !!
投稿されたコードに関する質問は ok だけど。

あとからこのスレを読み返すときに普通の質問スレだったらウザいでしょ?
あ、これはこれは、管理者の方でしたか。
すいませんでした。自粛します。
599586:02/06/18 12:36
xemacs でも動くようにしました。

動作確認
meadow-1.15pre1
ntemacs21.2
xemacs (on cygwin)

;; google で検索。引数無しだと mini-buffer で編集できる。
(defun google (str &optional flag)
"google で検索。引数無しだと mini-buffer で編集できる。"
(interactive
(list (cond ((or
;; mouse drag の後で呼び出された場合
(eq last-command 'mouse-drag-region) ; for emacs
(and (eq last-command 'mouse-track) ; for xemacs
(boundp 'primary-selection-extent)
primary-selection-extent)
;; region が活性
(and (boundp 'transient-mark-mode) transient-mark-mode
(boundp 'mark-active) mark-active) ; for emacs
(and (fboundp 'region-active-p)
(region-active-p)) ; for xemacs
;; point と mark を入れ替えた後
(eq last-command 'exchange-point-and-mark))
(buffer-substring-no-properties
(region-beginning) (region-end)))
(t (thing-at-point 'sexp)))
current-prefix-arg))
(if flag
nil
(setq str (read-from-minibuffer "Search word: " str)))
(browse-url
(concat
"http://www.google.com/search?q="
(my-url-encode-string str 'shift_jis)
"&hl=ja&lr=lang_ja")))
600600:02/06/18 21:46
600
.emacs はどこのフォルダにあるのでしょうか…
>>601
それは自慢ですか?
違うなら Emacsスレに逝ってください。
603587:02/06/19 22:09
>>599
xemacs で動きました。いいですね。
一つおもったのは thing-at-point というのは、例えば elisp のソース何かの上だとものすごく
大きな式とかでも持ってきてしまうようで、これがいいかどうか。
current-word とかはそこらへんを適当にやっているようです。
604名無しさん@お腹いっぱい。:02/06/20 01:41
site-lisp/subdirs.elの
(normal-top-level-add-subdirs-to-load-path)を自分用に改造してみました。
elisp-directoryとその中にあるディレクトリを全てload-pathに追加します。
ディレクトリRCS&CVSは追加しません。
パスを通したくないディレクトリには、.nosearchというファイルを置けば良いです。
(´-`).。oO(需要あるかなあ?)

(defvar elisp-directory (expand-file-name "~/lib/elisp")
"*自分の elisp-functionを入れておくディレクトリ")

(let (dirs
attrs
(pending (list elisp-directory)))
;; This loop does a breadth-first tree walk on DIR's subtree,
;; putting each subdir into DIRS as its contents are examined.
(while pending
(setq dirs (cons (car pending) dirs))
(setq pending (cdr pending))
(let ((contents (directory-files (car dirs)))
(default-directory (car dirs)))
(while contents
(unless (member (car contents) '("." ".." "RCS" "CVS"))
(when (and (string-match "\\`[a-zA-Z0-9]" (car contents))
;; Avoid doing a `stat' when it isn't necessary
;; because that can cause trouble when an NFS server
;; is down.
(not (string-match "\\.elc?\\'" (car contents)))
(file-directory-p (car contents)))
(let ((expanded (expand-file-name (car contents))))
(unless (file-exists-p (expand-file-name ".nosearch"
expanded))
(setq pending (nconc pending (list expanded)))))))
(setq contents (cdr contents)))))
(mapcar (lambda (dir) (setq load-path (cons dir load-path))) dirs))
605名無しさん@お腹いっぱい。:02/06/24 15:07
w3m-elでgooの辞書を使う。
>>586をパクりました。

;; 英和辞典
(defun eiwa-goo (str &optional flag)
(interactive
(list (cond ((eq last-command 'mouse-drag-region)
(car kill-ring))
((or (and transient-mark-mode mark-active)
(eq last-command 'exchange-point-and-mark))
(buffer-substring-no-properties
(region-beginning) (region-end)))
(t (thing-at-point 'sexp)))
current-prefix-arg))
(if flag
nil
(setq str (read-from-minibuffer "EXCEED英和辞典【検索語】: " str)))
(w3m
(concat
"http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT="
(w3m-url-encode-string str 'shift_jis)
"&sw=0")))

;; 和英辞典
(defun waei-goo (str &optional flag)
(interactive
(list (cond ((eq last-command 'mouse-drag-region)
(car kill-ring))
((or (and transient-mark-mode mark-active)
(eq last-command 'exchange-point-and-mark))
(buffer-substring-no-properties
(region-beginning) (region-end)))
(t (thing-at-point 'sexp)))
current-prefix-arg))
(if flag
nil
(setq str (read-from-minibuffer "EXCEED和英辞典【検索語】: " str)))
(w3m
(concat
"http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT="
(w3m-url-encode-string str 'shift_jis)
"&sw=1")))
>>605 をパクりました。

;; 国語辞典
(defun kokugo-goo (str &optional flag)
(interactive
(list (cond ((eq last-command 'mouse-drag-region)
(car kill-ring))
((or (and transient-mark-mode mark-active)
(eq last-command 'exchange-point-and-mark))
(buffer-substring-no-properties
(region-beginning) (region-end)))
(t (thing-at-point 'sexp)))
current-prefix-arg))
(if flag
nil
(setq str (read-from-minibuffer "大辞林第二版【検索語】: " str)))
(w3m
(concat
"http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT="
(w3m-url-encode-string str 'shift_jis)
"&sw=2")))
(setq w3m-search-engine-alist
(append '(("waei" "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%s&sw=1")
("eiwa" "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%s&sw=0"))
w3m-search-engine-alist))
こんな設定で、C-u M-x w3m-search じゃだめすか?
>>607 をパクりました。

(setq w3m-search-engine-alist
(append '(("kokugo" "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%s&sw=2"))
w3m-search-engine-alist))
お前ら常時接続うらやましいな。
610605:02/06/24 22:35
>>607-608
(・∀・)イイ!!と言いたいところだけど

Symbol's value as variable is void: w3m-search-engine-alist

なエラーが出て使えてません(涙
(autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGINE" t)
612611:02/06/24 23:14
エラーと関係なかった。スマソ。
>>610

(eval-after-load "w3m-search"
`(setq w3m-search-engine-alist
(append '(("waei" "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%s&sw=1")
("eiwa" "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%s&sw=0")
("kokugo" "http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%s&sw=2"))
w3m-search-engine-alist)))

かな。
614610:02/06/25 01:21
>>613
それで大丈夫でした。thx!

ついでに
("eiei" "http://www.dictionary.com/cgi-bin/dict.pl?term=%s&r=67")
もappendかな。
発音記号にgif画像使ってるのがw3m派にはちょっと痛いけど。
コンピュータ用語辞典とかはないかな?
>>604
exciteの翻訳ページ
http://www.excite.co.jp/world/text/
を使えるようにってのは無理ですか?
>>615
ASCIIのweb
generic.el 便利かも(標準で入ってる)。
例えば .hoge ってファイルは hoge-generic-mode にする。
コメントは % で始まる。
hoge fuga に色を付ける。
{{{[^}]+}}} な regexp に match した個所は太くする。
この mode に入ったときに hogehoge! って minibuffer に表示したい。
こんな mode を作りたいときにたったこれだけで作れちゃう。

(require 'generic)
(define-generic-mode 'hoge-generic-mode
'(?%) ; コメントの最初の文字
'("hoge" "fuga") ; 色を付けたい文字列のリスト
'( ; font-lock-keywords
("{{{[^}]+}}}" . bold))
(list "\.hoge") ; この mode を適用する拡張子
(list 'hoge-setup-function)) ; この mode に入ったときに呼ぶ関数

(defun hoge-setup-function ()
(message "hogehoge!"))
バッファ全体のインデントをやり直したいんだけど…こんなのでいいの?
一応動いているみたいなんだけど。

(defun delete-heading-spaces-and-indent-according-to-mode (begin end)
"Delete spaces at the head of line in the specified region."
(goto-char begin) (beginning-of-line)
(let ((i begin)(j 0))
(while (and (< i end)(= j 0))
(delete-horizontal-space)
(indent-according-to-mode)
(setq j (forward-line))
(setq i (point)))))

(defun indent-according-to-mode-region (begin end)
"Delete spaces at the head of each line in the region."
(interactive "*r")
(save-excursion
(delete-heading-spaces-and-indent-according-to-mode begin end)))

(defun indent-according-to-mode-buffer ()
"Delete spaces at the head of each line in the current buffer."
(interactive)
(save-excursion
(delete-heading-spaces-and-indent-according-to-mode
(point-min) (point-max))))
>>619
C-x h M-C-\ じゃだめ?
そ、そんなのがあるんですか……
知らなかった…
てか、基本的なもの以外は覚えられません (T_T)

たとえばその C-x h M-C-\ がいったいなんていう関数を実行しているのかって、
どうやって調べるんだろう… いまからマニュアル紐解きます。

http://www.gnu.org/manual/emacs-lisp-intro/emacs-lisp-intro.html の途中までと
http://www.gnu.org/manual/elisp-manual-21-2.8/elisp.html の途中までしか読んでないんです。
http://www.gnu.org/manual/emacs-21.2/emacs.html はこれから。

はぁー果てしなく長い道のりだ…
622 ◆ILHANTrk :02/06/28 14:42
# ちょっとスレチになってくるのが嫌なので返事不要。

>>621
C-h k の後に C-x h とすれば
C-x h runs the command mark-whole-buffer
と教えてくれます。
同様に C-h k C-M-\ とすればいいし。
マニュアルを全部目を通した人なんて少ししかいないでしょう。
>>621
> そ、そんなのがあるんですか……
M-x indent と打って TAB するとか。
C-h f と打って TAB するとか。
C-h a indent とか。
>>623
> C-h f と打って TAB するとか。
C-h f indent と打って TAB、の間違い。

あとは、C-h b して indent で検索、とか。
M-x apropos とか…
自慢汁!
Meadow に Internet Shortcut なアイコンをドラッグしたときに w3m を起動
するようにしてみる。
begin 666 my-w32-dd.el.gz
M'XL(`$IO'#T``X53L6[;,!"=;<#_<-"2(P(&:#[email protected]::.EF$*5(A
M3U;R]R7%R#5<U](@0=3=>^_>.V$D?H7^74Y?/LLFJ(-TZ>$'V8Y.2V5-Y-T6
MYNL!L1J#K>#I5GWCTU$OA-AM=UML*/7_OPQ09%2<.G*`RC6`UONC<0>I&*JZ
M?O[NF((C_M7YP'KDNGZI4L]F5H*!9"05="=;'R85&JA^__SQM:[QZ;&N107.
M6&`ABG2<&7O%J3YR2"SP2:PI!:03.2XZ35:C-)L30455.8SJ1)+>]!BB\>Z#
MRA(#8AM43]('.1G7^`EP\-&=7V;@I$0%AD(B%JF9JP5T/J&4\@&NP$2Q`:^=
M]=Q1D',Q+-(WF.(M9\DP2YJI661DB]9U98P;,<9Q'RY8@C*1"H^X<O:>S%6+
M>W5<8,O[724KJS=77E+V:M`JP.P\6M7O&P78&DM+&$N:Z5<`U$WJ5C%Z78JD
MRZ[2&Y/+^<-'XV93=O3N+W49^)QX_E2V.\7.G63J![D?VY;">>F-BQ12FIE;
M^V27XWAF+24'SU[[email protected]\?=S9E'6SFSE.$WBFAFR("VZ,!M31LZW
J\Y86BP_6[Y65>;>.]`[/%T.^P,._DXL;/=_D6M?EJB2$/[UERX:J!```
`
end
628英辞郎 on the Web:02/07/01 20:38
英辞郎 on the Web を Emacs の中から引けるようにしてみました。
lookup と w3 が必要です。
M-x eijiro とすると単語を聞いてきます。
カーソル位置の単語がデフォルトになっています。
英和・和英は自動的に判断します。
検索結果の先頭の広告部分はスキップします。
動作確認は xemacs 21.4 (patch 6), Debian GNU/Linux 3.0 (woody) for x86 です。

(defun eijiro-hexify-string (string)
"Escape characters in a string as euc-japan."
(mapconcat
(function
(lambda (char)
(if (not (memq char url-unreserved-chars))
(if (< char 16)
(upcase (format "%%0%x" char))
(upcase (format "%%%x" char)))
(char-to-string char))))
(encode-coding-string string 'shift_jis) ""))

(defun eijiro (pattern &optional dummy)
"Look up PATTERN in the online Eijiro dictionary."
(interactive (lookup-pattern-input))
(let ((cgi "http://home.alc.co.jp/db/owa/eijiro_red2")
(word-prefix "word_in=")
(mode-prefix "type_in=")
(mode "ej")
(url)
(hexified-pattern)
(top-margin 15))
(or (string-match "^[a-zA-Z '\"\?!]+$" pattern)
(setq mode "je"))
(setq hexified-pattern (eijiro-hexify-string pattern))
(setq url (concat cgi "?" word-prefix
hexified-pattern "&" mode-prefix mode))
(w3-fetch url)
(message (concat "Looking up : " pattern ))
(set-window-point (selected-window) (point-min))
(scroll-up top-margin)))

ホントは referer もいじったほうがいいのかもしれませんが、
ALC さんが寛大であることを期待して……

ちなみに漏れは普段あんまり Emacs Lisp を使ってないので、
変なところがあったら教えてください。
629英辞郎 on the Web:02/07/01 20:44
>>628
"Escape characters in a string as euc-japan."
のところ、 euc-japan じゃなくて shift-jis ですた。
630英辞郎 on the Web:02/07/02 13:36
>>629 xemacs -nw でもまぁ使えることを確認しマスタ。
でもまだ lookup.el と w3.el がロードされてないときに自動的に
lookup-pattern-input と w3-fetch が使えるようにする方法が分かりません。
autoload ? provide & require ? まだ勉強中。
631英辞郎 on the Web:02/07/11 18:30
>>630 しばらくほうっておいたんですけど、先頭に
(require 'w3 "w3")
(require 'lookup "lookup")
つけとけばいいだけでしたね。
632あぼーん:あぼーん
あぼーん
633名無しさん@お腹いっぱい。:02/07/11 19:35
>>631
ふつー autoload だろ?
この場合は関数の中に require 書く方がいいと思うが。
iswitchb を便利にしてみる。
;; うざいだけかもしれんが。
(defadvice iswitchb-completions (after
iswitchb-completions-with-file-name
activate)
"選択してるときにファイル名とかを出してみる。"
(when iswitchb-matches
(save-excursion
(set-buffer (car iswitchb-matches))
(setq ad-return-value
(concat ad-return-value
"\n"
(cond ((buffer-file-name)
(concat "file: "
(expand-file-name (buffer-file-name))))
((eq major-mode 'dired-mode)
(concat "directory: "
(expand-file-name dired-directory)))
(t
(concat "mode: " mode-name " Mode"))))))))

(defadvice iswitchb-exhibit (after
iswitchb-exhibit-with-display-buffer
activate)
"選択している buffer を window に表示してみる。"
(when iswitchb-matches
(select-window (get-buffer-window (cadr (buffer-list))))
(iswitchb-visit-buffer (get-buffer (car iswitchb-matches)))
(select-window (minibuffer-window))))
>>635
すごく便利!
>>635
(require 'dired) があった方がいいかも。
>635

すばらしいです。
>>635
Good Job!!

>>637
dired-directory が未定義だと警告されるからですか?

それなら (eval 'dired-directory) に置き換えれば警告は消えました。

ほかに何か見落としてるでしょうか?
640637:02/07/18 02:01
>>639
おっけーです。
>>639
> それなら (eval 'dired-directory) に置き換えれば警告は消えました。
(defvar dired-directory nil)
の方がいいかも。
642639:02/07/20 22:09
よく考えたら、 (eval 'dired-directory) よりは
(identity 'dired-directory) のほうがいいですね。
どっちにしろ横着ですが。

もっとちゃんと解決するには、やっぱり >>637>>641
643639:02/07/20 22:13
すみません。ボケてました。
そもそも、問題の advice の方はうちじゃ動いてなかったようだ……。

スレ汚し失礼。
emacs-w3m 上の素の w3m で、 frame を一応表示させてみる。

(defun my-w3m-fontify-frames ()
"Insert frame contents directry."
(save-excursion
(goto-char (point-min))
(save-match-data
(while (re-search-forward "<frame[^>]*src=\"\\([^\"]*\\)\"[^>]*>" nil t)
(let* ((url (save-match-data
(w3m-expand-url (match-string 1)))))
(delete-region (match-beginning 0) (match-end 0))
(insert (with-temp-buffer
(let ((out (current-buffer)))
(with-temp-buffer
(let ((type (w3m-retrieve url)))
(when type
(w3m-prepare-content url type out)))))
(buffer-string))))))))

(add-hook 'w3m-fontify-before-hook 'my-w3m-fontify-frames)
645名無しさん@Emacs:02/07/28 22:52
age
646名無しさん@Emacs:02/08/05 19:31
age
(define-key global-map [(hyper t)] 'tool-bar-mode)
(define-key global-map [(hyper m)] 'menu-bar-mode)
XEmacs で tool-bar-mode と menu-bar-mode.

(when (and (featurep 'toolbar) (fboundp 'set-specifier))
(defun tool-bar-mode (&optional arg)
(interactive)
(set-specifier default-toolbar-visible-p
(if (null arg)
(not (specifier-instance default-toolbar-visible-p))
(> (prefix-numeric-value arg) 0)))))

(when (and (featurep 'menubar) (fboundp 'set-specifier))
(defun menu-bar-mode (&optional arg)
(interactive)
(when (fboundp 'set-specifier)
(set-specifier menubar-visible-p
(if (null arg)
(not (specifier-instance menubar-visible-p))
(> (prefix-numeric-value arg) 0))))))

649hage:02/08/06 03:17
英辞郎 - コマンドラインから和英/英和単語翻訳
----> http://bulknews.net/lib/columns/02_eijiro/column.html
この方法で使えなくなった。

----------------------------------------------
本現象は、弊社Norton InternetSecurityの初期設定におきましてリファラ(参照元)情報を遮断しているために発生しております。
以下URLにて公開されておりますNorton InternetSecurityの設定を行っていただくことで本現象は回避されます。
http://service1.symantec.com/SUPPORT/INTER/nisjapanesekb.nsf/jp_docid/20020215093818947
----------------------------------------------

誰か、LWP::UserAgent を使って書き直しておくれ。


650hage:02/08/06 03:36
#!/usr/bin/perl -w
# eijiro.pl - http://www.alc.co.jp/eijiro/

require HTTP::Headers;
require HTTP::Request;
use strict;
use Jcode;
use LWP::Simple;
use LWP::UserAgent;
use HTTP::Request::Common;
use FileHandle;
use URI::Escape;
use HTML::FormatText;
use HTML::TreeBuilder;
use Term::ReadLine;

my $historyfile = $ENV{HOME} . '/.eijirohistory';
my $pager = $ENV{PAGER} || 'less';

my $action = 'http://home.alc.co.jp/db/owa/eijiro_red2';
651hage:02/08/06 03:37
# Terminal mode / Argv mode
if (@ARGV) {
  my $line = join ' ', @ARGV;
  translate($line);
} else {
  my $term = Term::ReadLine->new('Eijiro');
  # read history
  if (my $fh = FileHandle->new($historyfile)) {
    my @h = $fh->getlines;
    chomp @h;
    $fh->close;
    my %seen;
    $term->addhistory($_) foreach (grep { /\S/ && !$seen{$_}++ } @h);
  }
  # readline & translate
  while ( defined ($_ = $term->readline('eijiro> ')) ) {
    exit if /^!exit/;
    translate($_);
    # Add history
    {
      my $fh = FileHandle->new(">>$historyfile") or die $!;
      $fh->print("$_\n");
      $fh->close;
    }
    $term->addhistory($_) if /\S/;
  }
}

sub translate {
  my $line = shift or return;

  # ej or je
  my $type_in = $line =~ /^[\x00-\x7f]*$/ ? 'ej' : 'je';

  # URI-Escape
  my $word_in = Jcode->new($line)->sjis;
  $word_in = uri_escape($word_in, '\W');


652hage:02/08/06 03:37

  # get Simply
  my $url = sprintf '%s?word_in=%s&type_in=%s', $action, $word_in, $type_in;



  my $ua = LWP::UserAgent->new;

  $ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" . $ua->agent);
  my $req = HTTP::Request->new(GET => '$url');

  $req->header('Accept' => 'text/html');
  my HTTP::Response $content = $ua->request($req);
  # 出力のチェック

  if ($content->is_success) {
print $content->as_string;
  } else {
print "Error Is : " . $content->status_line . "\n";
  }


  my $parser = new HTML::TreeBuilder;
  my $html = $parser->parse(Jcode->new($content)->euc);
  my $format = new HTML::FormatText(leftmargin=>0);

  my $p = new FileHandle "| $pager";
  $p->print($format->format($html));
  $p->close;
}
653hage:02/08/06 03:40
上記では動かない。だれか〜。

>>653
馬鹿、激しくスレ違い。

$req->push_header('REFERER' => 'http://www.alc.co.jp/');
とかやってみれ。
今さらだけど >>635 (・∀・)イイ!!

;; でもあんまり便利になっても、もし .emacs が消えてしまったら生きてい
;; けなくなるんじゃないかと不安。。
656ふわふわ名無しさん:02/08/07 22:52
>>655
もし、あなたの .emacs が消えてしまったら?
* なにそれ?
* なんともない
* 利き手と逆の手で文字を書くぐらい辛い
* 音信不通になる
* 生きていけない

>>656
ctrl-hでヘルプが出た時点でとりあえず泣く。
整理するのにはいい機会かも知れない。
やりたいことがクリアなら一から書くよりずっと速く出来るだろうし。
>>657
なんでC-hを変更する人が多いんだろ。
あとF1でヘルプ出すのも許せない。
>>659
C-h で backward-delete-char したいから。
661ふわふわ名無しさん:02/08/09 15:01
>>660 同じく。
qwerty で使っていたときは C-h はそのままで、いつも一歩戻って
C-d してたけど、dvorak になったら C-h 使う使う。
指を動かさなくていいのって大きいと思った。

逆に、qwerty の時は多用した C-t を余り使わなくなったよ。
そう思う前に反射的に C-h しちゃってる。
お前らあふぉか
shell-mode の Completions がうざいので、

(defadvice comint-send-input (after hide-completions)
(let ((completions-window (get-buffer-window "*Completions*"))
(other-buffer-name (buffer-name (other-buffer))))
(if (and completions-window other-buffer-name)
(set-window-buffer completions-window other-buffer-name))))
(ad-activate 'comint-send-input)
664名無しさん@お腹いっぱい。:02/08/14 10:34
emacs を起動した時に行われる処理は、すべて lisp/startup.el に書かれているのでしょうか?
その前、後にはなにも暗黙の処理は行われないのでしょうか?
665名無しさん@お腹いっぱい。:02/08/14 10:34
>>664
すみません、スレ間違えました。
666名無しさん@お腹いっぱい。:02/08/18 00:26
>>604

(let ((default-directory "~/lib/elisp"))
(setq load-path (cons default-directory load-path))
(normal-top-level-add-subdirs-to-load-path))
>>666
>>604の意図がわかっていないと思われ
gnu.emacs.sources に出てた pretty-lambda.el をちょこっとだけ改変:
(defvar pretty-lambda-character "λ"
"the alternative character displayed in place of lambda.")
(defun pretty-lambda ()
(font-lock-add-keywords
nil `(("\\<lambda\\>"
(0 (progn (compose-region (match-beginning 0) (match-end 0)
pretty-lambda-character)
nil))))))
(add-hook 'emacs-lisp-mode-hook 'pretty-lambda)
(add-hook 'scheme-mode-hook 'pretty-lambda)

オリジナルで使ってた (make-char 'greek-iso8859-7 107) よりも
全角の "λ" の方がいいと思うのだが、まぁフォントによるか。
669名無しさん@お腹いっぱい。:02/08/22 20:50
(defun diary ()
(interactive)
(find-file (format "~/doc/diary/%s-%s.html"
(substring (current-time-string) 20)
(substring (current-time-string) 4 7))))

ついでに .cshrc にも。
alias diary `date | awk \{print\ \"~/doc/diary/\"\ \$6\ \"-\"\ \$2\ \".html\"\}`
670669:02/08/22 20:53
訂正。'alias diary ' のうしろに 'mule -nw ' を挿入してください。
671ふわふわ名無しさん:02/08/22 21:41
>>669 date の引数で書式指定した方がよいよ。
672名無しさん@お腹いっぱい。:02/08/27 16:48
>>599
を.eamacsに書いてM-x google し 文字列を入力し C-m すると

google: Symbol's function definition is void: my-url-encode-string

とミニバッファにエラーが出るのですがどう対処したらいいのでしょうか?
「こうすればいいんだぜ!」と自慢出来る人自慢してください。

FreeBSD 4.6.2 Emacs21.3.50
>>672
>>599 の名前でどう
>>673
さんきゅ
>>565 当たりに追加
(defun google-jump (str &optional module)
(interactive (list (read-string "Google jump: " (lookup-current-word))))
(google str "&hl=ja&btnI=I%27m+Feeling+Lucky"))
(global-set-key "\C-c\C-j" 'google-jump)

I'm Feeling Luckeyボタンの動きをする。
基本的にはURLでも何でも突っ込めば行ける。
googleに登録されていない場合無理だけど…。
676名無しさん@お腹いっぱい。:02/09/06 16:16
http://www.dotemacs.de/
おまえらここで自慢すれ。
677名無しさん@Emacs:02/09/14 20:48
Wanderlustでutf-8を表示させるためのMule-UCSのロードが長いので、
utf-8のメールを開いた時にロードする。(utf-8がくるまで、ロードしない)

(defvar my-wl-load-mule-ucs nil)
(add-hook 'wl-message-display-internal-hook
(lambda ()
(let ((message-buffer (wl-current-message-buffer)))
(if (and (not my-wl-load-mule-ucs)
message-buffer
wl-current-summary-buffer)
(save-excursion
(set-buffer message-buffer)
(if (re-search-forward "^Content-type:.*charset=UTF-8" 10000 t)
(progn
(message "loading Mule-UCS...")
(require 'un-define)
(setq my-wl-load-mule-ucs t)
(set-buffer wl-current-summary-buffer)
(wl-message-buffer-cache-clean-up)
(wl-summary-set-message-buffer-or-redisplay 'ignore-original))))))))
(setq wl-message-visible-field-list
(list "^Dnas.*:"
"^Message-Id:"
"^Content-Type"
))
>>677
明かに素人レベルのソースなんで突っこみ所イパーイな訳ですが、
とりあえず一つ目の指摘はmy-wl-load-mule-ucsなんて変な
変数作らずに大人しく(featurep 'un-define)しとけってこった。
>>678
どうも。
できれば、もっとつっこんで頂いて、玄人っぽい、コードをおせえてくださると、
後学になってうれしいのですが。。。
680名無しさん@お腹いっぱい。:02/09/21 06:12
>>586,599 の Google 検索大変便利に使わせてもらっています。
C-SPC C-SPC C-x C-x するのが結構面倒なんですが、カーソルの
下の文字を適度に文節分けして検索対象にできないでしょうか?
lookup は結構賢く切り出してくれるのですが。
>>680
lookup も w3m も使っていいならこんなんでどう?? あんまし使ってないので
おかしいとこあるかもしれんけど。

;; google で検索して browse-url (Netscape) で表示
;; w3m で表示するならば `w3m-search' がある
;; fixme
;; 他のサイトへの対応(w3m を参考)と翻訳もしたい
(defun google (arg)
(interactive "P")
(let ((str
(if mark-active
(buffer-substring (region-beginning) (region-end))
(read-string "Google search: " (lookup-current-word)))))
(require 'w3m)
(if arg
(browse-url
(google-all str))
(browse-url
(google-ja str)))))
;; google 日本語検索
(defun google-ja (str)
(concat "http://www.google.com/search?q=" str "&hl=ja&lr=lang_ja"))
;; google ウェブ全体から検索
(defun google-all (str)
(concat "http://www.google.com/search?q=" str))
682名無しさん@お腹いっぱい。:02/09/27 14:08
ll
>>586,599 使ってみたのですが 1つの単語を検索するのは問題ないけど
2つをスペースを開けて並べると
mapcar: Symbol's value as variable is void: n

って出て検索出来なくない?
684名無しさん@Emacs:02/10/07 04:04
age
vim のC-a、C-x相当の機能を実現するelisp知りませんか?
スレ違いです。
>>685
そんな機能いらねーw
どんな機能なのか説明キボン
689687:02/10/14 13:45
>>688
手元にvimが入った環境がないから確認できないが、カーソル位置にある数字をインクリメント(C-a)、
デクリメント(C-x)する…だったハズ。昔はvim使いだったから知ってるんだけど、使ったことないや。

>>685
lispで書いてここに貼ってね。このスレはそういうところ。
690!685:02/10/15 16:31
>>689
書いてみた。

いまいちなんだけど、あんまり使いそうも無いことに気付いたので
もういいや。

(defun integer-edit (add-num)
(save-excursion
(save-restriction
(forward-word 1)
(if (search-backward-regexp "[1-9][0-9]*")
(progn
(narrow-to-region (match-beginning 0) (match-end 0))
(let ((numstr (match-string 0)))
(goto-char (point-min))
(replace-string numstr (int-to-string (+ add-num (string-to-int numstr))))))))))

(defun integer-edit-increase (add-num)
(interactive "p")
(integer-edit add-num))

(defun integer-edit-decrease (add-num)
(interactive "p")
(integer-edit (- add-num)))
691!685:02/10/15 17:04
>>690

駄目でした。直してね。
< (forward-word 1)
< (if (search-backward-regexp "[1-9][0-9]*")

> (backward-word 1)
> (if (search-forward-regexp "[1-9][0-9]*")

でも、これでもうまくない。
(数値列の先頭にポイントがあって、それより前に別の数値列がある場合、そっ
ちが変わってしまう。)
>>691
カーソル位置にあるって事で、いきなり read してみるとか。

(defun integer-edit (add-num)
(save-excursion
(skip-syntax-forward "-")
(condition-case nil
(let* ((p (point))
(i (read (current-buffer))))
(when (numberp i)
(delete-region p (point))
(insert (number-to-string (+ i add-num)))))
(error nil))))

一応、空白だけは飛ばしてみたけど…
ところで、685はこの要らない機能を何に使うのだろう。
>>693
このスレで自慢するのでは?
695Emacs外道:02/10/28 19:01
(if (boundp 'input-method-alist)
(progn
;いったん Wnn を起動する
(if (assoc "japanese-egg-wnn" input-method-alist)
(activate-input-method "japanese-egg-wnn")
)

;デフォルトのものに戻す
(activate-input-method default-input-method)
(inactivate-input-method)
))

これ絶対必要。これ書かないで
(global-set-key "\C-e" 'previous-line)
(global-set-key "\C-x" 'next-line)
とかやると、XEmacsでC-\押した瞬間に文字入力が効かなくなる。
696名無しさん@お腹いっぱい。:02/10/31 12:47
Windowsのメモ帳みたいにリージョンを選択した状態で
バックスペースや文字入力をすると選択範囲が消えて,
上書きされる設定ってないですか?

質問は下記のスレッドのほうへ

Emacs part6
http://pc.2ch.net/test/read.cgi/unix/1032611750/
698名無しさん@お腹いっぱい。:02/10/31 14:54
タブ,全角スペース,改行直前のスペースに色を付ける
## 黒背景向け

(defface my-face-b-1 '((t (:background "gray"))) nil)
(defface my-face-b-2 '((t (:background "gray26"))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)

(defadvice font-lock-mode (before my-font-lock-mode ())
(font-lock-add-keywords
major-mode
'(("\t" 0 my-face-b-2 append)
(" " 0 my-face-b-1 append)
("[ \t]+$" 0 my-face-u-1 append)
)))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
699名無しさん@お腹いっぱい。:02/10/31 15:07
>>698
どっかの web page で見て俺も使ってる
C言語をプログラミングする際に便利と思われるものを自慢してください。
(;´Д`)ウズウズ
>>698 は、まんまコピペだな。作者なら問題ないが、そうでないなら
断わりを入れたほうがよかろう
>>702
defface して defadvice で font-lock に引っかけるくらいは誰でも
やってると思うけどなぁ。作者が誰かは知らないけど、この程度なら
設定サンプルのうちだし、気にはしないような。
>>703
まあその通りなんだが、さすがに一字一句同じだからねえ。
どこかのページで拾ったと一言添えてもいいだろうに。
>>696
(pc-selection-mode)
706名無しさん@お腹いっぱい。:02/11/02 06:41
;;For AMP
(display-battery)
(setq battery-mode-line-format " [%L %B %p%%] ")
(cond (window-system
(setq frame-title-format
'((multiple-frames " ")
battery-mode-line-string
("[ %b ]" (buffer-file-name "[ %f ]"))))
(remove-hook 'global-mode-string 'battery-mode-line-string)))
識者が公開してる.emacs.elを見て,思い付いただけだが…(石投げないでね)
#!/bin/sh とかのスクリプトファイル保存時に
自動で実行許可フラグを立てるフック、
標準で用意されるようになってたみたい。

(add-hook 'after-save-hook
'exeutable-make-buffer-file-executable-if-script-p)

これで >>29 と同等のことをしてくれる上に
.emacs.el の行数を減らしてくれる。

最近不要な設定を削る方にはまってたりする。
使いもしないモードの設定なんかいらんもんね。
708名無しさん@お腹いっぱい。:02/11/02 12:16
>>707
それっていつの Emacsからあるの?
Emacs 20.7 と Emacs 21.1 にはあった。
executable.el ってやつにはいってる。
でも相変わらず ange-ftp とか tramp 越しだとダメか…あとでいじってみよう。

>>708
exeutable になってるから動かないんじゃないの?
executable-make-buffer-file-executable-if-script-p …だ。
711名無しさん@お腹いっぱい。:02/11/03 05:40
;; さっきなんとなく*scratch*に書いてしまった。.emacsには入れていない。

(defun sinh (x)
(/ (- (exp x) (exp (- x))) 2))
(defun cosh (x)
(/ (+ (exp x) (exp (- x))) 2))
(defun tanh (x)
(/ (sinh x) (cosh x)))
(defun arcsinh (x)
(if (>= x 0)
(log (+ x (sqrt (+ 1 (* x x)))))
(- (log (- (sqrt (+ 1 (* x x))) x)))))
(defun arccosh (x)
(log (+ x (sqrt (- (* x x) 1)))))
(defun arctanh (x)
(/ (log (/ (+ 1 x) (- 1 x))) 2))

;; ツッコミどころありまくりかもしれないがご容赦を。
712名無しさん@お腹いっぱい。:02/11/03 20:30
>>707
これって
"executable-make-buffer-file-executable-if-script-p"
の間違いじゃない?

http://www.google.com/search?q=exeutable-make-buffer-file-executable-if-script-p&sourceid=mozilla-search&start=0&start=0
713名無しさん@お腹いっぱい。:02/11/03 20:37
(  )
ノ( * )ヽ
 ノωヽ\ プップッ
     \●
      \\  ベシッ
         ●(´・ω・`) アタタ!
         (∩ ∩)
.
.
          (・ω・` ) ン?
     ● ● (∩ ∩)

.
           (・ω・` )
     ● ●ノ (∩ ∩)

.             
          (●ω・` )
       ●ノ (∩ ∩)

.             
          (●ω● ) タモーリ
          (∩ ∩)


     ♪  
   ♪           
      ヽ(●ω●)ノ   オヒ-ル ヤスミハ
         (  へ)     ウキウキ
          く        ウォッチン♪
>>710
うちだと、tramp 管理下のファイルでも +x してくれたよ。
tramp 2.0.25 ね。
716710:02/11/05 21:02
tramp(su) だといけた。ange-ftp だとだめだった。よく試さないで書いてしまってすまそ。
理由は書かなくても分かるわな…。
; 16進数で色一覧を表示
(defun list-hexadecimal-colors-display ()
(interactive)
(let ((r 0)
(g 0)
(b 0)
(delta 32)
(color-list ()))
(while (< r 256)
(setq g 0)
(while (< g 256)
(setq b 0)
(while (< b 256)
(setq color-list (append color-list (list (format "#%.2x%.2x%.2x" r g b))))
(setq b (+ b delta)))
(setq g (+ g delta)))
(setq r (+ r delta)))
(list-colors-display color-list)))
>>717
便利だ…(*´Д`)ハァハァ。頂いてきまつ。
719名無しさん@Emacs:02/11/06 12:22
>>718
これ、html 系のモードで色指定するとき使えないかな。
リターン押すとその色が挿入されるみたいな。
720717:02/11/07 00:16
begin 666 color-selection.el.gz
M'XL("+@MR3T``V-O;&]R+7-E;&5C=&EO;BYE;`"55LURVS80/HNOD,N&AD:D
M4JJVTV::VHG'<=K8<:K)3*>])/4,2$(4(@I4"="6<\BS=Q<`:<F19/<@BESL
M_WZ[V*.C(TB&"?PVYYE./DB]H,_@",D'+YZP-R?O3PQ[Q\8G@_WRCYN+5\<1
M.W?O[!F3;-Q__O2X?W%Z]?NW)]&;`.5@>*&TX67)C:P4$0`^??MQ),C`/^X;
M(.*-J<J*YS`HI3;)5"QY+C(YYV62X4&MDQQ]*?DMA/8[T:(4&:D,6QT`X5O/
MLR(.EAV?N=`_`%<YZ&EU`S=3;L!,Q2V4536#4L[$*`03!T$0Y6)RS6NX9R>Q
MCLU13S(E$27+`$T.,4<&J@E,&F7Y-)@*,@P8;0@%0AE12U5X/SIU0.J`U(W"
MQUF=\T5K]%+<TM>DJK>HY5^0V"F/Y&2WWH"RYW1'I3`01:0>'S.1Z`6OM4AF
MUF0<QY:7O)7*4H%8P\]GR3R$P48K&>8+-=@S+ZZ%^?>!4+TUBR$"WH"-/[P^
MW6<U@8N]9#-VSA)VR=ZR`S9#L,&B1I^6Q/X)RS]?E**#5[@7`KQZ#7MU711I
MVI'WER&1]Y>>OK,(3G^BC2TGJK3E_VBIX*G59`5O+O>[5$J5U6*.$('GAU;;
M14=`38)G4Z\.Q8CJH-(FA+JN_[%_UO^K_Y2Z#U-4GP[9W]1YCH>EF"3Z,7;2
M<5YVJ1R__^7HZUC?I90DR>%&;?9WM9(042W#,TNB5O*N&NJL124Q!JE!JA'E
M*9+4!AQ578OX#F7.B.)S`6$8?X\->Q)E.1HKA$F,6%(9JH6HS2U$UD@,@PG/
M1+Q=NE(9>O2(D@:]7L]-(]VDGK:BZ8"\5H69KA#CSNY,EF62-I.)0&>SIJZQ
M7/Y[Q;668Z,W52T+J7BKQDM)I3'<=9L="/I?^B_[Y^SRIRMVQ4HVH]+:85S;
MT>Q+BKQDX->U/FJ+/W8Z'BS]^A2.B&@KN1*5+9)[3Q#'W&!9AV<D^&>K;.C*
M'"$8$$AK@6I^+1*QQ-QINBG<2'=`T7'0BVZFLA0VD*!'>9E`I"H\5`W.6HUJ
M>U[$9RS\K$)'=:#0+6(<S7-%&3:G#:8EYU0YG.&'^XZR:.XC3Z]C;P4X&<W_
M0<JS65%7C<K;5KDS\J!#.*G"[[SZ_S[@W2`>X8.]+FR'^:.U/O*UQ%+F2:7*
M6S#^=.OH;J5OI,FFF,46&AMQ$-BM`MJUPB\5Z]CUF'QH*[##:,N4J8$J&17N
M+W5_N2@-Q[%+[RX:EXI-@V1WGVYK=X?7Z!AJ./SY1=P"VNJUOGA"QU<XOI[/
MO?.S.TW]Z;IKSFF^6`C<;%9)[HDHF./P"_?ZH\-E^PO1HP+2>`T(*43/\+'[
MFK(2;03(7SR"?S7LFH0>N@N["CQF#MV%[,;BKA%&^-P"%#N]<6=+R@I7MP0O
M;,G34FA[:!NO!;<+Q"Y83N'FG><>.RTU[IK;N@:&EKW!J>A\H!UHYX9D^>M&
3V754[_##,F!V_@/<8:O%W`L`````
`
end
721717:02/11/07 00:17

リターンで色コードが挿入されるようなのを書いてみました。
Emacs Lisp ってあんまり書いたことないんで変なところがあったら教えてください。
722名無しさん@Emacs:02/11/07 18:58
>>721
おぉー! いいかんじ!
使わせていただいてます。
色選ぶとき、新しいウィンドウ開いてくれるとうれしいかも。
高さも指定出来ると嬉しいです。
>>722
自分で書いてそれ書き込めやゴルァ
>>722
ここは自慢するスレだからな。
(defun scroll-up-in-place (n)
(interactive "p")
(previous-line n)
(scroll-down n))

(defun scroll-down-in-place (n)
(interactive "p")
(next-line n)
(scroll-up n))

(global-set-key "\M-p" 'scroll-up-in-place)
(global-set-key "\M-n" 'scroll-down-in-place)




(eval-after-load "tetris"
'(progn
(setcdr (assq t (car tetris-border-options)) (list "++"))
(setcdr (assq t (car tetris-blank-options)) (list "| "))
(setcdr (assq t (car tetris-cell-options)) (list " "))
;; (setcdr (assq t (car tetris-space-options)) (list " "))
(setcdr (assq 'emacs-tty (car tetris-cell-options)) (list "[]"))
))
727名無しさん@お腹いっぱい。:02/11/20 21:30
PSファイルへ印刷出力
(setq ps-lpr-command "cat2file")


〜cat2file〜
#!/bin/sh
cat $* >/tmp/emacs>_print_out.ps
728名無しさん@Emacs:02/11/20 22:07
>>727
そんなことしなくても
標準の ps-print-buffer に C-u のプリフェックス付ければ
ファイルに出力出来ると思った。
プリフェックス カコ(・∀・)イイ!!
prefix
プリセクース
婚前交渉
732名無しさん@お腹いっぱい。:02/11/22 15:07
ps-print という言葉に反応して
自分の設定を貼ってみる
余白とか減らしてるだけです

;; ps-print
(setq ps-paper-type 'a4)
(setq ps-font-size 8)
(setq ps-number-of-columns 2)
(setq ps-landscape-mode t)
(setq ps-left-margin (/ (* 72 1.5) 2.54) ) ;1cm
(setq ps-inter-column (/ (* 72 0.5) 2.54) )
(setq ps-right-margin (/ (* 72 1.0) 2.54) )

(setq ps-top-margin (/ (* 72 0.7) 2.54) )
(setq ps-bottom-margin (/ (* 72 1.2) 2.54) )
(setq ps-header-offset (/ (* 72 0.5) 2.54) )

(setq ps-print-only-one-header t)
自慢って云う程でも無いんですけど、
タブ好きなんで自前でLisp書いてメニューを
それっぽくタブ化してみました。

そのまま貼るには結構長くなってしまったので、
http://ruins-isweb.hp.infoseek.co.jp/
に(要らない)説明までつけて上げてあります。

自分の .emacs での設定はこんな感じ。
(load "tabbed-menu-mode.el")
(global-set-key [C-tab] 'tabbed-menu-next-buffer)
(global-set-key [C-S-tab] 'tabbed-menu-prev-buffer)
(setq
tabbed-menu-fixed-menu-string "."
tabbed-menu-tab-function-string '(" " " x " " % ")
)

ほぼ初めてのマトモなelispなのでかなり稚拙です。
自分のところ(20.7)では一応ちゃんと動いてるので、
興味のある方は試してみて下さい。
実にそれっぽいですが、かなり胡散臭いコードと動きだったり。

# Emacs21には何かそんなlibraryやモードってあるんでしょうか。
# あったら20.7からとっとと移行してそちらを使いたかったんですが。
# 調べてもそれっぽいのがさっぱり見つかりません。
# xyzzyにはちゃんとあるのになぁ…。

# まぁ既にあったとしても、折角ゴリゴリと書いてしまったので
# こっそりとココで自慢(さら)させて下さい。
>733

まだ使ってないけど面白そうだ。ありがと
>>733
面白いんだけど、普段 iswitchb-buffer でやってるから
あんまり出番がなかったりする・・・
736名無しさん@お腹いっぱい。:02/11/24 03:32
>733

気に入った。
でも tabbed-menu-tab-function-string ってなに?
provideしてrequire出来るようにした方が良いのでは。
738733:02/11/25 20:39
>735
自分もiswitchb-bufferを使っています。
バッファ一覧が常に視界に入っていれば良いかなぁと。
というわけで今のところ自分も表示させて満足してるだけだったり。

>736
ソースのコメントアウトされてる部分の値に設定して
貰えればすぐ分かると思いますが、メニュー左端に
・(S) スイッチバッファ
・<K> キルバッファ
・{R} リードオンリーのトグル
というタブ動作の切り替えボタンを表示するためのラベル設定です。
(21.xでは「押してもすぐに更新されない」らしいのであんまり使えません。)

気に入って貰って嬉しい限り。

Emacsではマウスを滅多に使わないため(当然か)、
tabbed-menu-tab-function-string 設定は
単に雰囲気をタブブラウザっぽさを演出するためだけの
余分な機能のつもりでした。

>737
最後の行に
(provide 'tabbed-menu)
とか書くだけで良いのでしょうか…。

provideなどの仕組みを殆んど理解していないため
また勉強しときます。require は.emacsでおまじない程度に
使っていたに過ぎませんし、自前で使っている分には
全然支障が無かったんで…。
739733:02/11/25 20:40
sage忘れました…。済みません。
740フェチ:02/11/25 20:46
741736:02/11/25 21:09
うーむ 21.x だからか。うまくいかないので混乱してました。
emacsを使ってる間マウスなんて触らないので、あまり使う機会がないと思いますが、
ありがたく頂戴します。

おもしろい。

742733:02/11/29 03:24
>736
21.xでの動作を(かなり強引な方法を使って)直してきました。

それと、設定が少し複雑になってしまったのが難点な蛇足なのですが、
タブを表示するバッファも色々指定出来るように少し手を加えました。

ttp://ruins-isweb.hp.infoseek.co.jp/

# そろそろやることが無くなってしまった感じです。
# 思ったより反応が良くてビックリ。

# やっぱりタブ好きな方は多いんですね。
# 最後は自らageておきます。
743733:02/11/30 00:14
>737
ぐあ、やっぱりprovideとrequireの使い方
よく理解していなかった様です。
というわけで微妙に修正しておきました。

実に恥ずかしい限り…自慢するだとかいう以前のLvでした。

大変御騒がせしてしまって、あとかなりスレを私的っぽく
利用してしまって申し訳ありませんでした。
今後も精進してきます。
ぐあ...ッテ,チトハズカスィ
WinでMeadowを使っているときに便利なぐらい

;; IME
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(add-hook 'mw32-ime-on-hook
(lambda () (set-cursor-color "blue")))
(add-hook 'mw32-ime-off-hook
(lambda () (set-cursor-color "black")))
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
746名無しさん@お腹いっぱい。:02/12/05 21:19
tails-history
http://www.ganaware.org/S/tails-el/

M-x s M-p とするとヒストリを検索して,M-x shell などに
補完してくれる

ただし,Emacs 21 では動かない
escreen-tab
ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/
escreen をタブ化してくれる elisp。マウスで切り替えられてだらだらメール
読むときに便利。漏れの .emacs では↓のように設定してる。
(require 'escreen)
(global-set-key "\C-z" escreen-map)
(setq escreen-mode-line-format '(escreen-number-mode ("[" escreen-current-screen-string "]")))
(escreen-install)
(require 'escreen-tab)
748名無しさん@お腹いっぱい。:02/12/07 23:18
http://homepage3.nifty.com/akima/soft/meadow_15.html#SEC173

abbrev の補完をしてくれる.候補がなければ dabbrev
これでもう abbrev の候補を全部覚える必要はない
749名無しさん@お腹いっぱい。:02/12/08 02:24
sudo emacs /etc/... したとき用にモードラインの色を変えるやつを作ってみました。
emacs lisp初めて書きました。でもこれって -nwで起動するとなぜか無効にされる・・・なぞ。

;; ユーザーによりモードラインの色を変
(cond
((string-match "root" user-login-name)
(set-face-background 'modeline "coral"))
(t
(set-face-background 'modeline "black")))

>749
自慢のつもりかもしれんが、
それ、すごい恥ずかしいぞ
751名無しさん@お腹いっぱい。:02/12/08 02:43
>750
ぜんぜん自慢じゃないんで教えてください。なぜに?
emacsen で /etc/ をいじるような作業はするなって言いたいんちゃうか。
漏れも sudo vi はよくやるが sudo emacs はしない。

どうせやるなら modeline といわず reverse video にした方がはっきり
すると思われ。

>>749 は visudo や vipw も emacsen なのかい?
753名無しさん@お腹いっぱい。:02/12/08 03:54
>752
そうなんですか。

でもviとemacsを行ったりきたりしてるとキーバインドが混乱してきて、
emacsにESC:wとか入れてしまうんです。

visudoやvipwはviですけど、しかたなしにです。

でも長いファイルになってくるとviしんどいんですよね。
reverse video勉強になりました。
754名無しさん@お腹いっぱい。:02/12/08 09:32
eldoc
自動でカーソル付近の単語を引いたりしてくれる
eldoc = autolookup + eldoc
ファイルが,どこにもない.だれか,うp してくれ
>>754
意味不明。
756485:02/12/08 12:57
eldoc = autolookup + eldoc
ってことは
autolookup = eldoc - eldoc = 0
なのか :-p
>>748
abbrev-mode って文字入力を直接する国の人の為の機能って気がする。
日本語は不幸で SKK なりの入力ソフトが必要だが、
その機能で abbrev の機能が補えちゃったりする。
なので、俺はあんまり使う機会がない。
758名無しさん@Emacs:02/12/08 17:38
>>757
でも、Java とかのシンボル名がやたら長くなる言語使ってるとね。
dabbrev だけじゃちと辛い。

759名無しさん@お腹いっぱい。:02/12/15 16:09
(defun changecase-word (cnt)
(interactive "p")
(let ((type (and (eq this-command last-command)
(get this-command :changecase-type))))
(cond ((or (null type) (eq type 'upcase))
(upcase-word (- cnt))
(put this-command :changecase-type 'capitalize))
((eq type 'capitalize)
(capitalize-word (- cnt))
(put this-command :changecase-type 'downcase))
((eq type 'downcase)
(downcase-word (- cnt))
(put this-command :changecase-type 'upcase)))))
;; 良いキーバインドが思いつかん・・・
(global-set-key [?\M-u] 'changecase-word)
;; For Denpa
(defun denpa (str)
(interactive "sURL:http://")
(browse-url
(concat
"http://www02.so-net.ne.jp/~saitou/cgi-bin/denpa.cgi?URL=http%3A%2F%2F"
str
"%2F")))
>>759
意外に便利かも
http://sodan.org/~knagano/emacs/dotemacs.html

(defmacro exec-if-bound (sexplist)
"関数が存在する時だけ実行する。(car の fboundp を調べるだけ)"
`(if (fboundp (car ',sexplist))
,sexplist))

(defmacro defun-add-hook (hookname &rest sexplist)
"add-hook のエイリアス。引数を関数にパックして hook に追加する。"
`(add-hook ,hookname
(function (lambda () ,@sexplist))))

(defun load-safe (loadlib)
"安全な load。読み込みに失敗してもそこで止まらない。"
;; missing-ok で読んでみて、ダメならこっそり message でも出しておく
(let ((load-status (load loadlib t)))
(or load-status
(message (format "[load-safe] failed %s" loadlib)))
load-status))

(defmacro eval-safe (&rest body)
"安全な評価。評価に失敗してもそこで止まらない。"
`(condition-case err
(progn ,@body)
(error (message "[eval-safe] %s" err))))
763名無しさん@お腹いっぱい。:03/01/05 13:51
;;完全一行スクロール設定。「S.Namba」さん作。
(defun sane-next-line (arg)
"Goto next line by ARG steps with scrolling sanely if needed."
(interactive "p")
(let ((newpt (save-excursion (line-move arg) (point))))
(while (null (pos-visible-in-window-p newpt))
(if (< arg 0) (scroll-down 1) (scroll-up 1)))
(goto-char newpt)
(setq this-command 'next-line)
()))
(defun sane-previous-line (arg)
"Goto previous line by ARG steps with scrolling back sanely if needed."
(interactive "p")
(sane-next-line (- arg))
(setq this-command 'previous-line)
())
(defun sane-newline (arg)
"Put newline\(s\) by ARG with scrolling sanely if needed."
(interactive "p")
(let ((newpt (save-excursion (newline arg) (point))))
(while (null (pos-visible-in-window-p newpt)) (scroll-up 1))
(goto-char newpt)
(setq this-command 'newline)
()))
(global-set-key [up] 'sane-previous-line)
(global-set-key [down] 'sane-next-line)
(global-set-key "\C-m" 'sane-newline)
(define-key global-map "\C-n" 'sane-next-line) ;;;絶対1行スクロール(旧next-line)
(define-key global-map "\C-p" 'sane-previous-line);;;絶対1行スクロール(旧previous-line)
>>763
(・∀・)イイ!!
直った。サンクス。
>>763,764
ce-scroll.el
http://applause.elfmimi.jp/emacs-lisp/ce-scroll.el
お勧めしておきます。

それにしても、停滞気味なんでしょうかこのスレは。
わりと楽しみにしてるんですが、1/5からなんも書かれてないっていうのは…
766765:03/01/10 22:48
> 1/5からなんも書かれてないっていうのは

よくよくみたら5日あいたからって別に珍しくも無かった。
やっぱりおいらは他人の設定を頂戴するだけの駄目人間なんだな。
逝ってきます。
767名無しさん@お腹いっぱい。:03/01/11 03:37
-nw で modeline を最上行に表示したり、画面を縦に割ったときのセパレータ"|"を非表示にするにはどう書けばいいのでしょうか?
>>767
そんなことできるの?
769767:03/01/11 05:31
できたらいいなぁとおもってさ
770山崎渉:03/01/15 12:55
(^^)
>>762に刺激を受けて作ってみた。
(defun funcall-if-functionp (f &rest a)
(if (functionp f) (apply f a)))

(funcall-if-functionp 'car '(9 . 0))
(funcall-if-functionp (lambda (a) (cdr a)) '(9 . 0))
(funcall-if-functionp 'functionp 'functionp)
772名無しさん@お腹いっぱい。:03/01/19 00:42
>>717をmapcarで。
;; 16進数で色一覧を表示
(defun list-hexadecimal-colors-display ()
(interactive)
(let ((f1 (lambda (r) (apply 'append (mapcar f2 a))))
(f2 (lambda (g) (mapcar f3 a)))
(f3 (lambda (b) (format "#%.2x%.2x%.2x" r g b)))
(a ()) (b 0))
(while (< b 256) (setq a (cons b a)) (setq b (+ b 32)))
(list-colors-display (reverse (apply 'append (mapcar f1 a))))))
有沢先生の日記より。
Help-Emacs とかでちょびっと流行ってる奴。
(~/.wl へ記述する)


;;; The Face Header
;;; http://quimby.gnus.org/circus/face/
;;; Wanderlust + XEmacs で表示させてみる。(手抜き)
;;; http://www.nijino.com/ari/diary/200301.shtml#200301180
(require 'x-face)
(defun wl-highlight-face-header ()
(save-restriction
(save-excursion
(x-face-narrow-to-header)
(let (face from)
(when (and (setq face (x-face-mail-fetch-field "Face"))
(goto-char (point-min))
(setq from (x-face-search-field "^From")))
(set-extent-end-glyph
(make-extent (nth 1 from) (nth 1 from))
(make-glyph (vector 'png :data (base64-decode-string face)))))))))
(add-hook 'wl-highlight-headers-hook 'wl-highlight-face-header)


Face: ヘッダ長いから消したい。
>>773
kaoru さんの日記に hide するコードがあるYO!
http://triaez.kaisei.org/~kaoru/diary/?200301b#200301192
775名無しさん@EMACS21:03/01/24 08:04
あちこちに落ちてる、timestampを更新するsave-buffer-wrapperをちょっとだ
け改造。不要な変数を無くし、置換専用の関数にし、hookを利用して起動。こ
れでviperの:wでも動作するようになる。

(defun my-update-timestamp ()
(interactive)
(let ()
(save-excursion
(goto-char (point-min))
(while
(re-search-forward "\\$Update\\([A-Za-z0-9: ]*\\)?\\$" nil t)
(replace-match
(concat "$Update: " (current-time-string) " $") nil t)))))

(add-hook 'write-file-hooks 'my-update-timestamp)
replace-regexpじゃあかんの?
(defun my-update-timestamp ()
(interactive)
(save-excursion
(goto-char (point-min))
(replace-regexp "\\$Update\\([A-Za-z0-9: ]*\\)?\\$"
(concat "$Update: " (current-time-string) " $"))))
>> 776
replace-regexp
...
This function is usually the wrong thing to use in a Lisp program.
What you probably want is a loop like this:
(while (re-search-forward REGEXP nil t)
(replace-match TO-STRING nil nil))
which will run faster and will not set the mark or print anything.
778775:03/01/25 06:18
>776 >777

letはたしかに要らないっすね。replace-regexpは777のとおり。
あと、while が無いと最初の1つしか置換しないが、whileがあると、置換する
時刻の変数を無くした私の改造では、厳密にいうと複数置換するときに時刻が
違う可能性がある。

それに単独関数じゃ使わないからλで直接hookに引っ掛けても良いんやなあ。
(define-key YaTeX-mode-map "}" '(lambda () (interactive)
(if zmacs-region-active-p
(YaTeX-insert-braces-region
(min (mark) (point)) (max (mark) (point)))
(insert "}"))))
標準でこういう感じに動いてくれると有難いんだが
780779:03/02/02 16:26
何も yatex-mode に限ることは無いね

(defun my-insert-parenthesis (arg)
(interactive "p")
(if zmacs-region-active-p
(let* ((paren (key-description (this-command-keys)))
(mathed (char-to-string (matching-paren (string-to-char paren))))
(pos (point)) (start (min pos (mark)))
(end (1+ (max pos (mark)))))
(goto-char start) (insert mathed)
(goto-char end) (insert paren)
(goto-char (1+ pos)))
(self-insert-command arg)))
(global-set-key ")" 'my-insert-parenthesis)
zmacs って何? xemacs 用の変数?
782779:03/02/02 22:27
うん。たまたま XEmacs 使ってるときに思い付いたもんで。
Emacs なら勿論 mark-active です。
>>779
region がハイライトされている時に
} を押すと region がカッコでかこまれるってことかな。
前に出てた「% で対応するカッコに飛ぶ」を書き直した。
だいぶきれいになった。
XEmacs 用。
GNUEmacs では (activate-region) を適宜書き直して。

; delived from http://flex.ee.uec.ac.jp/texi/faq-jp/faq-jp_130.html
(global-set-key "%" 'my-match-paren)
(defun my-match-paren (arg)
"Go to the matching parenthesis if on parenthesis otherwise insert %."
(interactive "p")
(cond ((looking-at "\\s\(")
(set-mark (point))
(forward-list 1)
(activate-region))
((unless (bobp)
(save-excursion
(backward-char 1)
(looking-at "\\s\)")))
(set-mark (point))
(backward-list 1)
(activate-region))
(t
(self-insert-command (or arg 1)))))
785784:03/02/03 00:09
>>784
> GNUEmacs では (activate-region) を適宜書き直して。
>>781-782 もだけど、
この辺のマークとかリージョンとかまわりを
統一的に扱う方法ってないすかね。
書いたら apel あたりに入れてくれるかなぁ。
とりあえず interactive の "_" をどうにかせんとあかんな。
全ての emacs に対応できる vertial emacs を誰か
作ってください。
>>785
どっかで拾った gnuplot.el よりコピペ

;; There is no `mark-active' variable in XEmacs. Hassle! This is not
;; only replicates mark-active, but it only returns true if the region
;; is of non-zero width.
;; Error checking suggested by <DB>
(defun gnuplot-mark-active ()
"Return non-nil if the mark is active and it is not equal to point."
(condition-case nil
(and (mark) (/= (mark) (point)))
(error nil)))

テスト用
Gnu Emacs: mark-active
XEmacs: (gnuplot-mark-active)
wl でツールバーを使いたい人用の設定

(add-hook 'wl-folder-mode-hook
(lambda ()
(set-specifier default-toolbar-visible-p
(cons (current-buffer) t))
(set-face-background 'default "snow" (current-buffer))))
これは何: viper で vim の visual mode 風の選択
こういう人向け: viper ユーザ. vim ユーザ.
使い方: v を押して移動して d とか c とか y とかやってみて下さい。
バグ: GNU emacs21 でしかテストしてません。多分 xemacs では動かない。
普段 transient-mark-mode を使っている人のことは考えていません。
vim と違って d,y,c しか動きません。(vim は DYCrRsS も動く)
vim のような矩形選択、行選択はありません。
2ch 用に行数をつめてます。

;;;; my-viper-visual (VIM like visual mode)
(define-key viper-vi-basic-map "v" 'my-viper-visual)

(defvar my-viper-visual-p nil)

(defun my-viper-visual ()
(interactive)
(my-viper-visual-toggle)
(if my-viper-visual-p
(progn (set-mark (point)) (message "--VISUAL--"))))

(defun my-viper-visual-toggle ()
(setq transient-mark-mode (if (and transient-mark-mode mark-active) nil t)
my-viper-visual-p transient-mark-mode))

(defadvice viper-command-argument (before my-viper-visual first nil activate)
(if (and my-viper-visual-p transient-mark-mode mark-active)
(progn (setq unread-command-events (listify-key-sequence "r"))
(my-viper-visual-toggle))))

(defadvice keyboard-quit (before my-viper-visual first nil activate)
(if my-viper-visual-p (my-viper-visual-toggle)))
791ヽ(´ー`)ノ:03/02/14 03:02
バッファを開いた時に自動的にSKKに。滅多にelisp書かないから役に立つかな…?
navi2chと微妙に相性が悪いでつw

(defun skk-mode-invoke-if-not-invoked ()
(interactive)

(if (not (boundp 'skk-mode))
(progn
(skk-mode)
(skk-latin-mode 1)
)
(if (not skk-mode)
(skk-latin-mode 1)
)))

(add-hook 'find-file-hooks (lambda () (skk-mode-invoke-if-not-invoked)))
(defadvice get-buffer-create (after get-buffer-create-as-skk-mode activate) (skk-mode-invoke-if-not-invoked))
(defadvice iswitchb-buffer (after iswitchb-buffer-as-skk-mode activate) (skk-mode-invoke-if-not-invoked))
792名無しさん@EMACS21:03/02/14 13:07
lispで色々書いてる時の変数チェック用。
適当な所で(my-check-var hoge)と入れる。
型を気にしなくて良いから便利。
ループの間でも*Message*に残る。

(defun my-check-var ( var )
(interactive)
(cond ((equal var nil) (message "Var: nil"))
((equal var t) (message "Var: true"))
((stringp var) (message (concat "String: " var)))
((numberp var) (message (concat "Number: " (number-to-string var))))
((bufferp var) (message (concat "Buffer: " (buffer-name var))))
((markerp var)
(message (concat "Marker: " (number-to-string (marker-position var))
" of " (buffer-name (marker-buffer var)))))
( t (message "UNKNOWN VAR"))
))


>>792
rewrite してみる。
list はダメなのか。

(defun my-check-var (var)
(interactive "SVar: ")
(cond ((not var) (message "Var: nil"))
((eq var t) (message "Var: t"))
((stringp var) (message "String: %s" var))
((numberp var) (message "Number: %d" var))
((bufferp var) (message "Buffer: %s" (buffer-name var)))
((markerp var) (message "Marker: %d of %s"
(marker-position var)
(buffer-name (marker-buffer var))))
(t (message "UNKNOWN VAR"))))
794792:03/02/14 17:14
>793

を、なんだか、判ってる人が書いた感じになりましたっすね。
貰います。

listは中身を表示する上手い方法が判らなかったんです。



(defun my-check-var (var)
(interactive "SVar: ")
(message "%S" var))

で充分なような。。。
796792:03/02/14 20:43
>795
うーん、なるほど。
>>795
さらに言えば、M-: (eval-expression) で
変数を評価すればいいんじゃあ...。
(C-u) C-x C-e (eval-last-sexp) でもいいし。
>>797
> lispで色々書いてる時の変数チェック用。
> 適当な所で(my-check-var hoge)と入れる。
799797:03/02/15 00:03
printf()デバッグか。>>793は、引数の種類を表示してくれると。
とりあえず edebug や assert も使うわけだが
check したい predicate の alist 作って、満たすのを一覧表示してみた。

(defun my-check-var (var)
(message "%s"
(mapconcat 'identity
(or (delete nil
(mapcar (lambda (elm)
(when (funcall (car elm) var)
(if (caddr elm)
(format (cadr elm) var)
(cadr elm))))
my-check-var-alist))
'("Unknown"))
", ")))

(defvar my-check-var-alist
'((null "Nil")
((lambda (x) (eq x t)) "T")
(numberp "Number: %d" t)
(bufferp "Buffer: %S" t)
(markerp "Marker: %S" t)
(stringp "String: %s" t)))
>>801
delete → delq の方がいいっしょ
803名無しさん@お腹いっぱい。:03/02/25 13:12
なんか寂れてるんで一発ネタを。

3つ前と2つ前のマークの間と、リージョンの間のテキストを入れかえる。
C-SPC を適当な場所で3回ぽちぽちやった後 M-x transpose-marks でどうぞ。
;; vcursor と組み合わせられるとかっこいいんだけど。
(defvar transpose-marks-ovr1 (let ((ovr (make-overlay 0 0)))
(overlay-put ovr 'face 'region)
ovr))
(defvar transpose-marks-ovr2 (let ((ovr (make-overlay 0 0)))
(overlay-put ovr 'face 'secondary-selection)
ovr))
(defun transpose-marks ()
(interactive)
(unwind-protect
(let ((start1 (nth 1 mark-ring))
(end1 (nth 0 mark-ring))
(start2 (mark))
(end2 (point)))
(move-overlay transpose-marks-ovr1 start1 end1 (current-buffer))
(move-overlay transpose-marks-ovr2 start2 end2 (current-buffer))
(when (y-or-n-p "transpose there marks? ")
(transpose-regions start1 end1 start2 end2)))
(move-overlay transpose-marks-ovr1 0 0)
(move-overlay transpose-marks-ovr2 0 0)))
vcursor 使ってるの?
どんな時に使う?
おれも昔面白いと思っていろいろ応用を作ったりしたが、
結局作っただけで使わなくなってしまった。

vcursor って何?
806803:03/02/26 00:15
>>804
やー、使ってないです。
面白い機能ではあるんだけど、 普通に mark や regster を駆使した方が便利
だし。
vcursor みたいに複数のカーソルを作ってそいつら個々の指定した範囲に対し
て何かをするみたいな minor-mode があると面白いかもしれない。

>>805
普通のカーソルの他にもう一つカーソルが出てくるモード。
(require 'vcursor)
したあとに、
M-x vcursor-toggle-vcursor-map
してみると分かると思うです。
保守しておこう
保守テスト
..
----BEGIN BASE64----(hosyu.tgz)
H4sIAAAAAAAAC+1X3VPbOBDvK8zwF/RFceVi07iXhM8UaCilDYQj6THt9WYa2jGO
krj4q7ICpHP3v9+uJDtOApmbubleH9CDI6/2e3+7coZxOh49Z8Gj/3BVK5WtrS3y
qCLX5Jeotb2+UYHn1sb6enV9A/fVSnUT+H/IGqXC5eASj2PxYyz+VGt3d5c8poe7
x5S2/npsHa4sI8Wq2kjdKb24oadw9rS1s/u9ndK2+dWsm8e0ffDl6OuEO2XiG0nd
qyvXCfxUKOoSIauW3i5ZBqgzm+YH0256lIKoQZTlTKPZMKl5bF7lWpeWiKV5pB/b
tAE+Kj/4GYNnnU5xE7SxvfrqHIgo1d44wa0xzdCo6+N69W06fWzbU+7SS9qmp3Qo
rSxwl1iFVJ39hm5prk7rSUPs/nH0tXYEfPa/iatyWG1ljp9Xgs6L+ch+TV4yzXK2
eV9k2c6q2aSKrLSJtUQvtNMcdcSeN+KymI4Xh0nAhBO5IUOCFDqVQkVHFQgWya1a
E4jkbqzb5My5LciRT+dv3l8U0KQJ0lV0rXMqRZU8UFu9QwfpVUUhSGuIyveGOPlA
HSVTUI96+N5h/T14H9B3JQM5aROrhElolekBrdJ2HhcpVL2MBTt89/KCHtNWIfaC
F7WClCwv5EgXt3OwuVk+2d/Zp2XESe2ouV96Mm1n8wM93TmgFvqVc7dN12ygDsoz
fAEsO6YFPlVLe+ZHWj4pN7qzuuhn2igZW6Mmpx30zPiE1FIJ9l1xsWaojL7+nTob
dRqDzjZtlgz9bgEof4EY6cugPpDyBc0ZWLNeOPv4qgkeoV/r9LjoB3ZG25tgnyik
UoOGGqn0nIZ0WzYYvrWojwer1r1scjBB/sHabMRYA9rWlZivnvKzjD0Jmq/yyO7J
TMfYvqKbgJE5OzASXtO3JQPdWRjN8Vwshop/JprOm3HtlcKUtrWybPVY/9rlxY6C
811810 の続き:03/04/04 23:39
DlObaBReMk4iP1hZ1uMBQcw1iHXZSkatsXMEMGjmc5vnAFblekbbKCM9udPkXBNn
Nmc6qplhPZ+P8ldGc4/qITxiPkaNdhbwKCq2qqWCBdMkYNcM2QBSfiQYdz3hXzN8
V1zwZPAoSFjadT8aOJy5vZXlJbmMkygZCZIy7g1JKjicE6kh4X7fv31BjIzTCt3E
A5+twA0vey6xXD6ws0OcqtpyOg4v40BZRRa7wLQglTZGTsSEF19X5xOk9UGkeXCK
kIWMqYG09AlIchYJJ+EMInHAl0w5+KqJAB3Gfc+5doMRu0Mi9/1+3BUcklWxdV36
xNpHp6KBGBZ8JRVkB4aQpak7YMR47UYeC0olBMaSVTAUun6kCxwVNUzs3AETLSXT
/zROhB9HblAEDKRpDfLkxaNIKGcgd0MfK1KkTBVTpUdal8fp6FJhkrMBu01IPBKA
IkfhR4ZxM/QDQJ0b9bLvoUzESuKEqEuPqOxaXo/n57YynUwImikG6EWxyENRoNzb
VwTtN5KkzT2iwslypZMuXVEnVvWZ2k2dqYCkqixTgCYN/SIc5UPEOmboL7cYRAZ6
bEgRJlU85ySYIdfInU2FzRp5riBGt/unoZqIyCRlkUgIu0kSjMmq5pVWUGceKyJQ
eeewbyMAAcQsA9BBZriF75Br5rBbOEkBLSp2mYwJKjBZ+Zt2AXmcy1G/D7PXWOug
5jVDHw1iSI03xMiSGBDshH5UEPtGlJwcRU4cBdncw3POoMVcmEdOP+Y3Lu9hHqzP
nypO/eIZICdiaYOErvCGEFq3az9fg2PAvFIJhHxkYZ7lVMk1J4HrMUcKEwvUhyrL
VdI1zLRrkG63ZqhazZbScns9rLf6dpsCfD5WLB0VyGawmESf791b29Z1lDVCUMOo
KLagNGnd+GLoaEtgWbAwmcv34hJm7PCnLupBJrU2HZFCcxj3mCaopp2PDQwsKKi8
hOACwUxGhurv6YFg/wNUZCrOWToKxHPQtBAuIkfvZI6qG4XhJJ2dsZ0hCcekGfdK
JdKOMdfEjcYkZPLLAcBjpiA2fXmpcXfvnJ0dAOq2mOq7hOgrJJsu8Aq7JPCz1OQ3
JMnuLy4ilcL87tRlUfdXPqeQTbc+7uc+2go6UAnw4O///f/6YT2sh/Wwftb1N+Ge
QX4AFgAA
----END BASE64----
>>810-811
w3m などで、コミック等の発売日のリストを見てる時にでもどうぞ。
ネーミングセンスが腐っているのは無視してください。
813質問です。。。:03/04/11 17:07
Meadow(Emacs 20.7.1)を最近使い始めたものです。
ただいま設定に四苦八苦しているところです。
カレント行にアンダーラインを出せないかと調べると、
"hl-line.el"か"highline.el"を使えば良いということがわかりました。
そこまでは良いのですが、デフォルトではアンダーラインの色が文字と同じ色に
なっています。
これを変えたくて、(set-face-foreground 'underline "red")
などとやってみたのですが、カレント行全て(文字+アンダーライン)の色が
変わってしまいました。
アンダーラインの色だけを変えたいのですが、何か方法はありませんでしょうか?
よろしくお願いします。
>>813
meadowの事はわからんけど

ttp://homepage3.nifty.com/akima/soft/meadow_toc.html#SEC_Contents
とか参考にならないかな?
よく見てないんでわからんけど
815http://www.agemasukudasai.com/movie/:03/04/11 17:35
>>813
ここは質問スレではありませんよ( ̄ー ̄)
不幸自慢みたいなもんでそ
begin 644 goto-window-relatively.el.gz
M'XL("/(3ESX``V=O=&\M=VEN9&]W+7)E;&%T:79E;'DN96P`M5=!=]HX$#Z'
M7S&/2^2VIH8DKQL@V;>O;W/8U[VT>Z,<C"VPBFPYDHQA?_V.)-M`,%#8UQP2
M:S3?S#??C"5G-!K!0F@!)<MB48*D/-1L1?FF@SO?PA4=PGCP6_`,?\9,X_/#
MPV._UW]X'/3O[@=WGP:/SZ!8%E$8!,'=Q^#^8[]/7B3S@L'PX=[$^!(J#7^+
MF,T9C8<84L,?N83^`(+[83\8!I_@KV__6'@'_4>@PC3G%)9T,T-.'1+3.<NH
MCVM8<#$+N9^&.4R(2MA<0Y%[4[A--[ZIPG=5^&@\AT.WK`5IS>>PDBT2W0)V
M]G-H3N=M8&M&`8["?_^N_.^?_>5EY5:H'Y>66N'XQ556P.1XA;!B*7"V;'K<
M0TM.)10*?Z7AQFTRW>N,3)95B-9-'<4D(6FXI+[*0ZDL`;1YGG-NH=1%.F5W
M/\0;[_WP!J"Z<*MRSG2]L:)2LRCD?',6NWJ+381D_XI,_Q0:J=X*G5!9;9P%
MO"(@IIQJ^K,(L47L9E)G@4GW6%=/XWX<XMSXG<$M#W'%^=[Q0U0UM*>`5W?\
M?[3[LEY?V.CKNGQ5BZ_J[Q7-/='9^N(X-QSS+A`>IK,X!#)GG"+T!G\`@+!,
M4QE&YOZ#[LL+XL!X`,O`"EA=DD/H[H!.=;[V03JQ;T+M-<(&]_#@LM?>SBUL
MS]8B@P-Q@'B=?9YV_<9/%3,)MR3$R]/D)^,GD+#V\`'6P#T824#3&L;`&X<8
MD*]=/($J(/8,KW8:IK&_CL@&BBV1&!?'B=C.7\VDP(H-DPT6"Z,";.XQ;!W6
M(+=,."Z.,S$OR*\CPE&SAHA$X>S,M#.Q\0EN1#8[OOSO@!!54B"5!XT75.'8
MXL$0:1K7)PF&Q`119!E'A51"^G,9IM2/A)`QRT)-E7-"#B33"02`<3WDC@-C
M#?W*,)JHZ7YXF,BIZ=8'F!33W`;A#C-H@L3.<'<B")^BT!@CGN(,FBAKI(Q?
M!U%D(FS,(G8K[V94%;%#?[*>?IALIB@,U`)4H:T)B)`N'FK+7R%CW'QIY&AQ
M\M?'1NG:L=7W0-[2LR[H0QJQ7)F-5&9Y,ZIU<;(X1*.,0S2ZF*71Q:E0BV")
M(`I'"@A=A1Q<]UTPUUA#OAY5IK17=?MP!LQ@V=/(B0<[XNT,W+'Q<*]`]RO5
MA<Q:0H"8&ZNDF08+[G6K(6W3L'5$2;DWH14@$KQ(,[?/6_8Y7@<&;H4R"@!Y
M[SJ-FD)IU(+*%%>V@[>L+6-5\&>W<-69FO'"<'X]++_`:I4.I598M$@AV*T:
MXV!6I\E>&66C1LEBG33L%=6O8%&^^U/?/"J2@O/&KTS,S46>GZQ763IS2X"R
MK#&X.E6R$;$J^(MYO*Q<A?]*^G1M$$QDCN.,+EB6L6SAB[GK4=4A*TU,E39S
M@^Y`<H$'J^?ZE$'@->78PR]*S$M;'X$F^=:A$F)<QX"=N$;I^BO/3X5-U3=&
5*Q*F[;^'S&MBV<?_``<+<R<R#P``
`
end
819818:03/04/12 04:28
>>818
vim の ^w [hjkl] 風の window 選択コマンド。
カーソルの上下左右にある window に移動する。そんだけ。
カーソルの位置に応じてかしこく window を選びます。
てきとーにキーバインド当てて下さい。一応デフォで Shift + 十字キーになってます。
\C-x 2 とか \C-x 3 も使いやすいキーにかえた方が吉。

>>819

あれ!?
http://homepage3.nifty.com/akima/soft/meadow_17.html#SEC233
これと同じような機能のやつですか?標準機能なんですが・・・
821818:03/04/12 08:09
>>820
うっそん。
まったく同じじゃん。とほほ。

> 17.9 ウィンドウ間を簡単に移動 (2003/04/05)
結構新しいですね。emacs20 のころにはあったのだろうか。
とにかく無駄なことをしてしまった。
>>821
新しいかどうか見るのに、
> 17.9 ウィンドウ間を簡単に移動 (2003/04/05)
この部分は参考にならんでしょ。(とツッコミ)

windmove.el を見ると、1998に登場した elispだけど、
emacs21 から標準に含まれるようになったようだ。
823818:03/04/12 15:07
>>822
> 新しいかどうか見るのに、
> > 17.9 ウィンドウ間を簡単に移動 (2003/04/05)
> この部分は参考にならんでしょ。(とツッコミ)
このサイト時々チェックしてるんですよ。
で、ここで紹介されたのも最近だなという意味で。
# なんとなく >>820 さんがこのサイトの作者のような気が。

再発明して自己嫌悪。はぁ。

おちつけ。>>おれ

おちはすでにつきましたが、何か。 ...スマソ
824820:03/04/12 21:16
>>823
> このサイト時々チェックしてるんですよ。
> で、ここで紹介されたのも最近だなという意味で。
> # なんとなく >>820 さんがこのサイトの作者のような気が。

残念ながら、松下さんではありません。
私もよくチェックしているものです(毎日)。

> 再発明して自己嫌悪。はぁ。

大丈夫、elispで一つのものを作り上げたという資産が残るじゃないですか。

> おちつけ。>>おれ

次回作を期待していまソ。
>823
実装方法の違いを研究すれば今後の役に立つと思われ
826818:03/04/12 23:54
>>824
> 大丈夫、elispで一つのものを作り上げたという資産が残るじゃないですか。
> 次回作を期待していまソ。
どうもありがとうございます。

>>825
ざっと見てみました。windmove.el はカーソルを端で
ラップするようにもできるので、
その分コードが複雑になってるようです。
実装も細かい所が違ってて、勉強になりました。

# でも一番勉強になったことは、何か作る時は
# よく調べてから作れということ(笑)
818 の行く先に倖あれ
828山崎渉:03/04/17 11:55
(^^)
(defun ^^ ()
(interactive)
(message "死ねヴォケ"))

M-x (^^)
>>829
おまい、本当はよくわかってないだろ?
>>829
M-x ^^
もしくは
M-: (^^)
832830:03/04/18 03:53
うわぁぁ…

>>829
は山○渉に対する嫌味だったのか。
navi2chで見ていたので気づかなかったよ。
なんだか空気読めてなくてゴメン。
833829:03/04/18 16:38
>>830
いや、肝心な所を間違えたおれがあほだった。
834山崎渉:03/04/20 05:50
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
*scratch*は消せません。
名前が思い浮かばない
(defun kill-buffer-not-scratch (buffer)
(interactive "bKill buffer:")
(if (string= "*scratch*" buffer)
(save-excursion
(set-buffer buffer)
(widen)
(erase-buffer))
(kill-buffer buffer)))
scratch と聞いて、昔作ったのを思い出した。

(defun my-create-scratch ()
"*scratch* がなければ作る。すでにあれば、
*my-scratch* というもう一つの scratch を作る。
初めのメッセージとかも復元。
2002/01/09(Wed)10:41"
(interactive)
(let ((scratch-buffer "*scratch*"))
(if (not (get-buffer scratch-buffer))
(switch-to-buffer scratch-buffer)
(setq scratch-buffer "*my-scratch*"))
(switch-to-buffer (get-buffer-create scratch-buffer))
(funcall initial-major-mode)
(if (not (buffer-modified-p))
(progn
(erase-buffer)
(insert initial-scratch-message)
(set-buffer-modified-p nil)))))
>>835
permanent-buffers じゃだめなの?
長いファイル名だと行番号がモードラインからはみ出して表示されないので。
(let (L C)
(setq C (assoc 'column-number-mode mode-line-format))
(if C (progn
(setq mode-line-format (cons C (delete C mode-line-format)))
))

(setq L (assoc 'line-number-mode mode-line-format))
(if L (progn
(setq mode-line-format (cons L (delete L mode-line-format)))
))
)
cvs 版の emacs だと、そこらが改善されてるよ。
訂正。mode-line-format は buffer-local だから、setq-default 使わないと。

(let (L C M)
(setq M mode-line-format)
(setq C (assoc 'column-number-mode M))
(if C (setq M (cons C (delete C M))))

(setq L (assoc 'line-number-mode M))
(if L (setq M (cons L (delete L M))))

(setq-default mode-line-format M)
)

あともひとつ、Windozeアプリに手が毒された人のために。

(let (C-z)
(setq C-z (global-key-binding "\C-z"))
(or (equal C-z 'undo)
(global-set-key "\M-z" C-z)
)
(global-set-key "\C-z" 'undo)
)
> Windozeアプリに手が毒された人のために。
cua-mode とかどうなん? 俺は全然興味ないけれど。
バッファが read-only のときにはモードラインにその旨表示。
(or (assoc 'buffer-read-only mode-line-format)
(setq-default (cons '(buffer-read-only "RO--") mode-line-format))

telnet元のIMEからEUCのemacs -nwに「ESC+非ASCII文字」を打ち込んでも
以後の入力が化けない対策。
(let ((i 128)) (while (<= i 255)
(define-key function-key-map (vector 27 i) (vector i))
(setq i (1+ i))
))
> バッファが read-only のときにはモードラインにその旨表示。
`%'表示じゃダメなん?
> telnet元のIMEからEUCのemacs -nwに「ESC+非ASCII文字」を打ち込んでも
> 以後の入力が化けない対策。

keyboard-coding-system を適切に設定してあればそんなことにはならないが
845842:03/05/17 18:13
>>843
あ、ほんとだ。知らなかった :-)
846842:03/05/17 18:22
>>843
あ、ほんとだ。知らなかった。(´Д`)

>>844
設定してもだめなんでつ。
再現手順
% emacs -nw -q で起動して
M-x set-language-environment Japanese RET
M-x set-keyboard-coding-system RET euc-japan RET
M-x set-terminal-coding-system RET euc-japan RET
ESCキーに続けて2バイト文字を2つ以上。

環境は FreeBSD 4.7-RELEASE で、Ports から入れた emacs 21.3。
Mule 2.3 でも同じ再現手順で同じ症状。
そりゃ EUC じゃないし
848842:03/05/18 03:22
>>847
>そりゃ EUC じゃないし

そりゃそーなんだけど、頻繁にこういうデータをタイプしちゃうのよ。

とゆーのは、ターミナル側で
・Alt+文字キー を押すと ESC 文字キー を送信する
・俺は JIS カナ入力主義者なので、IME をうっかり平仮名モードに
 したままでたとえば Alt+x を押すと ESC サ が送信される
とゆーわけ。
physical-line.el でない、物理行移動の elisp あったと思うんですが、どな
たか知りませんか?
>849
どうしてこのスレなんだろう……
ce-scroll.el
screen-lines.el
851849:03/05/20 20:56
>>850
ぬりがとう。
お返しに、

(require 'tramp)
(defun find-file-as-root (filename)
(interactive "fFind file as ROOT: ")
(find-file (concat "/[scp/root@localhost]" filename)))

ただし、
% ssh root@localhost
で、パスワードを聞かれない必要があるが。
>>851
イラネ
853ヽ(´ー`)ノ:03/05/21 13:01
>>851
それ、今の tramp と構文違わね? 2.0.33 使ってるけど /scp:root@localhost だよ。
つーか、/su:root@localhost 使いませう。
854山崎渉:03/05/22 02:07
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
>>849-851
俺はvz.elからコピペしてバグ修正したやつを使ってる。
http://www.ht.sakura.ne.jp/~delmonta/emacs/
の第16-17回あたりから朴ってきた。
vz.el って Vz editor のまねするやつ?

Vz なつかしいなあ。
おれは逆に、emacs をエミュレートする
Vz macro 使って Unix 気分になってたよ。
俺もscreen-lines.elをベースにScreen-lines-next-lineを
vz.elのと交換したやつを使ってる。
858855:03/05/25 13:34
vz.el の vz-next-line って、実はちょっとしたバグがあるんだよね。
詳細は>>855のリンク先の第17回へ。
>>790
感動した!
860わからずや:03/06/06 22:15
emacs、はじめて2日めです。
ファイル名~ は勝手にできないようにできたのですが、
#ファイル名# が勝手にできてしまいます。
.emacsになんと書けば、でなくなるのか、教えてください。
お願いします。
そのファイルをちゃんと保存すれば #hoge# は消えるだろうが。
不慮の事故で emacs が強制終了されたときのために #hoge# はあるんだよ。

hoge~ もバックアップなんだから、残しといた方がいいんじゃない?
消したきゃ C-x d RET ~ x でフォルダ内のは一気に消せるしな。
862 :03/06/06 22:22
>>860 念じる 【残りまつえんように】
(setq delete-auto-save-files t)
これか?
kill-bufferした時は消えるけど、kill-emacsした時は残るんだよなー
864わからずや:03/06/06 22:34
(setq backup-inhibited t)
(setq delete-auto-save-files t)
(setq make-backup-files nil)
(setq auto-save-list-file-name nil)
(setq auto-save-list-file-prefix nil)
これだけ、やってまだ残ります。
861さんの、いう通り残した方がいいのかな。
865わからずや:03/06/06 23:08
できました。今できました。さっそく貼り付けます。
(setq backup-inhibited t)
(setq auto-save-default nil)
(setq delete-auto-save-file-if-necessary t)
(setq delete-auto-save-files t)
(setq make-backup-files nil)
(setq auto-save-list-file-name nil)
(setq auto-save-list-file-prefix nil)
(setq inhibit-startup-message t)
(line-number-mode t)
(column-number-mode t)
これで、なにもバックアップをとらなく、なったかと思います。
失礼しました。
866_:03/06/06 23:12
867直リン:03/06/06 23:14
何度 rm * ~ して泣いたことか。
ここは emacs設定質問スレじゃないのに……。
まぁ、名前がそれを語っているか。
「わからずや」ですものね。
>>868
~ (dired-flag-backup-files) を使うといいよ。
872790:03/06/09 04:00
>>859
本当ですか? ありがとうございます。
無反応だとさみしくなっちゃうんで、とてもうれしいです。

もっとも >>790 のやつは、それからまったくいじってなくて、
今は気まぐれに使う程度。G が効かないとか、問題もいろいろあるんですけど。
ひょっとしたら、そのうち直すかも?
873859:03/06/09 22:04
>>872
本当ですよ。いままで、makkkkkkkkky'aとかやってましたから。
viperをvimにできたら最高ですよね。
874790:03/06/10 03:57
>>873
> viperをvimにできたら最高ですよね。

そう思って作ったのが、
>>818-826
これだったのですが…
875859:03/06/10 08:15
>>874
>>818-826
ぜんぜん見てませんでした。ちょっとやってみましたが、最高です。
あとは^W[HJKL]ですね。
876859:03/06/10 15:03
windmoveは思ったとおりに動いてくれないけど、
>>818のは思い通りに動きますね。
>>876
minibuffer に移動できないバグは、 CVS では直ってるらしい。
他におかしいとこある?
878859:03/06/10 18:28
>>877
c-x2 shift↓ c-x3 shift→
で、右下にいけません。
879790=818=874:03/06/10 23:42
>>878
僕がいうのも何ですが、手元の windmove でもできましたよ。
emacs21 付属のやつ。

ところで ^W[hjkl] のキーバインドは、
>>818 のやつに sample として書いてあるはずです。

ここら辺のコメントはずせば使えます。
> ;; vim like keybind. viper user may like it.
> ;(defvar my-window-map (make-sparse-keymap))
> ;(define-key global-map "\C-w" my-window-map)
~ 中略
> ;(define-key my-window-map "k" 'my-goto-window-up)
> ;(define-key my-window-map "l" 'my-goto-window-right)

# windmove があるのに >>818 をわざわざ使ってくれるのはうれしいです。
880878:03/06/11 01:03
>>879
あ、できるのですか。僕の環境ではできないのでgoto-window-relatively.el
を使っています。

>ところで ^W[hjkl] のキーバインドは、
>>>818 のやつに sample として書いてあるはずです。]
はい、もちろん^W[hjkl]で使っています。
もし、>>875のレスでしたら、^W[HJKL]はバッファを入れ替える動作のことです。
http://www.bookshelf.jp/soft/meadow_22.html#SEC231
こんなかんじのです。
881879:03/06/11 01:34
> もし、>>875のレスでしたら、^W[HJKL]はバッファを入れ替える動作のことです。
感違いしてました。ごめんなさい。

vim の ^W[HJKL] は初めて知りました。
その url の、swap-screen も同じようなものなのかな。
横移動がないようですが。
882878:03/06/11 07:59
>>881
'swap-screen-with-cursorと同じです。
C-x2の状態から^WHでC-x3の状態にもできます。
psgml で属性のとこにも色を付けてみるパッチ。
既出だったらごめん。
----BEGIN BASE64----(psgml-other.diff.gz)
H4sICKxC7z4AA3BzZ21sLW90aGVyLmRpZmYAlVLbjtowEH1OvmLEC46yg5ysQBS1
Ev/RtJIJQ4gITmpPluXvO06I2C3sQ/2Qi+fMOXM5iAidr84Ntnwkt6Bm0bq6inKt
M9Q5Zhqy1eb1dbNcL/R0INXftI7TNP0nN6S9ol5htgadbfLlRucPadstCO3qZQVp
eGVL2G5jiEHt6fBmHAyMvSdkemfsXNuR45o82LpJBJgGYG9HnCfGgykJDbMD5dk4
BrL7JE5Bfs0bIb2XvfN1a8OVXFYtt1geg1JAJ7fry7FuCJQj4TSuPOKhdRfj9jAr
ClUU/pIWRfIjfM9+/i5mv9JCAsksiMFEIjRdz58Kv4I6Gxa6HVW1tbWtIEumu5Cb
SW4URTAPbciztYxNW55QZlGbXUNozZmGJv9LJf+kkn+l4tkJeqSXE6fjIh7mK9P4
MF7gayflhFIaYlBqoFXlXkDG+z9DfGQ4G3fqu4HEDwpjB2Vr96MVstEK+fJlPTgh
GuLmwOTCmmwl4r0tWTY4eWCE7EiKoueYAHoypXsD4yBuU41k+2RB0a3w+YBDNlUI
BiM9eu1utVtLNxcFnu8fovfg871lOMDGopxYD600wXV5usJcTXuZaBTHfwG3QqEN
swMAAA==
----END BASE64----
884名無しさん@お腹いっぱい。:03/06/19 14:29
;; S+↓↑←→ で、分割 Window 間を移動。
(windmove-default-keybindings)

;; Window
(global-set-key [C-left] 'shrink-window-horizontally);C+← 横のWindowを狭める
(global-set-key [C-right] 'enlarge-window-horizontally);C+→ 横のWindowを広げる
(global-set-key [C-down] 'shrink-window);C+↓ 下にWindowを狭める
(global-set-key [C-up] 'enlarge-window);C+↑ 上にWindowを広げる
>>884
オレも似たよーな事をしている。こんなの。
(defun my-enlarge-window (n)
(interactive "p")
(enlarge-window (* n 2))
(recenter))
俺のはこんなやつ。xemacs用だけど

(defun my-modeline-up (arg)
(interactive "p")
(if (window-lowest-p (selected-window))
(or (window-highest-p (selected-window))
(enlarge-window arg))
(shrink-window arg)))
887名無しさん@お腹いっぱい。:03/06/20 21:47
Meadow memoをみていろいろ設定した結果、同じキーでも干渉しあうものもあり
キー設定が足らないと思っている人向け。

;;Win32専用: Windowsに、修飾キーである hyperキーとsuperキーを追加
(w32-set-modifier-key 92 'hyper) ; 左Windowsキー
(w32-set-modifier-key 93 'super) ; アプリケーションキー


これで左Winキーを押しながらのキーバインドが追加できる

例、mode-infoは通常のタグジャンプとは置き換えできず(C-uM-.ができない)
  設定キーを変えたいが、なるべくタグジャンプのキーに近いほうがいいので
(global-set-key [(hyper .)] 'mode-info-find-tag) ;; hyper(左ミ田)を押しながら"."

としています。
個人的に標準キーをつぶしてほかの機能を追加することは極力避けたいので
こうしています。
板違い。
しかし、ソフト板はなんであんなに糞なんだろうな。
Windows キーやアプリケーションキーって、標準キーじゃなかったんですね。
>>890
ノートはThinkPad、デスクトップのキーボードはHHKですが、何か?
>>891
いえ、何も。
>>889
meadowスレは痛いな…
痛いスレヲチをこのスレでやらないでくだちい。
meadow ってどんな動物なんですか?
896887:03/06/21 03:52
>>888
> 板違い。

ごめんごめん。
昨日から廃れたスレを何とか立て直そうと思ってね。

ではネタもとのWebページでXのキーの換え方も
載っているんでそっち見て。
http://www.d4.dion.ne.jp/~usuda/emacs/#EMACS-KNOW

でわでわ。
897hoge:03/06/24 15:59
emacsいじりは初心者です。
行間をモード毎に変えようとして、カッコ良く再帰を使おうとして

(setq my-no-line-spacing-hook-list '('c-mode-hook 'c++-mode-hook 'emacs-lisp-mode-hook))
(if (>= (string-to-int emacs-version) 21)
(progn
(setq-default line-spacing 4)
(defun my-set-line-space (hook-list line-space)
(if (eq hook-list nil) nil
(add-hook (car hook-list) ;; <-- 1
(lambda ()
(setq line-spacing line-space))
(my-set-line-space (cdr hook-list)))))
(my-set-line-space my-no-line-spacing-hook-list 0))
nil)

としてるんですが、うまく動きません。(エラー出まくる)
再帰しないでadd-hook 単体の時は

(add-hook 'c++-mode-hook
(lambda ()
(setq line-spacing 0)))

でうまくいってるのですが…
長文スマソ。
898hoge:03/06/24 16:02
ここ質問スレじゃなかったですね。
emacsスレ行ってきます。失礼。
>>883
yahtmlやhtml-helper-modeと比べて属性に色が付かないことだけが
不満だったので非常にありがたい。

いくつか色が付かないものがあったので属性を探すの正規表現のところは
"\\(\\sw+\\)\\s *=\\s *\\(\"[^\"]*\"\\|'[^']*'\\)"
にしてみた。
引用符でくくられてない属性は無視してるけど。
900 :03/06/27 18:05
スト-ルマンの .emacs って公開されてないの?

>>900
空っぽという噂だけど、ほんとかな。
>>901
Emacs21の変なデフォルト動作(homeキーとかendキーとか)は
ストールマンの趣味だったのか。。。
>>902
rms は home, end は使ってないだろ。
C-xC-l とか、本人も禁止にしてるわけ?
>>904
ワロタ
>>904
どーいう事?
CVS 先端では
(put 'downcase-region 'disabled nil)
しなきゃならなくなったとか??

# ところで 900すぎたけど、最近殆どコードの披露ないから
# 次スレはないのかな……。
>>906
禁止にしておかないと、.emacs に
(put 'downcase-region 'disabled nil)
って書かれてしまうじゃん。

ってことは、当然ミニバッファでの評価(M-:)も禁止だろうな。
>>907
御免。C-h k C-x C-l はしたけど、
まさかそんな扱いになってるコマンドとは思わなくて
C-x C-l は試さなかった。ホント、まぬけでした。
909904:03/07/01 02:39
そういや downcase-region って使ったことないな。
M-: はよく使うけど。
日本人なら kakasi 使って hiragana-region とか。意味ないか。
910名無しさん@お腹いっぱい。:03/07/09 23:45
意味はなくもないけど需要がなさそうだなw
911山崎 渉:03/07/15 11:17

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
童貞max
913名無しさん@お腹いっぱい。:03/07/31 21:11
最近 phpでテンプレートを使うようになって、foo.php と foo.htmlを行った
り来たりするようになった。そのたんびに、find-fileや switch-to-bufferす
るのがかなりつらいから、作ってみた。

ごみだったらゴメンな。

;;; Code:
(defvar find-file-existed-complementary-alist
(mapc
(lambda (elt)
(cons (purecopy (car elt)) (cdr elt)))
'(("\\.html$" . "\\.php$")
("\\.c$" . "\\.h$")))
"*Alist of complementary pair of extension patterns in filename.")


(defun extension-from-pattern (pattern)
"Return true extension which is included period from search pattern."
(let ((beg (string-match "\\." pattern))
(end (string-match "\\$" pattern)))
(substring pattern beg end)))

---つづく---
914913:03/07/31 21:20
(defun return-complementary-file-name (file-name list)
"Return complementary file name. or return nil in case of not found."
(let ((new-name nil))
(while list
(let ((ext1 (car (car list)))
(ext2 (cdr (car list))))
(if (not (null (string-match ext1 file-name)))
(progn
(setq new-name (concat
(file-name-sans-extension file-name)
(extension-from-pattern ext2)))
(if (file-exists-p new-name)
(setq list '(dummy))))
(if (not (null (string-match ext2 file-name)))
(progn
(setq new-name (concat
(file-name-sans-extension file-name)
(extension-from-pattern ext1)))
(if (file-exists-p new-name)
(setq list '(dummy)))))))
(setq list (cdr list)))
new-name))
---つづく---
915913:03/07/31 21:20
(defun find-file-existed-complementary ()
"Find existed complementary file of current buffer's file"
(interactive)
(if (not (null buffer-file-name))
(let ((new-file-name (return-complementary-file-name
buffer-file-name
find-file-existed-complementary-alist)))
(if (not (null new-file-name))
(find-file new-file-name)
(message "\"%s\" does not have a complementary file."
(file-name-nondirectory buffer-file-name))))
(message "The buffer you specified does not have a real file.")))

;;; find-file-existed-complementary ends here

長くて申し訳ない。
916913:03/07/31 21:23
ファイルの相方同士の拡張子を定義するには以下のようにします。

;; .e.g
;; (setq find-file-existed-complementary-alist
;; (append '(("\\.cpp$" . "\\.h$"))
;; '(("\\.cpp$" . "\\.hpp$"))
;; find-file-existed-complementary-alist))

めんどくさくて申し訳ない。
>>913

213
http://pc.2ch.net/test/read.cgi/unix/1059653836/

( ゚д゚)ポカーン
あーらら、誤操作ですか?
919913:03/08/01 11:24
すまんす。ミスった。すんません。
920913:03/08/01 13:52
とりあえず誤操作でスレ立て防止のため、
(define-key navi2ch-board-mode-map "w" nil)
としときました。

navi2ch関係、スレ違いすんません。
どんまい。
922あぼーん:あぼーん
あぼーん
923名無しさん@お腹いっぱい。:03/08/11 10:25
C-xC-fで存在しないファイルを指定したとき、空のバッファを作ってしまうの
を防ぐ。

(defadvice find-file (before existing-file activate compile)
"When interactive, find file existing files only."
(interactive "f"))

ところで、このスレってもしかして終わってる?
>>923
???じゃあ新しいファイルはどうやって作るの?
925923:03/08/11 10:47
>>924
M-x esh
$touch newfile
C-xC-f newfile

ダメ?C-uくらいは対応すべきか。
>>923
C-x C-r じゃだめなのか?
927923:03/08/11 11:39
C-x C-rて find-file-read-only?
928名無しさん@Emacs:03/08/11 14:29
次スレきぼんぬ。
929 :03/08/11 15:06
藻前が立てれ
>>926
C-xC-v じゃねーの?

>>928
980までいってからで十分。
>>927
そう

>>930
C-xC-r ならファイルがなきゃ開かないでそ、ということ

編集が必要なら C-xC-q すりゃいいし
932923:03/08/12 13:56
>>931
> 編集が必要なら C-xC-q すりゃいいし

viみたい(w
既存のファイルを開くときは最後の一文字をタブで補完すればいいと思う。
>>923よりは>>931のほうがスマートだと思う。
923はEmacsで新ファイルを作らない人なのか?
935923:03/08/12 15:01
>>934
めったにつくりません。
ファイル開いてC-x C-wすることが多いです。
俺はむしろファイルを作ってC-x iだな
補完すれば大体存在しているファイルにいきつくけど、
そんなに空バッファが作られるのがいやなのか。
hoge.txtを編集するぞ…と思ってhoge[TAB][RET]と押したら
hoge2.txtもあって補完が途中で止まってしまって中途半端な名前でバッファが出来てしまうのがいやだ
939名無しさん@お腹いっぱい。:03/08/13 05:08
>938
おれもそれすごく嫌。なんとかして。
>>938,939
スレ違い。iswitchb あたり利用してみろ。
941あぼーん:あぼーん
あぼーん
942あぼーん:あぼーん
あぼーん
>>938
中途半端な名前のバッファが出来てしまったら、
C-xC-v すればいいんじゃないの?
>>943
そんなのがあるとは知らなかった。
これからは使ってみる。
945923:03/08/19 17:39
ファイル保存時に自動的にファイル名を書き込む。autoinsert使ってない人向け。
つっこみどこは多数あると思われ。

(defvar my-insert-filename-target-string "Filename:"
"The filename string is inserted following this string.")
(defvar my-insert-filename-lines 10
"Its applied upto this line number from head of file.")
(add-hook 'write-file-hooks
'(lambda ()
(save-excursion
(save-restriction
(narrow-to-region (point-min) (progn
(goto-char (point-min))
(end-of-line)
(let ((lines my-insert-filename-lines))
(while (and (not (eobp)) (> lines 1))
(next-line 1)
(end-of-line)
(setq lines (1- lines))))
(point)))
(goto-char (point-min))
(if (not (null (search-forward my-insert-filename-target-string nil t)))
(progn
(if (not (eolp))
(kill-line))
(insert " ")
(insert (file-name-nondirectory buffer-file-name))))))))
946945:03/08/19 17:50
>>945
グローバル変数の定義を間違えてました。
正しくは以下。すんまそん。

(defvar my-insert-filename-target-string "Filename:"
"*The filename string is inserted following this string.")
(defvar my-insert-filename-lines 10
"*Its applied upto this line number from head of file.")
英語が変。
なら、どう変なのか直してやれよ
949945:03/08/20 09:56
>>947
エキサイトで英日翻訳してみました。

ファイル名ストリングはこのストリングに続いて挿入されます。
それは、ファイルの頭からのこのライン番号まで適用されます。

だいたい意図は合っていると思うのですが・・・。
英語ってムズカシ。
950ヽ(´ー`)ノ:03/08/20 10:22
受け身で書いてるからおかしいんじゃないのかな。

time-stamp.el のコメントを借りれば、

"String after which the filename is inserted."
"Lines of a file searched;"

…ってところか。
>>949
Emacs Lisp リファレンスマニュアルの巻末付録に
「A.3 説明文字列に関するヒント」つうのがありますよ。
952945:03/08/20 10:55
>>950
アリガトウ!
それそのまま使わしてもらいます。
俺は progn の妙なインデントのしかたが気になったが。
シェルスクリプトとか書かないんだろうな
955945:03/08/20 15:12
>>953
2chにコード書くとインデント崩れません?
そゆはなしではなくて?
>>953
TAB が消えたな。
untabify しとけ。
>>955
そーいう話ではなく、
(narrow-to-region (point-min) (progn
じゃなく
(narrow-to-region (point-min)
(progn
としたほうが一般的じゃないのかなー、と。
いや、ホント感覚的なものでスマソ。
いちおうコードは C-M-q してから拝見してます。
>>957
文句言うほどのことじゃないでしょ。
まあ、そんなコードが
数万行とあったら文句言いたくなるけどね。

微々たる事で文句いうな。
文句でもないカキコに文句言ってるようにも見える(w
数万行なら諦めて放置するが
数行なら改善したくなるのが俺達じゃないか
いま >>961 がいいことを言った希ガス
963ヽ(´ー`)ノ:03/08/21 13:53
>>954
if expression; then
ですか、それとも
if expression
do
ですか。

>>961
数万行ならフィルタをかますか、と思うのがうに使い。
また恐ろしく手に馴染まなさそうなのを作ってしまった。
M-(みたいに{} と[]を入れるだけです。
1回目は[]が入り、2回目は{}が入ります。それ以降はトグル。

(defvar insert-paren-kaku-state nil)
(defun insert-paren-kaku ()
(interactive)
(if (eq last-command 'insert-paren-kaku)
(progn
(forward-char -1)
(delete-char 2)
(if (null insert-paren-kaku-state)
(progn
(insert ?\{)
(save-excursion
(insert ?\}))
(setq insert-paren-kaku-state t))
(progn
(insert ?\[)
(save-excursion
(insert ?\]))
(setq insert-paren-kaku-state nil))))
(progn
(insert ?\[)
(save-excursion
(insert ?\]))
(setq insert-paren-kaku-state nil))))
(global-set-key "\M-[" 'insert-paren-kaku)

ごめんなさいー ひー
>>963
if expression
then
と書いてthenの前にthenの後に書くべき処理を
書いてしまってはまったことがあるので今は
if expression; thenだけにしてます。

>>964
M-( を初めて知りますた。
なぜか夏休み終盤に作る工作が頭に浮かんできた
M-( で思い出したけど、
C-0 〜 C-9 と M-0 〜 M-9が digit-argumentされてるのって
果てしなくキーバインド資源の無駄遣いだと思ふ。

C-0 〜 C-9は許せるにしてもメタまで食うかと。
>>967
なら自分で bind しなおせばいいじゃん。
ちなみの俺は M-num は以前から知ってたが、
C-num は最近の emacsスレ(だったかな?)見るまで知らんかった。
# おもいっきりスレ違いだな。
昔は esc-数値で numeric argument 入れてたから、
M-数値はそのなごりなのかな。
俺は M-num は windows.el で画面切り替えるのに使ってますです。
こんなん。
(let ((i 1))
(while (< i 10)
(define-key esc-map (number-to-string i) 'win-switch-to-window)
(setq i (1+ i))))
(define-key esc-map "0" 'win-toggle-window)
トグルネタが出たので便乗。ナロイングリージョンをトグルさせる。

(defvar toggle-narrowing-region-window-start nil)
(defun toggle-narrowing-region (beg end)
"Toggle narrowing/widening region."
(interactive "r")
(if (string-match "<[0-9]* - [0-9]*>" (what-cursor-position))
(progn
(widen)
(set-window-start nil toggle-narrowing-region-window-start)
(message "widened."))
(progn
(setq toggle-narrowing-region-window-start (window-start))
(narrow-to-region beg end)
(message "narrowed."))))
(global-set-key "\C-xnn" 'toggle-narrowing-region)

ナロイングしてるかどうかを what-cursor-positionの出力文字列に頼ってい
るのがちょっと怪しいが、とりあえずは動く。
>>971 これでどう?
(= (- (point-max) (point-min)) (buffer-size))
multibytenessとの絡みは未確認。
(defun narrowing-p ()
(not
(let ((min (point-min)) (max (point-max)))
(save-restriction (widen)
(and (eq (point-min) min) (eq (point-max) max))))))
974971:03/08/28 11:11
>>972
>>973

アリガd。基本はpoint-min/maxで比べるということか。
参考になりますた。

975きょん:03/09/02 01:31
まじめな質問
「mewのMessageモードのヘッダ部分に色がつかない。」

.mew.elには、
(setq mew-theme-file "~/.mew.theme.el")
の記述をして、
.mew.theme.el
はデフォルトのままホームディレクトリに.mew.elと一緒に置いてます。

で、M-x list-colors-displayを実行すると、色の名前も色の一覧も何も表示しない。
使ってる仮想端末エミュレータはTeraTerm,PuTTY.
(両方ともヘッダ部分に色表示なし)

サーバ側の問題だろうか・・?
976名無しさん@お腹いっぱい。:03/09/02 01:38
スレ違い。
しかも板違い。
さらにマルチ。
板違いではないだろ、一応mewスレもあるし。
980Kusakabe Youichi
今だ!980ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄    (´´
  ヘ_ヘ   )      (´⌒(´
ミ ・ ・ ミ   )   (´⌒(´
(  ° )〜≡≡≡(´⌒;;;≡≡≡
   ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ