Emacs Part 54 (849レス)
上下前次1-新
12: 2022/12/08(木)10:57 AAS
 >>10 
 どちらもクレカの番号を抜けないのでおすすめできません。 
13: 2022/12/08(木)12:25 AAS
 Meet the Text Editor used by Linus Torvalds 
 外部リンク:terminalroot.com 
  
 RubyのMatzさんがEmacsを愛用されてると聞いて嬉しくなりました。 
 外部リンク:jp.quora.com 
14: 2022/12/08(木)12:45 AAS
 WSL の emacs(GNU Emacs 25.2.2 (x86_64-pc-linux-gnu) of 2017-09-23, modified by Debian)に 
 markdown-mode 入れようとしてるんだが、packagelist 上では 
  
  markdown-mode      20221105.236  incompat   melpa      Major mode for Markdown-formatted text 
  
 と表示されてインストールできない。 
 何か互換性の問題ってあったっけ? 
15: 2022/12/08(木)12:56 AAS
 Version: 20221105.236 
 Summary: Major mode for Markdown-formatted text 
 Requires: emacs-26.1 
  
 って出てるな。 
16: 2022/12/08(木)13:14 AAS
 25って、なぜ25使うの 
17: 2022/12/08(木)14:25 AAS
 いまだに Windows XP 使い続けてる老人と一緒でしょ 
