【叩かれて】Emacs Lisp道場【強くなれ】
emacs覧 / PC版 /みんなの評価 : ○
701 = :
>700
よっぽど悔しかったんだね
702 = :
>>701
おまいも大人げないよ
スレが荒れるからヤメれ
703 = :
>>696
appendいらなかったな。
>>701
>>700は俺じゃないぞ。
704 = :
Perlのjoinにあたる関数ってないですか。今はこうしてます。
(defun join-string (s seq)
(reduce '(lambda (x y) (concat x s y)) seq))
706 = :
例えば
emacs yarou
hello emacs kun to lisp yarou
のようなラインがバッファ内にあったと仮定して、 M-x foo を実行すると
Line containing:
というプロンプトがミニバッファにでて、
emac li <RET>
と打ちこむと、 "emac" と "li" のサブストリングを含むライン (この場合は 2行目)
を occur などでマッチする関数 foo がほしいのですが。。。作って。。。
707 = :
正規表現でいいじゃん
708 = :
正規表現でいいだろう
709 = :
正規表現でいいような気がする
710 = :
正規表現でいいと思われ。
711 = :
正規表現じゃ大変だ
712 = :
正規表現ってのはどうだ
713 = :
もういいから。
714 = :
もういいよ。
715 = :
もういいな。
716 = :
(defun foo(str)
"HG"
(interactive "sLine containing:")
(if (not (string= str "emacs li"))
(message "not found!")
(if (not (re-search-forward "emac.*li" nil t))
(message "not found!!")
(message "found!")
)))
720 = :
>>719
できました。便利な属性(?)があるんですね。
721 = :
どんなタイミングでevalされるの?
722 = :
Vim の dircolors.vim みたいな ~/.dir_colors 編集用メジャーモードを作ったので晒してみます。
begin-base64 644 dircolors-mode.el.gz
H4sICJBGp0MAA2RpcmNvbG9ycy1tb2RlLmVsAK1Y0W7bNhR9z1cQ6oPlDfLk
8DoG4qBBazuNUccqHD/sQUChWHSmWZYySU4aYOi/DFCH/cMG7HFFCwzYZwx7
2/YBIyXbSUhfUwbmIBAl3nPu5Tk0KbPT6RA/SKZxGCeptYh91mAhsciF922c
EHFPZrzB/CALomvy/qsGj35bhh8cmD6bTZdpFi8kEuubOJ6TKAgPCDE2XSWf
6GoYvOM4u79hpCbuxd11Ei9vSM33Mq9eUs+8KZOJ74LQn3qJb4lODquZZkbM
Y14kEwSRT4xnZ/xj20a9Xhcl1AuuWy/ZScUT7+jdUZBtPy3lSdatgKZU+1Uc
+iTT40DC8cGyJAwiVgXc2rfKtpQtiG5ZkjLrNvBZXCEjtXdZBLb4M/QssliS
0bYtG72V5XAXi22r02UrC9130m1lkW2UahHVVGBp6XSpxHKk06USizxVFF2q
sIA8X6686fyJLlXUBeXL9Zil6nwBeb5ItVRzGmSnpVr+D5aq8wXk+aLoUolF
ni+KLpVY5Pmi6CKzbFm8V8uusmyvnuO4JoJranCA4ECDayG4lgbXRnDt3TiK
6EI1ulBEF6rRZbW0qrhDDY4iOKrBIT5QjQ8U8YFqfFgtkSruSIND/KMa/wDx
DzT+AeIfaPwDxD/Q+AeIf6DxDxD/QOMfIP6Bxj9A/AONf4D4B2v/MGB6H2Xe
O8sLgzQrlzjj7XuDNIhxZ9SJefpMNE+KphuJ9nO+1m15TX7M0zDwfLM4yqww
ns6tObu/ixM/XWV13RPXNSf98YXrft91hs6YX/uDV+eTl4MJbzpvJgNndOm6
ddd9LgpUmFYjJfyzphs544sXQ44+Gwz7/NIbCNbhYPRaMI7fnL8Y8cbF4PJy
MHpVhJ05/HLpdEVAzymKeDkUN93zoqCv+939Shj2zyZdpyeyj8VoVu3+qFe2
qnJ94bqNU9e9+3IVv/v9f41q7I04se3t8Zut6iGyiUQ2lUhAIkGJbCGRLSWy
jUS25UiKjIgqI6LIiKgyInqIRB4qkRSJpEokohJVVKKISlRRiR4hkUdKJKIn
VfQERE9Q9ARET1D0BERPUPQERE9Q9ARET1D0BERPUPQERE9Q9AREz/WSvG0V
VVfHXWvpwrtBDi04mndusMtIgvJf1AJV5dhEHH2YQZSxxJtmwa3YSviDeRCG
fLEPRbFeaPHiAu8qZKmgNZf8d3f5XFSoFl1SLLw5k+Ck9iAAL9tbhlnJmLLs
O6L2FWKLT6dDJk7POSb5p/yf/LcnuxHJP3/649d/879//pj/mH/88NOHP3/4
Jf/MI//Kfz99RFEztXuVkLv437GLkit2HUQRF9KKZ5Y48KjXN1n2yVFpK96a
bSNZkSLyFowYvXVe40HRhfC/nBDSi0MRkyyj4mQsJbWMvcsejspECvMmicXh
ior8Dy4122KlEwAA
====
723 = :
それで、いくつか作ってて疑問な点があったので聞いてみたいのですが
* 123行目で SYNTAX-ALIST 引数に dircolors-mode-syntax-alist を使うと
(直前でコメントアウトしてあるコードのことです)
font-lock が発動した際に型が違うと言われてしまうのですが、これは何故なんでしょうか?
* defface で face を定義した後、同名の変数を defvar する操作は必須ですか?
自分の環境では省略しても問題ないように見えるんですが、ネットで見掛けるコードでは
何故かわざわざ defface, defvar を並べて書いてるのでちょっと不安です。
必要なのであれば、その理由も教えて頂けるとうれしいです。
というかもしかして face と普通の変数ってスコープが違ったりしますか?
725 = :
deffaceはfaceの定義、defvarは変数の定義
たとえば dired.elの
(defface dired-header '((t (:inherit font-lock-type-face))))
(defvar dired-header-face 'dired-header)
dired-headerという名前で定義したfaceを用意しておいて、
dired-header-faceに代入しておく。
実際にfaceを決定するところではdired-header-faceを使用する。
elispコード内でdired-headerを直接指定していたら、
もしもあとでdired-header-faceを変えたくなったときに、
dired-headerを上書きするかコードを書き変えないといけないけど、
変数を経由するようにしておけば、別のfaceを定義してその変数に代入してあげればいい。
そういう意味で、paren.elなんかはfaceを直接overlayしているので、
faceの色や字体を変えたいときは、set-face-x系を使って
faceの設定を上書きしてあげないといけないね。
726 = :
> そういう意味で、paren.elなんかはfaceを直接overlayしているので、
> faceの色や字体を変えたいときは、set-face-x系を使って
> faceの設定を上書きしてあげないといけないね。
それで何か不都合あんの?
727 = :
ほとんどの人は上書きしてしまって不都合ないと思いますよ。
起動後にfaceを変えるってあまりないですよね。
でもまぁ、setqでちょこちょこ変えたい人には箱があったほうがいいですし、
それくらいのレベルだと思います。
728 = :
はじめまして。Emacs LISPの勉強をしている高校生です(はじめたばかりです。すみません)。
カレントバッファに対して文字列の検索や置換をする関数は見つけられたのですが、
文字列そのものを引数にとるような同様の関数はありますでしょうか。
具体的には、ある入力文字列から、決められた文字を取り除きたいのです。
729 = :
M-x apropos
その程度で質問してるようじゃ先が思いやられるよ
730 = :
なんでそんなに見下した態度取るんだ?
高校生か、がんばれよーでいいじゃん。
731 = :
replace-regexp-in-string とかでええのか?
または string-match して substring してみたり適当に
734 = :
>731
replace-regexp-in-string、これです!ありがとうございました。
>729
今後はしばらく"M-x apropos"で調べていけそうです。Emacs LISPのこういうインタラクティブな感じがとっても好きです。
しょーもない質問をしてすみませんでした。そしてありがとうございました。
その他の方々もありがとうございました!
735 = :
time-stamp.elを使ってるとundoの時に不満ない?
timestamp部分はundoできなくなるけど、こんな事してみた。
(defadvice time-stamp-once (around cannot-be-undone activate)
(let ((buffer-undo-list t))
ad-do-it))
後から気付いたんだけど、redo.elを入れてたのをすっかり忘れてた。
ちゃんと使っていればそのような不満はあまり感じなかったかもしれない。
737 = :
http://homepage3.nifty.com/oatu/emacs/misc.html
これかな?
738 = :
>>734
まあマジレスすると mode-info 入れとけ。
http://www.namazu.org/~tsuchiya/elisp/mode-info.html
739 = :
行の中で最初の「空白/タブではない文字」にカーソルを移動したいんですが、どうすればいいですか?
740 = :
>>739
see back-to-indentation
741 = :
>>740
ありがとう。助かりました。
742 = :
>>738
734じゃないけど、mode-info は最新の CVS の Emacs だとコンパイルできない
ようです。過去にこのスレでパッチが出ていたんだけど、もう古くなっていま
した。。。最新のパッチがあれば投下して頂けないでしょうか?
743 = :
url.el の使い方が分からない…。
(let ((url (url-generic-parse-url "http://www.example.org/")))
(url-retrieve url (lambda ()
(url-store-in-cache (current-buffer)))))
744 = :
途中送信してしまった…。
これでキャッシュの保存をしてくれるかと思ったけどしてくれなかった。
どうすればいいんだ???
745 = :
http://d.hatena.ne.jp/teny/20060204#p1
こういうのを見ると、emacs lispも技術の途切れて
壊滅的状態にあると思わざるを得ない。
746 = :
>>745
おまえの日本語も技術の途切れて壊滅状態だな。
747 = :
>>745
その題目って、何度も再発明されてるな。
748 = :
単に再発明した人がいるというだけなのにその帰結かよ。
749 = :
っていうか、バグバグじゃん。ちゃんとテストしてないな。
750 = :
まぁblogはある意味ここよりもゴミが多かったりするし。
みんなの評価 : ○
類似してるかもしれないスレッド
- 【熱く】お前のEmacsにはまった理由【語れ】 (577) - [36%] - 2021/8/28 17:30 ○
- 「Emacsは消滅すべき」、ゴスリング氏 (127) - [17%] - 2023/1/12 15:45
トップメニューへ / →のくす牧場書庫について