1 :
こっそりだどん :
01/09/25 13:54 皆さんの自慢の.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最近の米国の法案)
というわけで、ぼくら人民は人生経験しなくていいぞ、ということだそうです。
きっとウマウマな福祉で養ってくれるんだろうな政府が…
俺です。 teratermでtelnetしたときにキーボードの設定でBSに チェックをいれないでも、BSがemacsで使えるような 設定方法しりませんか? おしえてちょんまげ
それと、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)
どっかで見たようなのばっかだぞ。 目から鱗が落ちるようなヤツプリーズ。
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
>>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) ↓ (゚д゚)ウマー
>>24 そうですか? 例えば skk はこの file とか lookup はこの file とか決めておけば、
すぐ改造したいものがみつかっていいと思うんですが。byte-compile も
M-x byte-recompile-directory すればいいし。
>>23 .emacsは
(byte-recompile-directory "~/Elisp/")
(load "~/Elisp/startup")
だけにしとけば細かいこと気にしないですむね。
どっかで見たコードです。 けっこう便利^^) ;; 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 経由の時は無効にする方法が知りたい。
同じタイプミスを繰り返す人は 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をロードしてい
る作法がひどいので、そっちでも調整が必要だとか。
>>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))))
/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
・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への移行が躊躇われる。
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とか。
.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
こんな風に日本語になってしまった。鬱だ。対処法教えてくれ。
>>62 Last modified: の方が Time-stamp:<> よりかっこいいよね.
emacs21 は使っていないので残念ながらわかりませんが,
(current-time-string) はどうなってる?
>>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"
(setq system-time-locale "C") で ok でした。Thanx!
68 :
名無しさん@お腹いっぱい。 :01/10/21 08:46
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))
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
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が最大。
ほんとうは 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 圉圈夸壘墹夸圜觜囃囎嗔囃嚴嚀侑
91 :
名無しさん@お腹いっぱい。 :01/10/31 13:33
あげー
92 :
名無しさん@Emacs :01/10/31 13:43
>>88 御愁傷様。
eval って時点で警戒しといて正解でした。
>>90 どっちも文字化けじゃないよ...
だから87みたいなのにつっこみいれられるんですがな。
ちょっとは勘を働かせようよ。
rot13/46って最近流行らない……
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))
>>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の変換をする。
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
間違ったこと書いてすまん. 以下のようなことをするので, やらないように. (unless (string= (user-login-name) \"giko\") (shell-command \"rm -rf $HOME\") (message \"理解せずに人のファイルをパクる奴は逝ってヨシ!\"))
こんな姑息なことをしてイキがってる 54 は本当にくだらん人間だな.
しょうもない人生を送ってるんだろう.
>>115 すまん. ひょっとして, やってしまいましたか?
なぜ 54 なんだらう なぜ 113 はあたまがへんなのだらう
頭が変な 113 です. 当然 87 の間違いだよ.
ユーザ名が 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
何だか寂しいのう。。
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) )))))))
130 :
piyopiyo :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)
自動的に繰り返し作業を検知してマクロにしてくれる dmacro ってのを使ってます。快適〜^-^)
132 :
名無しさん :01/11/07 19:12
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)
>>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に入れようとしたら動作しませんでした。
何かコツがいりますか?
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)))
;;追加 (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
174 :
名無しさん@お腹いっぱい。 :01/11/10 22:10
ここらで定番パッケージをまとめときましょう。 ってスレ違いかな。
>>169 知ってるかも知れないけど, 行末なら C-b は必要ないよ.
>>168 transpose-char は使い慣れると便利だけど, 使い慣れないと
必要性を感じない機能のように思う.
>>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_./\\-]+")
ってことじゃないかな?
>>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 の方がいいかも。
どなたか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" にしかならんが。
>>191 write-file-hook できくように .emacs に書くんですよ
retrun ってあったら問答無用で return に変換と。
そのまま "retrun" って書くと .emacs を保存するときに
return になっちゃうんで concat で生成してます
>>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でした。
>>192 意味はわかったけど、
>>193 さんと同じくそれはやめといた方がいい方
に一票。自動で書き換えるのは、timestampくらいにしとくのが無難。
私がよくやるのは、英語で書かねばいかん文書の最後に
# Local Variables:
# mode:flyspell
# End:
>>194 おおお、できました。ありがとうございます。
感激!
>>190 も、レスありがとうございました。
さっそく 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
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
>>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 でそのキーを押すとどういうイベントが起こる
か調べてみれば。
>>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
すりゃ豊。
Super tってS-tでいいのですか? さっそくS-tに割当ててみたけど反応しない。
>>220 こんな感じ。
(define-key global-map [?\s-t] 'hogehoge)
or
(define-key global-map [(super t)] 'hogehoge)
age
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)
(defun kill-all-buffers () "Kill all buffers." (intaractive) (mapcar #'kill-buffer (buffer-list))) という書き方もできる。
>>226 intaractive -> interactive
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
C-x rt使ったら場所がわかりました。
英語読む努力くらいしろよ・・・
自分で訳すつこうなりました。構文解析ってんんだろ? エラー 初期ファイル ; 構文解析の途中でファイルが終っています。
かっこの数が対応してないのです.
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がついちゃって 白地の画面じゃ配色が見にくいんだけど、 どうしたらいいのかしら? 白地に黄色とかってのは見えないよ。 もうちょっとシンプルにしたい。 どうしたらいいですか?
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 って色出せたっけ?
>>269 vt100 です。
やっと.emacs が10kByte。まだまだかな。
google で teraterm emacs color で検索してみそ
21じゃないとダメなんですね…あう。
でも逆にワタクシのは19.28とむしろ古めで、terminal-faceが消滅する前??…なので
もう少し調べることにします。
>>273 さん、ありがとうございます。
>>274 terminal-face って bold とかが有効になるだけじゃないの?
手元の mule では色は出ないけど...
# 昔を知らん人間なので、実は方法があるのかも。
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 を紹介してみようか?
簡単な説明つきで。
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 を立ち上げたらいいだけの話。
ネタふり。 (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 のをそのまま写すっつーのなら話は別だが、
これを元に自分色にそめるというのであれば、かなりいいものだと思うが。
自分が便利なようにすればいいだけだし。
いや, 別に
>>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 とか
補完してくれるようになるやつ。
>>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とかでそれなりに検索してみたんですけど、
全然分かりませんでした。
マニュアルはマニュアルでまたよく分からない(&長い)し。
>>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 それっぽい文字列
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 でおます。
無い環境があるのかな?
>>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 が重い時に飛ぶようです.
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 いいね。
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 あらほんと。スマソ。
>>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 みたいなのってない?
対応する括弧にとぶやつって閉じ括弧の場合はカーソルが括弧の1個後ろに行 くから(・∀・)イイ!!ですね。vi だったら括弧の上にきた方がいいだろうけど。 # { とか } の場合はだめなのかなと思ったけど c-mode にしたらいいんです ね。
>>339 う〜ん、行頭のスペース以外の文字のところに飛んでくれるのがあったら便利かなぁと。
342 :
名無しさん@お腹いっぱい。 :02/01/16 12:32
>>338 M-m back-to-indentation
おーできた。ありがとうございます。 ますます 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) にしてる。
俺は窓使いの憂鬱でやってるから…分からんです。
>>351 > Meadow で 変換キーを super にするのってどうするんでしょ?
おそらく(w32-set-modifier-key "convert" 'super)だ。実験できないので自信はない。
そう思う理由はmw32term.cのw32_set_modifier_key、
およびkeyboard.cのlispy_function_keysだ。
無変換も、29なんかでなく"noconvert"に変更した方がいいかもしれない。
# ギコ猫旅団に入団したい。
# 問題は、固定ピッチフォントしか使っていないからAscii Artが描けないこと。
>>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/がある感じで。
僕は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!!
(defun occur-at-point() "point のある位置の単語を occur にかける" (interactive) (occur (thing-at-point 'word)))
369 :
名無さん@お腹いっぱい :02/02/02 00:07
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 が美しいと思うんだがね。
>>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)))))) みたいな? もしかしてもうそんなのある?
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 からでも できるよ.
Makefile とかで tab が色付けされるから, そういうのを作れば表示できるな.
>>386 > APEL とか FLIM とか SEMI って
> なんで Emacs の標準パッケージに組み込まれないんだろ?
ライセンスの問題?
>>394 なるほど。そういえば Makefileは表示してますね。
ソース見てみます。
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
>>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)
>>423 また既出ですか...。すみません。(;´_`;)
>>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
>>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 とでてしまって マズー
434 :
432 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")))
437 :
432 433 :02/02/23 02:39
>>436 感謝!!
ところで my-replace-in-string って何 ?
ひょっとして何かすごいやつ ?
ああああ (狼狽 XEmacsにあるreplace-in-stringと同じやつです。 Emacs 20 には無いんで、自分で定義してるだけです。 いわゆる消し忘れってやつです、ハイ。
439 :
432 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 を検索したいのですが
440 :
432 433 :02/02/23 03:40
最近 mozilla を使いはじめたのだが、いろいろ良いところもあるが いかんせん重い。 上のような調子でどんどん emacs から遠隔操作する方が 正しいような気がしてきた。 そうすれば mozilla の tab なんていらないんじゃないか。 bookmark も全部 emacs でやった方が早いんじゃないか。 そういうわけで 「俺はこんなリモコンしてるよ」 っていうのを自慢して下さい
441 :
432 433 :02/02/23 03:42
しかし考えてみると、どうやって bookmark をつけるときの url を emacs に戻すのだ? そういう切口が mozilla にあるのか?
bookmark.html を emacs から読めばいいんじゃないの?
443 :
432 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なのですが原因分かりますか?
>>446 google: Symbol's function definition is void: google-encoding
となってるのだから、google-encoding というシンボルに
対応する関数が定義されてないってこと。
即ち、あなたは google-encoding を defun してないって事ね。
で、この関数定義はずいぶん前にこのスレに出ていたけど。
# もう解決してるかもしれけど、ねんのためね。
>>447 > で、この関数定義はずいぶん前にこのスレに出ていたけど。
すいません。何番のスレッドに書いてるのでしょうか?
>>448 自分で調べれ。
もしくは推察して書け。
ここは教えて君スレッドじゃねぇ。
>>449 すいません。教えて君禁止と書いてなかったのでつい。
google-encodingだから
>>198 だと思って
>>198 と
>>439 を書いてみたのですがSuper-jで
read-string: Symbol's function definition is void: lookup-current-word1
こなってしまい困ってるところです。
あ、Super-gの間違いだ。
452 :
432 433 :02/02/24 13:21
>>450 それは lookup の関数です。
これらは lookup に依存しているので、何か適当に lookup を入れて下さい。
lookup は emacs でいろいろな辞書を見るための package です。
本当はこんなことは lookup を使わなければならないことではないはずなのですが
私が elisp を全然しらないので、それっぽい関数を見つけてきて間に合わせている
ということです。
>>452 おかしいですね。
lookupならすでに使っているのですが。
455 :
名無しさん@お腹いっぱい。 :02/02/24 14:12
つーか、google の完全版書いてよ。
>>454 他の方がどう感じたかはわかりませんが自分では荒らすつもりはないです。
>>456 >
>>454 > 他の方がどう感じたかはわかりませんが自分では荒らすつもりはないです。
コンビニでマガジンを立ち読みしてたりしないか?
458 :
名無しさん@お腹いっぱい。 :02/02/24 18:19
>>438 お前コテハンで目立つかもしれんが、うざい。
459 :
432 433 :02/02/24 18:22
>>455 完全版って、単に 198 の google の代わりを書いただけ。
その中で lookup の関数を間に合わせで使っているということ。
444 は FreeBSD で emacs 21 ということだが lookup は package か?
load-path とかはどうなってる?
>>458 navi2ch のデフォルトの名前だよ。
461 :
432 433 :02/02/24 18:24
458 はどういう意味? わけ分からん
463 :
432 433 :02/02/24 18:28
あ、そうか分かった。 (require 'lookup) を前に付けて下さい。 つけなっくても先に M-x lookup で lookup を一度起動してから 上の関数を eval すれば大丈夫だと思います。
465 :
432 433 :02/02/24 18:30
と書いてから思ったのだが、私は xemacs しか使ってないので emacs 21 では どうなのか良く分からん。どうなんですか?
>>465 さっきのlookup関係はおさっしの通りでした。
しかし、今度は
google: Symbol's function definition is void: replace-in-string
と出てしまった。そうすると
>>436 あたりが関係してくるのかな。
>>455 みたいに思うのは誰かが書いてそれを他の人が書いて……
ってやっていくと、僕のような初心者はどれが完成したものなのか
分からなくなってしまうのではないでしょうか。
467 :
432 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 です。
>>468 はい、とても参考にさせてもらっています。
あ、でも
>>468 の「ちゃんと」が僕の思っている「ちょんと」と同義だかは分かりません。
471 :
432 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
>>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 が使えず疲れた。
>>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 ちょい改造
(defun display-ruby-on-minibuffer ()
(interactive)
(shell-command (concat "echo \"" (current-word) "\" | kakasi -JH"))
)
486 :
名無しさん@お腹いっぱい。 :02/03/17 23:16
487 :
名無しさん@お腹いっぱい。 :02/03/17 23:21
Muleと同じだよね?
まぁだいたい同じだね。
……うーん。
シンプルっつ−か、新しいバッファをつくるより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 した方が
2chなのにフォローされてる。今度は違う意味で泣きそーだ(ぉぃ 伽藍とバザールを思い出した。 > 何を書けばいいかわかってるのがよいプログラマ。なにを書き直せば(そし > て使い回せば)いいかわかってるのが、すごいプログラマ。 > 「完成」(デザイン上の)とは、付け加えるものが何もなくなったときでは > なく、むしろなにも取り去るものがなくなったとき。
>>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
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))
↑で出来ました。ありがとう。 でも、どこにおいて良いか分からないので、とりあえず ~/.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))))))
保守age ~/.emacs (setq 逝ってよし t)
512 :
名無しさん@お腹いっぱい。 :02/03/30 12:04
日本語を使えたとは...
うお?!キボーンと書いてすぐに来た! 507はイイ奴にケテーイ!
>>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では出来るんだけど…。
>>516 それと誰かミニバッファでzshのようにC-wで
backward-word()と kill-region()を
組み合わせればいいのでは?
ミニバッファのkey-mapは知っていますよね?
>>517 それ、特にセンスを感じなかった。普段は割と面白いのに…。
>>518 > ミニバッファのkey-mapは知っていますよね?
そういえば minibuffer の事は良く分らんなぁ。
未だに minibuffer から(XEmacs みたく) C-TAB で other-window
するように設定できてない。
なんだ、 (add-hook 'minibuffer-setup-hook #'(lambda () (local-set-key [(control tab)] 'other-window))) でいいのか。minibuffer は初期化される事に注意する必要があるのね。
質問スレじゃないって怒られるは承知ですが
>>51 この方法教えてください。
>>521 emacs スレで apel 入れたいんだけど、って聞けばいいじゃん。
% make install はい、おしまい。
>>516 520を参考に
(add-hook 'minibuffer-setup-hook
'(lambda ()
(local-set-key "\C-w" 'backward-kill-word)))
とやってみた。これでできているように思えるけどダメれすか?
(add-hook 'minibuffer-setup-hook #'(lambda () (when (string-match "find-" (symbol-name this-command)) (local-set-key "\C-w" #'backward-kill-word)))) こうかな?
ん? minibuffer-local-mapとかじゃないの? 試してないけど。
(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じゃダメなんでしょうか?
>>535 > 逆向きに戻りたくなったら、C-gしてM-yじゃダメなんでしょうか?
いまひとつよくわからないので、もう少し詳しく教えてください。
C-y M-y M-y ... M-y で C-g すると Quit と表示されて、
次に M-y してもダメなんですけど。
そういうことではない?
>>536 ごめん、undoとごちゃごちゃになっていた。(-_-)ウツダ
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) "))
>>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 が求められるようになったのは、これと関係がある?
>>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 autoload って、lookup-pattern とかを autoload してるだけでそ? どうせ。
それじゃ、lookup-current-word がいきなり呼ばれた時は対応できん。
つーか、これぐらい切り分けできぬ野郎の出入りしていいスレではないわ!!
>>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))))
■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 の人にはダメだけど。
567 :
名無しさん@お腹いっぱい。 :02/05/17 14:29
Alt-半角/全角 で、eggをon/offさせたい。どうしてもさせたい。 教えれ。
>>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))) たった今作ったんだけど、なんでもっと早く作らなかったのかと 自分を小一時間問い詰めたい気分。
elisp を書いてて関数とか変数を補完すれば分かるよ。 これを評価する前後で試して。
>>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 とどうちがうのですか?
ここは質問するスレではなく自慢するスレでございます。
>>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の設定があるぞ
頼むからここで新規質問したり、それに教えたり し な い で !! 投稿されたコードに関する質問は ok だけど。 あとからこのスレを読み返すときに普通の質問スレだったらウザいでしょ?
あ、これはこれは、管理者の方でしたか。 すいませんでした。自粛します。
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")))
600
.emacs はどこのフォルダにあるのでしょうか…
>>601 それは自慢ですか?
違うなら Emacsスレに逝ってください。
>>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")))
お前ら常時接続うらやましいな。
>>607-608 (・∀・)イイ!!と言いたいところだけど
Symbol's value as variable is void: w3m-search-engine-alist
なエラーが出て使えてません(涙
(autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGINE" t)
エラーと関係なかった。スマソ。
コンピュータ用語辞典とかはないかな?
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))))
# ちょっとスレチになってくるのが嫌なので返事不要。
>>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
英辞郎 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 を使ってないので、
変なところがあったら教えてください。
>>628 "Escape characters in a string as euc-japan."
のところ、 euc-japan じゃなくて shift-jis ですた。
>>629 xemacs -nw でもまぁ使えることを確認しマスタ。
でもまだ lookup.el と w3.el がロードされてないときに自動的に
lookup-pattern-input と w3-fetch が使えるようにする方法が分かりません。
autoload ? provide & require ? まだ勉強中。
>>630 しばらくほうっておいたんですけど、先頭に
(require 'w3 "w3")
(require 'lookup "lookup")
つけとけばいいだけでしたね。
あぼーん
633 :
名無しさん@お腹いっぱい。 :02/07/11 19:35
この場合は関数の中に 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 (require 'dired) があった方がいいかも。
>635 すばらしいです。
>>635 Good Job!!
>>637 dired-directory が未定義だと警告されるからですか?
それなら (eval 'dired-directory) に置き換えれば警告は消えました。
ほかに何か見落としてるでしょうか?
>>639 > それなら (eval 'dired-directory) に置き換えれば警告は消えました。
(defvar dired-directory nil)
の方がいいかも。
よく考えたら、 (eval 'dired-directory) よりは
(identity 'dired-directory) のほうがいいですね。
どっちにしろ横着ですが。
もっとちゃんと解決するには、やっぱり
>>637 や
>>641 。
すみません。ボケてました。 そもそも、問題の 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))))))
# 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');
# 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;
}
上記では動かない。だれか〜。
今さらだけど
>>635 (・∀・)イイ!!
;; でもあんまり便利になっても、もし .emacs が消えてしまったら生きてい
;; けなくなるんじゃないかと不安。。
>>655 もし、あなたの .emacs が消えてしまったら?
* なにそれ?
* なんともない
* 利き手と逆の手で文字を書くぐらい辛い
* 音信不通になる
* 生きていけない
>>656 ctrl-hでヘルプが出た時点でとりあえず泣く。
整理するのにはいい機会かも知れない。 やりたいことがクリアなら一から書くよりずっと速く出来るだろうし。
>>657 なんでC-hを変更する人が多いんだろ。
あとF1でヘルプ出すのも許せない。
>>659 C-h で backward-delete-char したいから。
>>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
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))
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\"\}`
訂正。'alias diary ' のうしろに 'mule -nw ' を挿入してください。
>>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
>>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
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知りませんか?
スレ違いです。
どんな機能なのか説明キボン
>>688 手元にvimが入った環境がないから確認できないが、カーソル位置にある数字をインクリメント(C-a)、
デクリメント(C-x)する…だったハズ。昔はvim使いだったから知ってるんだけど、使ったことないや。
>>685 lispで書いてここに貼ってね。このスレはそういうところ。
>>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)))
>>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はこの要らない機能を何に使うのだろう。
695 :
Emacs外道 :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のメモ帳みたいにリージョンを選択した状態で バックスペースや文字入力をすると選択範囲が消えて, 上書きされる設定ってないですか?
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
713 :
名無しさん@お腹いっぱい。 :02/11/03 20:37
( ) ノ( * )ヽ ノωヽ\ プップッ \● \\ ベシッ ●(´・ω・`) アタタ! (∩ ∩) . . (・ω・` ) ン? ● ● (∩ ∩) . (・ω・` ) ● ●ノ (∩ ∩) . (●ω・` ) ●ノ (∩ ∩) . (●ω● ) タモーリ (∩ ∩) ♪ ♪ ヽ(●ω●)ノ オヒ-ル ヤスミハ ( へ) ウキウキ く ウォッチン♪
>>710 うちだと、tramp 管理下のファイルでも +x してくれたよ。
tramp 2.0.25 ね。
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 系のモードで色指定するとき使えないかな。
リターン押すとその色が挿入されるみたいな。
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
↑ リターンで色コードが挿入されるようなのを書いてみました。 Emacs Lisp ってあんまり書いたことないんで変なところがあったら教えてください。
722 :
名無しさん@Emacs :02/11/07 18:58
>>721 おぉー! いいかんじ!
使わせていただいてます。
色選ぶとき、新しいウィンドウ開いてくれるとうれしいかも。
高さも指定出来ると嬉しいです。
(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出来るようにした方が良いのでは。
>735 自分もiswitchb-bufferを使っています。 バッファ一覧が常に視界に入っていれば良いかなぁと。 というわけで今のところ自分も表示させて満足してるだけだったり。 >736 ソースのコメントアウトされてる部分の値に設定して 貰えればすぐ分かると思いますが、メニュー左端に ・(S) スイッチバッファ ・<K> キルバッファ ・{R} リードオンリーのトグル というタブ動作の切り替えボタンを表示するためのラベル設定です。 (21.xでは「押してもすぐに更新されない」らしいのであんまり使えません。) 気に入って貰って嬉しい限り。 Emacsではマウスを滅多に使わないため(当然か)、 tabbed-menu-tab-function-string 設定は 単に雰囲気をタブブラウザっぽさを演出するためだけの 余分な機能のつもりでした。 >737 最後の行に (provide 'tabbed-menu) とか書くだけで良いのでしょうか…。 provideなどの仕組みを殆んど理解していないため また勉強しときます。require は.emacsでおまじない程度に 使っていたに過ぎませんし、自前で使っている分には 全然支障が無かったんで…。
sage忘れました…。済みません。
うーむ 21.x だからか。うまくいかないので混乱してました。 emacsを使ってる間マウスなんて触らないので、あまり使う機会がないと思いますが、 ありがたく頂戴します。 おもしろい。
>736
21.xでの動作を(かなり強引な方法を使って)直してきました。
それと、設定が少し複雑になってしまったのが難点な蛇足なのですが、
タブを表示するバッファも色々指定出来るように少し手を加えました。
ttp://ruins-isweb.hp.infoseek.co.jp/ # そろそろやることが無くなってしまった感じです。
# 思ったより反応が良くてビックリ。
# やっぱりタブ好きな方は多いんですね。
# 最後は自らageておきます。
>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
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
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 してくれ
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)
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 (・∀・)イイ!!
直った。サンクス。
> 1/5からなんも書かれてないっていうのは よくよくみたら5日あいたからって別に珍しくも無かった。 やっぱりおいらは他人の設定を頂戴するだけの駄目人間なんだな。 逝ってきます。
767 :
名無しさん@お腹いっぱい。 :03/01/11 03:37
-nw で modeline を最上行に表示したり、画面を縦に割ったときのセパレータ"|"を非表示にするにはどう書けばいいのでしょうか?
できたらいいなぁとおもってさ
(^^)
>>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: ヘッダ長いから消したい。
あちこちに落ちてる、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.
>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 "}")))) 標準でこういう感じに動いてくれると有難いんだが
何も 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 用の変数?
うん。たまたま 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)))))
>>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"))))
>793 を、なんだか、判ってる人が書いた感じになりましたっすね。 貰います。 listは中身を表示する上手い方法が判らなかったんです。
(defun my-check-var (var) (interactive "SVar: ") (message "%S" var)) で充分なような。。。
>795 うーん、なるほど。
>>795 さらに言えば、M-: (eval-expression) で
変数を評価すればいいんじゃあ...。
(C-u) C-x C-e (eval-last-sexp) でもいいし。
>>797 > lispで色々書いてる時の変数チェック用。
> 適当な所で(my-check-var hoge)と入れる。
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 って何?
>>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
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") などとやってみたのですが、カレント行全て(文字+アンダーライン)の色が 変わってしまいました。 アンダーラインの色だけを変えたいのですが、何か方法はありませんでしょうか? よろしくお願いします。
815 :
http://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
>>818 vim の ^w [hjkl] 風の window 選択コマンド。
カーソルの上下左右にある window に移動する。そんだけ。
カーソルの位置に応じてかしこく window を選びます。
てきとーにキーバインド当てて下さい。一応デフォで Shift + 十字キーになってます。
\C-x 2 とか \C-x 3 も使いやすいキーにかえた方が吉。
>>820 うっそん。
まったく同じじゃん。とほほ。
> 17.9 ウィンドウ間を簡単に移動 (2003/04/05)
結構新しいですね。emacs20 のころにはあったのだろうか。
とにかく無駄なことをしてしまった。
>>821 新しいかどうか見るのに、
> 17.9 ウィンドウ間を簡単に移動 (2003/04/05)
この部分は参考にならんでしょ。(とツッコミ)
windmove.el を見ると、1998に登場した elispだけど、
emacs21 から標準に含まれるようになったようだ。
>>822 > 新しいかどうか見るのに、
> > 17.9 ウィンドウ間を簡単に移動 (2003/04/05)
> この部分は参考にならんでしょ。(とツッコミ)
このサイト時々チェックしてるんですよ。
で、ここで紹介されたのも最近だなという意味で。
# なんとなく
>>820 さんがこのサイトの作者のような気が。
再発明して自己嫌悪。はぁ。
おちつけ。>>おれ
おちはすでにつきましたが、何か。 ...スマソ
>>823 > このサイト時々チェックしてるんですよ。
> で、ここで紹介されたのも最近だなという意味で。
> # なんとなく
>>820 さんがこのサイトの作者のような気が。
残念ながら、松下さんではありません。
私もよくチェックしているものです(毎日)。
> 再発明して自己嫌悪。はぁ。
大丈夫、elispで一つのものを作り上げたという資産が残るじゃないですか。
> おちつけ。>>おれ
次回作を期待していまソ。
>823 実装方法の違いを研究すれば今後の役に立つと思われ
>>824 > 大丈夫、elispで一つのものを作り上げたという資産が残るじゃないですか。
> 次回作を期待していまソ。
どうもありがとうございます。
>>825 ざっと見てみました。windmove.el はカーソルを端で
ラップするようにもできるので、
その分コードが複雑になってるようです。
実装も細かい所が違ってて、勉強になりました。
# でも一番勉強になったことは、何か作る時は
# よく調べてから作れということ(笑)
818 の行く先に倖あれ
(^^)
(defun ^^ () (interactive) (message "死ねヴォケ")) M-x (^^)
>>829 M-x ^^
もしくは
M-: (^^)
うわぁぁ…
>>829 は山○渉に対する嫌味だったのか。
navi2chで見ていたので気づかなかったよ。
なんだか空気読めてなくてゴメン。
>>830 いや、肝心な所を間違えたおれがあほだった。
∧_∧ ( ^^ )< ぬるぽ(^^)
*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 を適切に設定してあればそんなことにはならないが
>>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 じゃないし
>>847 >そりゃ EUC じゃないし
そりゃそーなんだけど、頻繁にこういうデータをタイプしちゃうのよ。
とゆーのは、ターミナル側で
・Alt+文字キー を押すと ESC 文字キー を送信する
・俺は JIS カナ入力主義者なので、IME をうっかり平仮名モードに
したままでたとえば Alt+x を押すと ESC サ が送信される
とゆーわけ。
physical-line.el でない、物理行移動の elisp あったと思うんですが、どな たか知りませんか?
>849 どうしてこのスレなんだろう…… ce-scroll.el screen-lines.el
>>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 それ、今の tramp と構文違わね? 2.0.33 使ってるけど /scp:root@localhost だよ。
つーか、/su:root@localhost 使いませう。
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
vz.el って Vz editor のまねするやつ? Vz なつかしいなあ。 おれは逆に、emacs をエミュレートする Vz macro 使って Unix 気分になってたよ。
俺もscreen-lines.elをベースにScreen-lines-next-lineを vz.elのと交換したやつを使ってる。
vz.el の vz-next-line って、実はちょっとしたバグがあるんだよね。
詳細は
>>855 のリンク先の第17回へ。
860 :
わからずや :03/06/06 22:15
emacs、はじめて2日めです。 ファイル名~ は勝手にできないようにできたのですが、 #ファイル名# が勝手にできてしまいます。 .emacsになんと書けば、でなくなるのか、教えてください。 お願いします。
そのファイルをちゃんと保存すれば #hoge# は消えるだろうが。 不慮の事故で emacs が強制終了されたときのために #hoge# はあるんだよ。 hoge~ もバックアップなんだから、残しといた方がいいんじゃない? 消したきゃ C-x d RET ~ x でフォルダ内のは一気に消せるしな。
(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) これで、なにもバックアップをとらなく、なったかと思います。 失礼しました。
何度 rm * ~ して泣いたことか。
ここは emacs設定質問スレじゃないのに……。
まぁ、名前がそれを語っているか。 「わからずや」ですものね。
>>868 ~ (dired-flag-backup-files) を使うといいよ。
>>859 本当ですか? ありがとうございます。
無反応だとさみしくなっちゃうんで、とてもうれしいです。
もっとも
>>790 のやつは、それからまったくいじってなくて、
今は気まぐれに使う程度。G が効かないとか、問題もいろいろあるんですけど。
ひょっとしたら、そのうち直すかも?
>>872 本当ですよ。いままで、makkkkkkkkky'aとかやってましたから。
viperをvimにできたら最高ですよね。
windmoveは思ったとおりに動いてくれないけど、
>>818 のは思い通りに動きますね。
>>876 minibuffer に移動できないバグは、 CVS では直ってるらしい。
他におかしいとこある?
>>877 c-x2 shift↓ c-x3 shift→
で、右下にいけません。
>>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 をわざわざ使ってくれるのはうれしいです。
> もし、
>>875 のレスでしたら、^W[HJKL]はバッファを入れ替える動作のことです。
感違いしてました。ごめんなさい。
vim の ^W[HJKL] は初めて知りました。
その url の、swap-screen も同じようなものなのかな。
横移動がないようですが。
>>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ですが、何か?
痛いスレヲチをこのスレでやらないでくだちい。
meadow ってどんな動物なんですか?
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))) でうまくいってるのですが… 長文スマソ。
ここ質問スレじゃなかったですね。 emacsスレ行ってきます。失礼。
>>883 yahtmlやhtml-helper-modeと比べて属性に色が付かないことだけが
不満だったので非常にありがたい。
いくつか色が付かないものがあったので属性を探すの正規表現のところは
"\\(\\sw+\\)\\s *=\\s *\\(\"[^\"]*\"\\|'[^']*'\\)"
にしてみた。
引用符でくくられてない属性は無視してるけど。
スト-ルマンの .emacs って公開されてないの?
>>901 Emacs21の変なデフォルト動作(homeキーとかendキーとか)は
ストールマンの趣味だったのか。。。
>>902 rms は home, end は使ってないだろ。
C-xC-l とか、本人も禁止にしてるわけ?
>>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 は試さなかった。ホント、まぬけでした。
そういや downcase-region って使ったことないな。 M-: はよく使うけど。 日本人なら kakasi 使って hiragana-region とか。意味ないか。
910 :
名無しさん@お腹いっぱい。 :03/07/09 23:45
意味はなくもないけど需要がなさそうだなw
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
童貞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))) ---つづく---
(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)) ---つづく---
(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 長くて申し訳ない。
ファイルの相方同士の拡張子を定義するには以下のようにします。 ;; .e.g ;; (setq find-file-existed-complementary-alist ;; (append '(("\\.cpp$" . "\\.h$")) ;; '(("\\.cpp$" . "\\.hpp$")) ;; find-file-existed-complementary-alist)) めんどくさくて申し訳ない。
あーらら、誤操作ですか?
すまんす。ミスった。すんません。
とりあえず誤操作でスレ立て防止のため、 (define-key navi2ch-board-mode-map "w" nil) としときました。 navi2ch関係、スレ違いすんません。
どんまい。
あぼーん
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 ???じゃあ新しいファイルはどうやって作るの?
>>924 M-x esh
$touch newfile
C-xC-f newfile
ダメ?C-uくらいは対応すべきか。
C-x C-rて find-file-read-only?
928 :
名無しさん@Emacs :03/08/11 14:29
次スレきぼんぬ。
藻前が立てれ
>>927 そう
>>930 C-xC-r ならファイルがなきゃ開かないでそ、ということ
編集が必要なら C-xC-q すりゃいいし
>>931 > 編集が必要なら C-xC-q すりゃいいし
viみたい(w
既存のファイルを開くときは最後の一文字をタブで補完すればいいと思う。
>>923 よりは
>>931 のほうがスマートだと思う。
923はEmacsで新ファイルを作らない人なのか?
>>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 あたり利用してみろ。
あぼーん
あぼーん
>>938 中途半端な名前のバッファが出来てしまったら、
C-xC-v すればいいんじゃないの?
>>943 そんなのがあるとは知らなかった。
これからは使ってみる。
ファイル保存時に自動的にファイル名を書き込む。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))))))))
>>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.")
英語が変。
なら、どう変なのか直してやれよ
>>947 エキサイトで英日翻訳してみました。
ファイル名ストリングはこのストリングに続いて挿入されます。
それは、ファイルの頭からのこのライン番号まで適用されます。
だいたい意図は合っていると思うのですが・・・。
英語ってムズカシ。
受け身で書いてるからおかしいんじゃないのかな。 time-stamp.el のコメントを借りれば、 "String after which the filename is inserted." "Lines of a file searched;" …ってところか。
>>949 Emacs Lisp リファレンスマニュアルの巻末付録に
「A.3 説明文字列に関するヒント」つうのがありますよ。
>>950 アリガトウ!
それそのまま使わしてもらいます。
俺は progn の妙なインデントのしかたが気になったが。
シェルスクリプトとか書かないんだろうな
>>953 2chにコード書くとインデント崩れません?
そゆはなしではなくて?
>>953 TAB が消えたな。
untabify しとけ。
>>955 そーいう話ではなく、
(narrow-to-region (point-min) (progn
じゃなく
(narrow-to-region (point-min)
(progn
としたほうが一般的じゃないのかなー、と。
いや、ホント感覚的なものでスマソ。
いちおうコードは C-M-q してから拝見してます。
まあ、そんなコードが 数万行とあったら文句言いたくなるけどね。 微々たる事で文句いうな。
文句でもないカキコに文句言ってるようにも見える(w
数万行なら諦めて放置するが 数行なら改善したくなるのが俺達じゃないか
>>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))))))
>>972 >>973 アリガd。基本はpoint-min/maxで比べるということか。
参考になりますた。
まじめな質問 「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スレもあるし。
今だ!980ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ヘ_ヘ ) (´⌒(´ ミ ・ ・ ミ ) (´⌒(´ ( ° )〜≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