18(7): 2022/12/10(土)23:11 AAS
 次のように引数の必要な関数を関数名のシンボルの代わりに指定するときに、 
 lambda式で書くとエラーになる場合はどうするのがいいんでしょうか? 
  
 Wrong type argument: symbolp, #'(lambda nil (dabbrev-expand nil)) 
  
 (setq smart-tab-completion-functions-alist 
       '((emacs-lisp-mode . lisp-complete-symbol) 
         (lisp-interaction-mode . lisp-complete-symbol) 
         (text-mode . #'(lambda () (dabbrev-expand nil))))) 
  
 # この例では実際にはこの設定は不要なんですが、 
 # いじっているうちに疑問が出てきたので一例として。 
19(3): 2022/12/10(土)23:33 AAS
 うーん多分それ先頭の#'全く場違いなんじゃね? 
 それシンボルのfunctionPartにアクセスするfunctionというかaliasというかsyntax sugarというべきかのものだしquoteされてたらそもそもなんも意味をなさん 
 quote内部のpartial evalみたいのは先頭をbackquoteにして`(sym1 sym2 ,evaled)みたいに先頭にcommaを付記する 
 defmacroとかのときによく使う手法だな。まぁ、俺はlispyじゃないと思うからあんま好きじゃないけど 
  
 単純に(list (cons 'someone 'something) (cons 'anyone (lambda (x) (some-over x))))みたいに書くか 
 `((someone . something) (anyone . ,(lambda (x) (some-over x))とかじゃね(´・ω・`) 
20(1): 18 2022/12/11(日)00:30 AAS
 まだよく理解できていないので一部だけ補足しますが、 
 #'(lammda ...は(lambda ...でも一緒なのかと思ったんですが。 
  
 外部リンク[html]:www.gnu.org 
  
 で、そもそもこんな風に書いたのは次のような書法を参考にしたんですが、 
 どうもここではまずいようです。 
  
 (add-hook 'text-mode-hook 
           (lambda ...       )) 
21: 2022/12/11(日)00:45 AAS
 いまいち何が解決出来ないのか何が分からんのかが分からんな 
  
 ただhookにlambdaぶち込みたいならfbody 先頭に 
 (lambda () (interactive) (insert "hello hook fucker"))みたいにinteractive宣言が要るぞ 
 lambdaのargumentが必要な場合はこのinteractiveのargumentに別途それらにアサインする関数というか糞stringというかlist返すexpression書くんだけどこまけえ事は説明めんどい(´・ω・`) 
22(1): 2022/12/11(日)01:01 AAS
 (quote symbol)は評価されないとsymbolにならないように、(function (lambda () ...) も評価されないと関数にならない。 
 >>20 
 評価される文脈なら一緒だけどリストの中にある場合はそうも行かない。 
 lambdaはそのままで関数として機能する(funcallできる)からややこしいのかな。 
 symbolは評価すると変数の値になってしまうけどlambdaは、まあ、closureになったりはするものの関数のままだしクォートの必要性を感じづらいというか。 
23(1): 18 2022/12/11(日)01:24 AAS
 >>19 
 >>22 
 何となく引っかかっていたところがちょっとわかりかけました。 
 lambda式が評価せずそのまま飲み込んで関数として定義されていないことが、 
 関数名のシンボルを要求する文脈ではエラーになると。 
  
 ではつまり関数として定義してしまうしかないということですかね? 
24(1): 2022/12/11(日)01:51 AAS
 バッククォートを使えルーク 
25(1): 2022/12/11(日)09:13 AAS
 >>23 
 文脈と書いたのは>>18の#'(の部分が評価されない文脈だから。なぜなら'(で囲まれてる中だからね。 
 #'(lambda () ...)は(function (lambda () ...)の略記だから(ここが分かってない?) '(の中ではそのまま一つ目の要素がシンボルfunctionで二つ目の要素が(lambda~のリストになってしまう。そしてそれはfuncall出来ない。例:(funcall '(function (lambda () 123))) 
  
 解決策は'(を使わずリストを組み立てることで、>>19や>>24が言うように(listやバッククォートでリストを組み立てること。シンボルだけで無く、(functionで囲まれていない)lambda(やそれを評価すると出来るclosure)も問題なく使える。 
 まあdefunして良いならそれでもOK。 
26: 18 2022/12/11(日)13:45 AAS
 >>25 
 中途半端にあれこれ聞いてお手間を取らせました。 
 まだろくにわかってないんですが、 
 疑問は疑問としてとりあえずこうすると動きます。 
 consだといいの?何だか不思議だなあ。 
  
 (setq smart-tab-completion-functions-alist 
       '((emacs-lisp-mode . lisp-complete-symbol) 
         (lisp-interaction-mode . lisp-complete-symbol) 
         (cons 'text-mode (lambda () (dabbrev-expand nil))))) 
27(1): 2022/12/11(日)14:21 AAS
 動いてはいない予感 
28(1): 18 2022/12/11(日)14:47 AAS
 そうみたいですね。評価したら結果が変でした。 
 デフォルトでdabbrev-expandが呼ばれる仕様なんだった。 
29: 18 2022/12/11(日)17:44 AAS
 多分、こういうことだろうと思うんですが、 
  
 (setq smart-tab-completion-functions-alist 
       `((emacs-lisp-mode . lisp-complete-symbol) 
         (lisp-interaction-mode . lisp-complete-symbol) 
         (text-mode . ,(lambda () (dabbrev-expand nil))) 
         )) 
  
 今回の場合は条件がfboundpでチェックされるので同じエラーになりますが、 
  
 cond: Wrong type argument: symbolp, (lambda nil (dabbrev-expand nil)) 
  
 これがなければfuncall以下はちゃんと動きます。
省3
30: 18 2022/12/11(日)17:51 AAS
 むしろその場合はこうするだけでいいんですね。 
  
 (setq smart-tab-completion-functions-alist 
       '((emacs-lisp-mode . lisp-complete-symbol) 
         (lisp-interaction-mode . lisp-complete-symbol) 
         (text-mode . (lambda () (dabbrev-expand nil))))) 
  
 >>19 
 > うーん多分それ先頭の#'全く場違いなんじゃね? 
  
 そもそも最初に指摘されていたこの点がまずかったと。 
31: 2022/12/11(日)20:36 AAS
 評価されたら (lambda 〜) も #'(lambda 〜) も完全に等価だよね 
32(1): 2022/12/16(金)12:44 AAS
 何かの拍子で特定のバッファ(やてふモード)を閉じれなくなりました 
 * Message *を確認すると以下のメッセージが出ます 
 bm-buffer-save: Wrong type argument: listp, \.\.\. 
 他のやてふモードのバッファは問題ありません 
 とりあえず当該バッファを閉じたいと思い 
 *scratch*で 
 (remove-hook 'after-save-hook 'bm-buffer-save) 
 したのですが何ともなりません 
 何か解決方法はないでしょうか? 
33: 2022/12/16(金)13:24 AAS
 どこでどう評価するかでは 
 clのlambdaは評価するとレキシカルクロージャに化けるマクロだけど、(coerce '(lambda ...) 'function)でキャストすればcoerceはfunctionのように特殊形式でないからローカル関数を補足できないはず 
 el的にはどうだっけ? 
 そもそもクォートされたラムダ式を単にフォームとして受け取り、自分で勝手に解釈するだって全然アリ 
34(1): 2022/12/16(金)14:39 AAS
 >>32 
 kill-buffer-hook とかじゃなくていいの? 
35: 2022/12/16(金)16:15 AAS
 >>34 
 ああ!そうですね! ボケボケでした 
 (remove-hook 'kill-buffer-hook 'bm-buffer-save) 
 で閉じれました 
36: 2022/12/16(金)16:18 AAS
 ただ今度は当該ファイルをfind-fileすると 
 初回に以下のエラーメッセージが出ます 
 bm-buffer-restore: Wrong type argument: number-or-marker-p, nil 
 連続で2回当該ファイルをfind-fileすると開くので問題はないのですが 
 これはbmのキャッシュが不整合を起こしているということでしょうかね? 
37: 2022/12/17(土)14:40 AAS
 前スレでDebianのunstableでEmacsパッケージのnative compilationが有効化されたって話があったけど 
 その後色々問題があったものの解決されて有効化されたバージョンがTestingにやってきた模様 
 というわけでこのまま行けば来年出るであろうDebianの次の安定版ではEmacsパッケージは 
 デフォルトでnative compilationが有効化されたものになるわけだ 
38: 2022/12/17(土)16:08 AAS
 キャッシュのsaveにprincを使っていて print-lengthより長いリストが...になっているかもしれない 
 (let ((aaa (list '(a) '(a) '(a))) (print-length 2)) (princ aaa)) ; => ((a) (a) ...) 
39: 2022/12/19(月)11:10 AAS
 native compilationを有効にすると、 
 確かにごく偶に何も言わずに落ちることがあるから、 
 まったく問題がないわけでもないのかな。 
 まあ、最後に落ちたのも一月以上前だったりするけど。 
40(4): 2022/12/26(月)12:16 AAS
 companyと*Completions*バッファについて教えてください。 
 (use-package company)としてcompanyを使うようにすると、補完がcompany経由で行われる?と聞いたのですが、 
 例えば、 
 M-x shell 
 ls ./[TAB] 
 とすると、*Completions*バッファ内にカレントディレクトリのファイルが表示されます。 
 これはcompanyモードが効いてないのでしょうか?それともcompanyが補完するのは、こういう類の補完ではそもそもないのでしょうか? 
41(1): 2022/12/28(水)01:12 AAS
 バッファでcompany-modeが有効になってないかキーバインドが定義されてないとか。 
 M-x company-completeするとどうなりますか? 
上下前次1-新書関写板覧索設栞歴
あと 808 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s