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

Emacs part8

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
各種 Emacs 関連はこちらで。

Emacs
http://cocoa.2ch.net/unix/kako/967/967450973.html
Emacs part2
http://pc.2ch.net/unix/kako/1001/10010/1001087615.html
Emacs part3
http://pc.2ch.net/unix/kako/1007/10076/1007618266.html
Emacs part4
http://pc.2ch.net/unix/kako/1013/10133/1013390142.html
Emacs part5
http://pc.2ch.net/unix/kako/1021/10217/1021734785.html
Emacs part6
http://pc.2ch.net/unix/kako/1032/10326/1032611750.html
Emacs part7
http://pc.2ch.net/test/read.cgi/unix/1042141693/

Emacs Lisp で書かれたプログラムのバグを知らせる方法
http://www.jpl.org/elips/BUGS-ja.html
0579571NGNG
>>577
>xrdb -m ~/.Xdefaults しろって事じゃないの?

あ、してません。その通りだと思います。
これって .xsession に書いておくべきなんでしたっけ?
0580名無しさん@お腹いっぱい。NGNG
べつに xrdb -m しなくても、
~/.Xdefaults に書いてある設定は読まれるでしょ。
0581名無しさん@お腹いっぱい。NGNG
>>575
> 日本語環境設定してあるんか。

とえらそうなこといっているわりには、

