元スレEmacs Part 39
emacs覧 / PC版 /みんなの評価 :
352 = :
バカだとかアホだとかおよそ書籍に似つかわしくない単語が並んでた。
353 = :
>>352
?どういうこと?
354 = :
キチボンにそういう単語が並んでるってこと?
355 = :
そう。cl に関する記述の部分だったかな。
おれはこのことに怒っているぞみたいなこと書いてあった。
356 = :
ああいう表現って編集の人に止められないもんなのかね。
触らぬキに祟りなしとかで何も言わないのか。
358 = :
ただ、dolist みたいな便利マクロが標準で用意されててもいいだろとは思ったわ。
どうせみんな書くんだろうし。
359 = :
>>348
リクエストメソッドをPOSTに出来るだけでしょ。
マルチパートの送信も出来ないのにPOST出来るとはとてもとても。
360 = :
>>356
clマクロを取りまく現状について
「こうしたねじれた事態は馬鹿げている」と強い口調で書いてはある
けれどバカと馬鹿げているではニュアンスがまるで違うからキとか言うのはよくない
361 = :
キについては自称だからなぁ。
362 = :
cl 使うなっていうなら標準で添付するなよなとは思うわ。
意味わからん。
363 = :
>>358
dolist, dotimes は subr.el に標準で用意されている。
正直 cl とマージすればいいと思うんだけど、何かポリシー
があるんだろうな。
364 = :
自前の使い捨てスクリプト書くときは便利だし。
パッケージとして作るものに (require 'cl) するなって意味だったような。
365 = :
> バカと馬鹿げているではニュアンスがまるで違う
単語だけ切り出したらそう思うかもしれないけど、
全体の文脈からしてかなり烈しい内容だったと思うけどな。
この辺が幼稚な印象を強くしちゃうんだよ。rbktせんせ。
366 = :
なんで subr に入れないんだろうね。
find-if とかの cl-seq の中身便利なのに。
367 = :
文字数をモード列に表示することはできるのでしょうか
368 = :
>>364
すみません、私はcl.el大好きなんですが、
eval-when-compileで囲んでもやはり使うべきではない、
というのが現在の一般的な意見、ということになっているのでしょうか?
>>366
RMSがキーワード引数が好きではないから、という説を
どこかで聞いた気がします。
369 = :
FMV-BIBLO LOOX(6インチモニタのノート)でemacs常用している猛者はいないか?
買うかどうか悩んでるんだ。ソースコード編集してC-c C-cで部分実行するだけならこの画面で十分な気がするんだけどどうだろ
371 = :
Richard Stallmanは以下のように書いているのですが、
The rule against using CL functions at run time is for the sake of the
user. The CL functions are not a standard part of the Emacs Lisp
namespace. Thus, loading CL can conflict with the user's function
definitions.
subr.elでdefunされているremoveと、
cl-seq.elでdefunされているremove-ifとでは、
「can conflict with the user's function definitions」という点で
どのような違いがあるのでしょうか。
372 = :
皆でガンガンclの関数使って形骸化させようぜみたいなのにならなかったのだろうか
373 = :
clの実装は小汚いからな。
喜んで使うのは三流グラマだけ。
375 = :
下手に準拠唄うとアレがダメだこれがダメだと重箱の角ツツク
ゴミッカスが喜び勢い付くだけだからね~
376 = :
anythingに関しても今のところはつっこまれてないだけで、これからつっこま
れる可能性は高いよね。ところでanythingの標準添付の作業ってどこでされて
るんだ?trunk見ても見当たらないんだけど。
377 = :
きちさんの脳内じゃない?
cedet もそうだけどあえて一緒にしない方がいいパッケージってあるよな
378 = :
アレが添付されると臭くなりそうだな。
379 = :
emacs本体の一部として配布されるEmacs Lispコードの中でremove-ifを使いたいという要求があったとして、
仮にremove-ifがcl-remove-ifという名前でcl-seq.elでdefunされていたとすると、
-> ぶつかったらユーザの責任、なので
-> -> emacs本体の一部として配布されるEmacs Lispコードでeval-when-compileで囲まずに(require 'cl)してOK
と言えるんでしょうか?
あるいは、remove-ifがマクロなら(eval-when-compile (require 'cl))して標準配布物内で使ってOK、だとして、
remove-ifをマクロとして再実装するのはすごくたいへんなんでしょうか?
380 = :
そういや remove-if の実装どうなってんだろと思ってみにいったら
関数に cl-* の接頭辞が付きまくってて目眩がした
ネームスペースの仕組みあればねえ。
381 = :
c--がよくわかりません
describe-keyで調べたらこう出ました
(negative-argument ARG)
Begin a negative numeric argument for the next command.
C-u following digits or minus sign ends the argument.
具体的にはどういうことなのでしょうか
使い道を知りたいです
382 = :
>>381
C-- 数字 コマンド でそのコマンドに -数字 の引数を与えられるってこと。
C-- 3 C-p とかやると 三行「下に」移動する。
383 = :
>>382
なるほど、C-uの繰り返しがデフォルトで4となっていましたが、
それの基本的な機能なのですね
わかりました
385 = :
>>293
え、POSTできるけど……
386 = :
フォントを設定するとき、ある family に属するフォントが無い場合、別の family を使う、というのを実現するのに
以下のような関数を作ったのですが、もっと妥当なやり方があれば教えていただけると助かります。
(require 'cl)
(defun safe-font (&rest family-list)
"有効なフォントファミリを返す。"
(find-if (lambda (f) (find-font (font-spec :family f))) family-list))
(set-face-attribute 'default nil
:font (safe-font "あずきフォントL" "MeiryoKe_Console" "MS Gothic" "mono"))
387 = :
389 = :
>>388
flet の代わりに labels を使う。
ダイナミックスコープとレキシカルスコープを調べるべし。
391 = :
>>389
ありがとうございます。macrolet だとマクロとしてその場に展開、
labels だと文脈依存の関数としてちゃんと関数として定義されるってことですね。
レキシカルとダイナミックを見てて思ったんですが、
純粋なローカル変数を使いたい場合は let より lexical-let を使うべきな気がするんですけど
(内部の関数で参照しているシンボルを不用意に束縛しないため)
そういう認識であっていますか?
392 = :
いや。クロージャとして持ち出したい場合以外は普通のletの方がいい。
なぜならEmacsには基本的にそっちしかないから。
レキシカルスコープは擬似的なものなんだよ。
基本的にはgensymで作った「変な名前の内緒のグローバル変数」に
値や式を持っておいてそれをsymbol-valueで取り出す。
labelsにせよ、lexical-letにせよ、適当な式をmacroexpand-allすればわかる。
393 = :
>>392
なるほど。そうすると let で使うシンボル名は
せめて既に使われているようなのを不用意に使わないよう気をつけるしかないですか。
394 = :
次のようなテキストファイルがあります
Test1243
(@import "./foo/foo.txt")
(@import "/usr/mytext.txt")
Pipipi
テキスト中に(@import path)と書いてある時はPathのファイルを埋め込んで別のテキストファイルとして出力したいです
Elispの正規表現でpathの文字列を取り出すのは分かるのですが
ファイルを読み込んだ上でファイルを作るのが良くわかりません
よろしくお願いします
395 = :
こんな感じのこと?
;; 文字コードてきとー
(defun hoge-func ()
(let ((in (read-file-name "入力ファイル: "))
(out (read-file-name "出力先ファイル: ")))
(with-temp-buffer
(insert-file-contents in)
(goto-char (point-min))
;; 正規表現てきとー
(while (re-search-forward "(@import \"\\([^\"]+\\)\")" nil t)
(let* ((fn (match-string 1))
(contents (save-match-data
(with-temp-buffer
(insert-file-contents fn)
(buffer-string)))))
(replace-match contents nil nil nil 0)))
(write-region (point-min) (point-max) out))))
396 = :
emacsのtext-modeで、タブを押したときにインデントを、
前の行には関係なく、一定量に設定するにはどうすればよいでしょうか?
(1)ではなく(2)となるようにしたいのですが。
(1)前の行を参照するタブ
123456789 abc
←スペースの後の位置に移動
(2)タブの移動量を8に
123456789 abc//
←ここに移動
397 = :
よーわからんけど C-q C-i でタブ文字強制入力じゃだめ?
399 = :
もっとまともな方法があるとは思うけど↓でtext-modeのTABは強制的に\tになる。
(add-hook 'text-mode-hook
(lambda ()
(setq indent-line-function (lambda () (insert " ")))
))
みんなの評価 :
類似してるかもしれないスレッド
- Emacs Part 34 (1001) - [92%] - 2010/6/21 19:45 ○
- Emacs Part 35 (1001) - [92%] - 2010/9/19 17:01
- Emacs Part 36 (1001) - [92%] - 2011/3/1 5:02
- Emacs Part 37 (1001) - [92%] - 2011/6/20 19:47
- Emacs Part 38 (1001) - [92%] - 2011/11/29 0:01
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 33 (1001) - [92%] - 2010/3/9 20:01 ○
- Emacs Part 32 (1001) - [92%] - 2009/12/20 2:04 ○
- Emacs Part 31 (1001) - [92%] - 2009/10/23 10:31 ○
- Emacs Part 40 (1001) - [84%] - 2012/9/7 0:30
- Emacs Part 53 (989) - [84%] - 2022/12/5 12:45
- Emacs Part 41 (1001) - [84%] - 2012/12/24 4:15
- Emacs Part 54 (97) - [84%] - 2023/1/25 17:15
- Emacs Part 42 (1001) - [84%] - 2013/6/9 5:15 △
トップメニューへ / →のくす牧場書庫について