> (set-buffer-file-coding-system'euc-jp-unix)

意味不明な設定が入っているな
0582名無しさん@お腹いっぱい。NGNG
CVS 版で emacscclient ってつかえてる?
0583名無しさん@お腹いっぱい。NGNG
>>580
んなこたーない。~/.Xresourcesだけしか読まないかも知れないじゃないか。

$ find /etc/X11 -type f -exec grep -nH xrdb {} \;
で引っかかったファイルを調べてみると吉
0584名無しさん@お腹いっぱい。NGNG
>>583
> $ find /etc/X11 -type f -exec grep -nH xrdb {} \;

find: /etc/X11: No such file or directory


0585名無しさん@お腹いっぱい。NGNG
自分の環境に置き換えする事ぐらいもできない
屑が集るスレはここですか?
0586名無しさん@お腹いっぱい。NGNG
>>584
じゃあ
$ find [Xのスタートアップファイル群が入ってるディレクトリトップ] -type f -exec grep -nH xrdb {} \;
で。
0587名無しさん@お腹いっぱい。NGNG
>>586
zsh: no matches found: [X\M-$\M-N\M-%\M-9\M-%\M-?\M-!\M-<\M-%\M-H\M-%\M-"\M-%\M-C\M-%\M-W\M-%\M-U\M-%\M-!\M-%\M-$\M-%\M-k\M-7\M-2\M-$\M-,\M-F\M-~\M-$\M-C\M-$\M-F\M-$\M-k\M-%\M-G\M-%\M-#\M-%\M-l\M-%\M-/\M-%\M-H\M-%\M-j\M-%\M-H\M-%\M-C\M-%\M-W]
0588名無しさん@お腹いっぱい。NGNG
ちょっと涙がでた。
0589名無しさん@お腹いっぱい。NGNG
ちょっと呼吸が乱れた。
0590名無しさん@お腹いっぱい。NGNG
Xdefaults と Xresources の違い
http://search.luky.org/vine-users.3/msg05259.html

俺は xrdb -m するのが面倒なので Xdefaults に書く派。
0591名無しさん@お腹いっぱい。NGNG
emacs スレに書くのもナンだけど、
$HOME/.Xdefaults は $XAPPLRESDIR 以下のファイルと同様に
ファイルから直接リソースを読むためのものです。

そうでないシステムでも .Xdefaults という名のままでファイルを
持っている人の為にスタートアップファイルで xrdb している場合も多い。
0592名無しさん@お腹いっぱい。NGNG
>スタートアップファイルで xrdb している場合も多い。

余計なお世話だよなあ…
0593名無しさん@お腹いっぱい。NGNG
(w3m-url-decode-string "%82%a0")
を、評価すると "あ" が返ってきます。

(let ((str (read-string "")))
(w3m-url-decode-string str))
を、評価して %82%a0 をミニバッファに入力すると "a\240" が
返ってきます。なぜ、こうなってしまうのでしょうか?
0594名無しさん@お腹いっぱい。NGNG
>>593
私も再現しました。デバッガで追いかけたらconcatで化けてる。なぜだろう。
簡単な問題じゃなさそうですね。
0595anonymous lambda expressionNGNG
w3m-url-decode-stringでは、
(or coding; 引数
w3m-default-coding-system
w3m-coding-system
'iso-2022-7bit))))
となっていますよ。

(let ((str (read-string ""))
(w3m-url-decode-string str 'shift_jis))

としてはどうですか?
; w3m-default-coding-system, w3m-coding-systemがどこかで定義されてるんでしょうね。
0596名無しさん@お腹いっぱい。NGNG
>>594
そうです。 edebug でカタカタすると
(apply 'concat (nreverse (cons (substring str start) buf)))
の部分で、前者と違いが出ます。

> 簡単な問題じゃなさそうですね。
(´・ω・`)ショボーン
0597名無しさん@お腹いっぱい。NGNG
>>594です。

問題を切り出しました。

(defun foo (str)
(concat (string 130) (substring str 0 0) (string 160)))

(foo "")
=> "\202\240"

(let ((str (read-string "Type: ")))
(foo str))

気になるので、答が分かったら教えてね。
0598名無しさん@お腹いっぱい。NGNG
(string-to-char (concat (string 160) (string-as-multibyte "")))
=> 2208
0599名無しさん@お腹いっぱい。NGNG
>>593
(let ((str (read-string "")))
(w3m-url-decode-string (string-as-unibyte str)))
0600名無しさん@お腹いっぱい。NGNG
>>594-595, 597-599
ありがとうございます。正しく"あ" を得ることが出来ました。

しかし、なぜこうなるのか、まだ上手く理解できていませんので
(アフォですんません)時間をとって、リファレンスマニュアルの
「非ASCII文字」の章をじっくりと読み色々と実験してみることします。

レスをくださった皆さん、どうもありがとうございました。
0601名無しさん@お腹いっぱい。NGNG
突然ですが小指が痛いので、これ以上使いたくないのですが
[ と打って { に変換する関数を作りたいのですが、できそうですか?
略語展開機能では登録できなかったもので。
0602名無しさん@お腹いっぱい。NGNG
>>601
(global-set-key "[" (lambda () (interactive) (insert "{")))
とか?
0603名無しさん@お腹いっぱい。NGNG
html-mode も html-helper-mode も indent-region などの indent が一般的
な html のと違っていまいちなんですが他にいいのあったら教えてください。
0604名無しさん@お腹いっぱい。NGNG
>>603
一般的な html の indent ってどんなのですか?
0605 ◆xSK1SiC5MI NGNG
質問です。
Emacs21でPHPとHTMLを同時に扱いたいためにmmm-mode 0.4.7をいれました。
そこで、<?php 〜 ?> はPHPモード、残りの部分はYaHTMLモードにするために
以下の内容を.emacsに追加しました。

この状態で既存のPHPファイルを開くと、
デフォルトではyahtml-mode、<?php 〜 ?> の部分に移動するとphp-modeになる、とうまく動きますが、
ファイルの途中に自分で <?php 〜 ?> を追加しても
追加した <?php 〜 ?> の部分だけは php-modeになりません。(yahtml-modeから変わらない)

これをファイルの編集中でもすぐにモードが切り替わるようにしたいのですが
どなたか解決法が分かる方いませんか?
分かりにくい文でごめんなさい。
よろしくお願いします。

--------------ここから .emacs---------------------
 (require 'mmm-mode)
 (setq mmm-global-mode 'maybe)
 (mmm-add-mode-ext-class nil "\\.php?\\'" 'html-php)
 (mmm-add-classes
 '((html-php
 :submode php-mode
 :front "<\\?\\(php\\)?"
 :back "\\?>")))
 (add-to-list 'auto-mode-alist '("\\.php?\\'" . yahtml-mode))
0606名無しさん@お腹いっぱい。NGNG
>>601
そ、その筋の方ですか?
(((;゚Д゚))ガクガクブルブル
0607515NGNG
(´-`).。oO(CTRLはどうするんだろう?)
0608名無しさん@お腹いっぱい。NGNG
>>607
左手は残ってるのでは...
(((;゚Д゚))ガクガクブルブル
0609anonymous lambda expressionNGNG
>>601
key-translation-mapで?[ → ?{がいいんじゃない?
0610anonymous lambda expressionNGNG
つーか、もしかすると左手のshiftが押せないの?
親指で押せるキーをXでShift_Lにすればいいんじゃない?
0611名無しさん@EmacsNGNG
スペースのすぐ左 = ctrl
スペースのすぐ右 = meta
これ最強
0612名無しさん@お腹いっぱい。NGNG
601です。
アフォな会社に入ってしまって
プログラマーなのにノート渡されました。
浅いストロークのおかげでCtrlを酷使するEmacsで、
すっかり小指が痛くなった。
0613名無しさん@お腹いっぱい。NGNG
>>612
swap CapsLock <-> Ctrl
0614名無しさん@お腹いっぱい。NGNG
XEmacsとGNU/Emacsの違いを教えて。
0615614NGNG
あっ、因みに俺はnvi使いです。
0616名無しさん@お腹いっぱい。NGNG
機能上は、これから使う人にとっては、違いといえる違いはない。
歴史については、XEmacs の web page 参照。
今後については、GNU Emacs の方が機能的においついたというのと、
正統であるということで、多少有利かな?
0617614NGNG
>>616
なるほどね。まっ、Vi原理主義者の俺にとってはどっちを使ってもあまり大差が
ないというとこでしょうかね。

所で皆さんは、何でEmacsのような難しくてキーボード操作が滅茶苦茶難しいものを
使ってるの?

それからもう一つ、何でEmacsユーザはEmacsで何でも済まさないと気が済まないの?
テキストエディタはテキストエディタだよ。一つの仕事だけをきちんと済ましてくれれば良いジャン。

メール読んだり、ブラウザとして使ったりワープロやったり、、、etc、、、何なんだよ一体?!
別に煽ってるわけじゃなかけど、よくそんなもん使えるね。

メールはmutt
ブラウザはw3m(ムラムラッとしてきた時はmozilla)
コード書くときは、nvi
文書作成は、LaTeXで良いだろ!
0618名無しさん@お腹いっぱい。NGNG
> メールはmutt
> ブラウザはw3m(ムラムラッとしてきた時はmozilla)
> コード書くときは、nvi
> 文書作成は、LaTeXで良いだろ!
それって、まさか全部一台のPCでやるの?
0619名無しさん@お腹いっぱい。NGNG
>617 > テキストエディタはテキストエディタだよ。
そうですね。テキストエディタはテキストエディタですね。
emacsはテキストエディタではありませんが。
0620名無しさん@お腹いっぱい。NGNG
> メールはmutt
うん。で、書くのはnviね。
> ブラウザはw3m(ムラムラッとしてきた時はmozilla)
うん。で、テキストエリア書くのはnviね。
> コード書くときは、nvi
うん。
> 文書作成は、LaTeXで良いだろ!
うん。で、文書の入力はnviね。
0621名無しさん@お腹いっぱい。NGNG
>>617
> 何なんだよ一体

lisp 実行環境ですが何か?
0622名無しさん@お腹いっぱい。NGNG
emacs が lisp 循環評価器だというのは定説です。
0623名無しさん@お腹いっぱい。NGNG
>>617
> 何なんだよ一体

僕の友達です。

;; 元ねたきぼーん
0624名無しさん@お腹いっぱい。NGNG
>>617 帰れ帰れ!帰ってくれ! お願いだから二度と来ないでくれ!!!
0625名無しさん@EmacsNGNG
>616

XEmacs の新しいのって日本語まわり怪しくないのかしら?
おいらは、その関係で Emacs に乗り換えたですよ。


>617

一つの環境でなんでもできるってのは、やっぱ楽なんだよね。
エディットのためにテキストエディタを起動するってゆー作業が
うっとーしーとか、些細なレベルで。
あとは w3m の出力をそのままコピペ/エディットできたりとか。

作業モード切り替えの単位が根本的に違うんだろうなぁ。
vi な人と Emacs な人では。

# とはいえ Emacs は重すぎるし不安定だと思う。
# これって Emacs だから許せてるけど MS 製品だったらキレてると思うw
0626名無しさん@お腹いっぱい。NGNG
         (    )         (    )
          ):::::::(          )::::::::(
        /::::::::::::;\        /::::::::::::;\
       // |:::::::::::: l |       //´|:::::::::::: l |
       | | .|:::::::::::: | |       | | |::::::::::::::| |
        | | /::::::::::::/| |      // /::::::::::::/| |
        U |::::::::::/ U >617  U  |::::::::::/  | |
         |::::||:::|  | | ↓  | |  |::::||:::|  U
         |::::||::|   | /⌒彡/  |::::||::|
          | / | |   / 冫、)   | /.| |
         // | |   |  ` /   // | |
0627名無しさん@お腹いっぱい。NGNG
_i__
  |
  |          ∧_∧
  |        (;´Д`) ・・・
  |        ゝ ⊃⊃   ,、 _______
=i==============/ヽ、=" .il´釣れた!釣れた!)
⌒ヽ ---γ⌒ヽ---,i|XXxヽ、_ |'y' ̄ ̄ ̄ ̄ ̄ ̄
○ .l --- { ○ .l --ixXXXXX`i 。 バシャバシャ
〜〜〜〜〜〜〜゚` 〜〜〜〜 ´〜〜
0628名無しさん@お腹いっぱい。NGNG
>>625
># とはいえ Emacs は重すぎるし不安定だと思う。
># これって Emacs だから許せてるけど MS 製品だったらキレてると思うw
うちのセレ400のノートだとWin98で禿丸使うより
LinuxやFreeBSDでEmacs21使うほうが軽いです。
0629名無しさん@お腹いっぱい。NGNG
>>628
> ># とはいえ Emacs は重すぎるし不安定だと思う。
> うちのセレ400のノートだとWin98で禿丸使うより
> LinuxやFreeBSDでEmacs21使うほうが軽いです。

XEmacsの方も早いよ。
http://www.heimat.gr.jp/~nakaji/elips/20030507/thread.html
0630名無しさん@お腹いっぱい。NGNG
emacsで等差数列を連続生成したい時はどうすればいいの?
0631名無しさん@お腹いっぱい。NGNG
>>630
そういう関数書けば?
0632名無しさん@お腹いっぱい。NGNG
みてね〜♪
http://www1.free-city.net/home/s-rf9/page003.html
0633630NGNG
>>631
標準でないの?
0634630NGNG
人少ないんだね、この板。
0635_NGNG
http://homepage.mac.com/hiroyuki44/
0636630NGNG
関数ってをgoogleで調べたけどよくわからんのよね。
そのプログラム書いて欲しいな。
0637名無しさん@お腹いっぱい。NGNG
宿題か? 友達に聞けよ。
0638630NGNG
>>637
宿題じゃないけどさ。
知ってるなら教えて欲しいっす。
こういうのはプログラム出来る人には簡単なんでしょ?
書くと長くなる?
0639630NGNG
01
02
03
04
05
06
07
08
09
10
11
12



っていうのをやりたいっす。
0640名無しさん@お腹いっぱい。NGNG
>>639
キミは何歳なんだい?(w
0641名無しさん@お腹いっぱい。NGNG
(defun tousa-suretu (syoko kousa)
(let ((max (lsh -1 -1))
(ko syoko)
(ret nil))
(while (<= ko max)
(setq ret (cons ko ret)
ko (+ ko kousa)))
(nreverse ret)))
0642名無しさん@お腹いっぱい。NGNG
>>639

がんばって自分でやりましょう
Programming in Emacs Lisp
http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html

GNU Emacs Lisp Reference Manual
http://flex.ee.uec.ac.jp/texi/eljman/eljman_toc.html
http://shakosv.sk.tsukuba.ac.jp/jdoc/Editors/NEmacs/elisp-jman/html/

また、Lispについての話題はスレ違いなので下記に逝って下さい。
Emacs Lisp
http://pc2.2ch.net/test/read.cgi/tech/1004551074


0643名無しさん@お腹いっぱい。NGNG
>>641
ださいなあ。再帰を使えよ。
0644名無しさん@お腹いっぱい。NGNG
>>643
Elisp Manual 嫁
> * Use iteration rather than recursion whenever possible. Function
> calls are slow in Emacs Lisp even when a compiled function is
> calling another compiled function.
0645名無しさん@お腹いっぱい。NGNG
>>643

(setq max-lisp-eval-depth (lsh -1 -1))
(defun tousa-suretu (syoko kousa)
(if (<= syoko (lsh -1 -1))
(cons syoko (tousa-suretu (+ syoko kousa) kousa))
(list syoko)))
0646名無しさん@お腹いっぱい。NGNG
なかなかの教えて君だな。
ほんの数分回答がないだけで、「人少ないんだね」かよ。pupu
0647630NGNG
>>646
できねー。
やりかたわかんねー。
0648名無しさん@お腹いっぱい。NGNG
>>647
といって済ませられるうちは必要ないってこった
0649630NGNG
>>648
いじわるいわないでよ。
できれば、プログラムを好きな所で実行するたびに1,2,3、とかやりたい。
0650630NGNG
アトム粉砕機 (atom smasher)
0651名無しさん@お腹いっぱい。NGNG
>>649
> できれば、プログラムを好きな所で実行するたびに1,2,3、とかやりたい。

だからスレ違いだって
0652名無しさん@EmacsNGNG
(defun gen (init diff n)
(let ((acc nil))
(dotimes (i n (reverse acc))
(push (+ init (* i diff)) acc))))

(gen 1 1 10)
=> (1 2 3 4 5 6 7 8 9 10)
0653652NGNG
>>649 こんなのか?

(defstruct arithmetic-sequence
(init 1) (diff 1) (n 0))
(defvar *my-sequence* nil)
(defun my-init (init diff n)
(setf *my-sequence* (make-arithmetic-sequence :init init :diff diff :n n)))
(defun my-gen ()
(let ((init (arithmetic-sequence-init *my-sequence*))
(diff (arithmetic-sequence-diff *my-sequence*))
(n (arithmetic-sequence-n *my-sequence*)))
(incf (arithmetic-sequence-n *my-sequence*))
(+ init (* n diff))))
(defun my-insert ()
(format "%02d" (my-gen)))
------
(my-init 1 1 0)
=> [cl-struct-arithmetic-sequence 1 1 0]

(my-insert)
"01"

(my-insert)
"02"
0654名無しさん@お腹いっぱい。NGNG
(display-time) で出てくるロードアベレージと
メール通知って消せますか?それと時刻の
モードライン表示位置をバッファ名の左側に
したいのですが可能でしょうか?
0655名無しさん@お腹いっぱい。NGNG
自分で書式を
(setq display-time-string-forms '(24-hours ":" minutes))
とか設定すれば消せます.

バッファ名の左側に表示ってのは global-mode-string ではなく
mode-line-format をいじらねばならんのでめんどうな予感.
0656名無しさん@お腹いっぱい。NGNG
>>653
lexical-let 使うと変数不要なのでいいかも。
でもスレ違いでうざいので書き直さなくていいです。
0657名無しさん@お腹いっぱい。NGNG
スレ違いだったのか.正直,すまんかった.逝ってくる.
0658654NGNG
>>655
ありがとうございました
0659名無しさん@お腹いっぱい。NGNG
emacs 21.3.50 限定
C-x C-k C-f %02d RET M-1 <f3> <f3> RET <f4>
あとは <f4> 押しまくれ!! スレ違いスマソ
0660名無しさん@お腹いっぱい。NGNG
>>659
情報さんくす。
しかし C-x C-k は ignore にしてるのであった。
0661名無しさん@お腹いっぱい。NGNG
>>605
>>ファイルの途中に自分で <?php 〜 ?> を追加しても
>>追加した <?php 〜 ?> の部分だけは php-modeになりません。(yahtml-modeから変わらない)

これは無理.手動で,(M-x mmm-parse-region として,その範囲を認識させる
しかない.

他の方法として,insert を使う方法がある.

http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mmm-mode
が参考になる.

insert の設定サンプルは
http://mail.gnu.org/archive/html/help-gnu-emacs/2003-03/msg00123.html
など
0662あなたが探してるのってこれだよね?この中にあったよ♪NGNG
あなたが探してるのってこれだよね?この中にあったよ♪
http://angelers.free-city.net/index.html
0663名無しさん@お腹いっぱい。NGNG
xemacs で円記号をバックスラッシュで表示したいと思い、
jaspace.el を参考に下のようなコードを書いたんですが、
表示は出来るものの、その上でカーソルが表示できません。
何かうまい方法は無いものでしょうか。

(let ((table (specifier-instance current-display-table)))
(if (> (string-to-char "\\") (length table))
(setq table
(vconcat table
(make-vector
(1+ (- (char-to-int (string-to-char "\\")) (length table)))
nil))))
(aset table
(string-to-char "\\")
(vector
(let ((glyph (make-glyph (vector 'string :data "\\"))))
(set-glyph-face glyph 'japanese-yen-to-backslash-face)
glyph)))
(set-specifier current-display-table table))
0664名無しさん@お腹いっぱい。NGNG
途中で何度かセーブしてしまった後
(なのでrevert-bufferはできない)
一気に最初の状態までundoすることって
できますか?それか、ずっとundoを押し
続けてても最初の状態にくると一旦止まって
くれるような設定とか。
0665名無しさん@お腹いっぱい。NGNG
hoge~ というバックアップファイルは、
途中何度セーブしても、編集を開始した時の状態を保ってるよ。
それじゃ駄目なの?
0666名無しさん@お腹いっぱい。NGNG
cmigemo 使えてますか? うちは FreeBSD なんだけど動いてないんですが
0667名無しさん@お腹いっぱい。NGNG
>>665
664じゃないけどいい事知った。さんくす。
0668名無しさん@お腹いっぱい。NGNG
キー定義の方法で、

define-key と global-set-key

がありますが、両者の違いはなんですか?

どういう場面に使い分ければよいですか?
0669名無しさん@お腹いっぱい。NGNG
>>668
global-set-key を defun してるとこ読んでみ。
subr.el か keymap.el あたりにあるはず。

(global-set-key key command)

(define-key (current-global-map) key command)
とほぼ同じ。
0670名無しさん@お腹いっぱい。NGNG
(define-key (current-global-map) key command)

(define-key global-map key command)
はどう違うのだろう。
0671名無しさん@お腹いっぱい。NGNG
>>670
use-global-map() すると current-global-map() の方は変わるんじゃない?
0672名無しさん@お腹いっぱい。NGNG
>>671
なるほど。

| -- Function: use-global-map KEYMAP
| この関数は, キーマップKEYMAPを新たな現在のグローバルキーマップとす
| る. これは`nil'を返す.
|
| グローバルキーマップを変更することは, とうてい普通のことではない.

使ってる例を知りたいなぁ。
0673名無しさん@お腹いっぱい。NGNG
>>672
viperとかさ。
0674名無しさん@お腹いっぱい。NGNG
Emacsで文字入力中に間違えたとき、
間違えた部分を消そうとC-h(BSに設定してある)押すとヘルプみたいなのでてきちゃうんだけど
これを普通にBSみたいな挙動にはできませんか?
0675名無しさん@お腹いっぱい。NGNG
(load "term/bobcat")
0676名無しさん@お腹いっぱい。NGNG
>>674
(global-set-key "\C-h" 'backward-delete-char)
0677名無しさん@お腹いっぱい。NGNG
(keyboard-translate ?\^h 'backspace)とか、
(put 'backspace 'ascii-character 127)とか、
この辺り、方法乱立気味だね。
0678名無しさん@お腹いっぱい。NGNG
>>674
FAQ You〜!!
0679名無しさん@お腹いっぱい。NGNG
キーボードの話が出てるので便乗です。

611氏の言っていた
 >スペースのすぐ左 = ctrl
 >スペースのすぐ右 = meta
 >これ最強
上記のキーを実現するにはどうすればよいでしょうか?

当方、日本語106キーボードで
スペースの左は「無変換」、右は「変換」になってます。


■ このスレッドは過去ログ倉庫に格納されています