Emacs Part 54 (781レス)
Emacs Part 54 http://mevius.5ch.net/test/read.cgi/unix/1669946913/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
13: 名無しさん@お腹いっぱい。 [sage] 2022/12/08(木) 12:25:45.31 Meet the Text Editor used by Linus Torvalds https://terminalroot.com/meet-the-text-editor-used-by-linus-torvalds/ RubyのMatzさんがEmacsを愛用されてると聞いて嬉しくなりました。 https://jp.quora.com/Ruby%E3%81%AEMatz%E3%81%95%E3%82%93%E3%81%8CEmacs%E3%82%92%E6%84%9B%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%82%8B%E3%81%A8%E8%81%9E%E3%81%84%E3%81%A6%E5%AC%89%E3%81%97%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97 http://mevius.5ch.net/test/read.cgi/unix/1669946913/13
14: 名無しさん@お腹いっぱい。 [sage] 2022/12/08(木) 12:45:47.08 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 と表示されてインストールできない。 何か互換性の問題ってあったっけ? http://mevius.5ch.net/test/read.cgi/unix/1669946913/14
15: 名無しさん@お腹いっぱい。 [sage] 2022/12/08(木) 12:56:36.47 Version: 20221105.236 Summary: Major mode for Markdown-formatted text Requires: emacs-26.1 って出てるな。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/15
16: 名無しさん@お腹いっぱい。 [sage] 2022/12/08(木) 13:14:51.98 25って、なぜ25使うの http://mevius.5ch.net/test/read.cgi/unix/1669946913/16
17: 名無しさん@お腹いっぱい。 [sage] 2022/12/08(木) 14:25:10.58 いまだに Windows XP 使い続けてる老人と一緒でしょ http://mevius.5ch.net/test/read.cgi/unix/1669946913/17
18: 名無しさん@お腹いっぱい。 [sage] 2022/12/10(土) 23:11:44.74 次のように引数の必要な関数を関数名のシンボルの代わりに指定するときに、 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))))) # この例では実際にはこの設定は不要なんですが、 # いじっているうちに疑問が出てきたので一例として。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/18
19: 名無しさん@お腹いっぱい。 [] 2022/12/10(土) 23:33:02.45 うーん多分それ先頭の#'全く場違いなんじゃね? それシンボルの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))とかじゃね(´・ω・`) http://mevius.5ch.net/test/read.cgi/unix/1669946913/19
20: 18 [sage] 2022/12/11(日) 00:30:06.60 まだよく理解できていないので一部だけ補足しますが、 #'(lammda ...は(lambda ...でも一緒なのかと思ったんですが。 https://www.gnu.org/software/emacs/manual/html_node/elisp/Anonymous-Functions.html で、そもそもこんな風に書いたのは次のような書法を参考にしたんですが、 どうもここではまずいようです。 (add-hook 'text-mode-hook (lambda ... )) http://mevius.5ch.net/test/read.cgi/unix/1669946913/20
21: 名無しさん@お腹いっぱい。 [] 2022/12/11(日) 00:45:12.16 いまいち何が解決出来ないのか何が分からんのかが分からんな ただhookにlambdaぶち込みたいならfbody 先頭に (lambda () (interactive) (insert "hello hook fucker"))みたいにinteractive宣言が要るぞ lambdaのargumentが必要な場合はこのinteractiveのargumentに別途それらにアサインする関数というか糞stringというかlist返すexpression書くんだけどこまけえ事は説明めんどい(´・ω・`) http://mevius.5ch.net/test/read.cgi/unix/1669946913/21
22: 名無しさん@お腹いっぱい。 [sage] 2022/12/11(日) 01:01:15.31 (quote symbol)は評価されないとsymbolにならないように、(function (lambda () ...) も評価されないと関数にならない。 >>20 評価される文脈なら一緒だけどリストの中にある場合はそうも行かない。 lambdaはそのままで関数として機能する(funcallできる)からややこしいのかな。 symbolは評価すると変数の値になってしまうけどlambdaは、まあ、closureになったりはするものの関数のままだしクォートの必要性を感じづらいというか。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/22
23: 18 [sage] 2022/12/11(日) 01:24:43.39 >>19 >>22 何となく引っかかっていたところがちょっとわかりかけました。 lambda式が評価せずそのまま飲み込んで関数として定義されていないことが、 関数名のシンボルを要求する文脈ではエラーになると。 ではつまり関数として定義してしまうしかないということですかね? http://mevius.5ch.net/test/read.cgi/unix/1669946913/23
24: 名無しさん@お腹いっぱい。 [sage] 2022/12/11(日) 01:51:45.28 バッククォートを使えルーク http://mevius.5ch.net/test/read.cgi/unix/1669946913/24
25: 名無しさん@お腹いっぱい。 [sage] 2022/12/11(日) 09:13:24.81 >>23 文脈と書いたのは>>18の#'(の部分が評価されない文脈だから。なぜなら'(で囲まれてる中だからね。 #'(lambda () ...)は(function (lambda () ...)の略記だから(ここが分かってない?) '(の中ではそのまま一つ目の要素がシンボルfunctionで二つ目の要素が(lambda~のリストになってしまう。そしてそれはfuncall出来ない。例:(funcall '(function (lambda () 123))) 解決策は'(を使わずリストを組み立てることで、>>19や>>24が言うように(listやバッククォートでリストを組み立てること。シンボルだけで無く、(functionで囲まれていない)lambda(やそれを評価すると出来るclosure)も問題なく使える。 まあdefunして良いならそれでもOK。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/25
26: 18 [sage] 2022/12/11(日) 13:45:15.25 >>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))))) http://mevius.5ch.net/test/read.cgi/unix/1669946913/26
27: 名無しさん@お腹いっぱい。 [sage] 2022/12/11(日) 14:21:41.62 動いてはいない予感 http://mevius.5ch.net/test/read.cgi/unix/1669946913/27
28: 18 [sage] 2022/12/11(日) 14:47:07.12 そうみたいですね。評価したら結果が変でした。 デフォルトでdabbrev-expandが呼ばれる仕様なんだった。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/28
29: 18 [sage] 2022/12/11(日) 17:44:27.06 多分、こういうことだろうと思うんですが、 (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以下はちゃんと動きます。 (cond ((fboundp smart-tab-mode-specific-completion-function) (funcall smart-tab-mode-specific-completion-function)) http://mevius.5ch.net/test/read.cgi/unix/1669946913/29
30: 18 [sage] 2022/12/11(日) 17:51:47.16 むしろその場合はこうするだけでいいんですね。 (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 > うーん多分それ先頭の#'全く場違いなんじゃね? そもそも最初に指摘されていたこの点がまずかったと。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/30
31: 名無しさん@お腹いっぱい。 [sage] 2022/12/11(日) 20:36:14.56 評価されたら (lambda 〜) も #'(lambda 〜) も完全に等価だよね http://mevius.5ch.net/test/read.cgi/unix/1669946913/31
32: 名無しさん@お腹いっぱい。 [sage] 2022/12/16(金) 12:44:00.30 何かの拍子で特定のバッファ(やてふモード)を閉じれなくなりました * Message *を確認すると以下のメッセージが出ます bm-buffer-save: Wrong type argument: listp, \.\.\. 他のやてふモードのバッファは問題ありません とりあえず当該バッファを閉じたいと思い *scratch*で (remove-hook 'after-save-hook 'bm-buffer-save) したのですが何ともなりません 何か解決方法はないでしょうか? http://mevius.5ch.net/test/read.cgi/unix/1669946913/32
33: 名無しさん@お腹いっぱい。 [sage] 2022/12/16(金) 13:24:24.57 どこでどう評価するかでは clのlambdaは評価するとレキシカルクロージャに化けるマクロだけど、(coerce '(lambda ...) 'function)でキャストすればcoerceはfunctionのように特殊形式でないからローカル関数を補足できないはず el的にはどうだっけ? そもそもクォートされたラムダ式を単にフォームとして受け取り、自分で勝手に解釈するだって全然アリ http://mevius.5ch.net/test/read.cgi/unix/1669946913/33
34: 名無しさん@お腹いっぱい。 [sage] 2022/12/16(金) 14:39:55.64 >>32 kill-buffer-hook とかじゃなくていいの? http://mevius.5ch.net/test/read.cgi/unix/1669946913/34
35: 名無しさん@お腹いっぱい。 [sage] 2022/12/16(金) 16:15:13.66 >>34 ああ!そうですね! ボケボケでした (remove-hook 'kill-buffer-hook 'bm-buffer-save) で閉じれました http://mevius.5ch.net/test/read.cgi/unix/1669946913/35
36: 名無しさん@お腹いっぱい。 [sage] 2022/12/16(金) 16:18:47.86 ただ今度は当該ファイルをfind-fileすると 初回に以下のエラーメッセージが出ます bm-buffer-restore: Wrong type argument: number-or-marker-p, nil 連続で2回当該ファイルをfind-fileすると開くので問題はないのですが これはbmのキャッシュが不整合を起こしているということでしょうかね? http://mevius.5ch.net/test/read.cgi/unix/1669946913/36
37: 名無しさん@お腹いっぱい。 [sage] 2022/12/17(土) 14:40:56.90 前スレでDebianのunstableでEmacsパッケージのnative compilationが有効化されたって話があったけど その後色々問題があったものの解決されて有効化されたバージョンがTestingにやってきた模様 というわけでこのまま行けば来年出るであろうDebianの次の安定版ではEmacsパッケージは デフォルトでnative compilationが有効化されたものになるわけだ http://mevius.5ch.net/test/read.cgi/unix/1669946913/37
38: 名無しさん@お腹いっぱい。 [sage] 2022/12/17(土) 16:08:32.48 キャッシュのsaveにprincを使っていて print-lengthより長いリストが...になっているかもしれない (let ((aaa (list '(a) '(a) '(a))) (print-length 2)) (princ aaa)) ; => ((a) (a) ...) http://mevius.5ch.net/test/read.cgi/unix/1669946913/38
39: 名無しさん@お腹いっぱい。 [sage] 2022/12/19(月) 11:10:13.66 native compilationを有効にすると、 確かにごく偶に何も言わずに落ちることがあるから、 まったく問題がないわけでもないのかな。 まあ、最後に落ちたのも一月以上前だったりするけど。 http://mevius.5ch.net/test/read.cgi/unix/1669946913/39
40: 名無しさん@お腹いっぱい。 [sage] 2022/12/26(月) 12:16:18.67 companyと*Completions*バッファについて教えてください。 (use-package company)としてcompanyを使うようにすると、補完がcompany経由で行われる?と聞いたのですが、 例えば、 M-x shell ls ./[TAB] とすると、*Completions*バッファ内にカレントディレクトリのファイルが表示されます。 これはcompanyモードが効いてないのでしょうか?それともcompanyが補完するのは、こういう類の補完ではそもそもないのでしょうか? http://mevius.5ch.net/test/read.cgi/unix/1669946913/40
41: 名無しさん@お腹いっぱい。 [sage] 2022/12/28(水) 01:12:16.78 バッファでcompany-modeが有効になってないかキーバインドが定義されてないとか。 M-x company-completeするとどうなりますか? http://mevius.5ch.net/test/read.cgi/unix/1669946913/41
42: 名無しさん@お腹いっぱい。 [sage] 2022/12/28(水) 02:41:43.21 >>41 返信ありがとうございます。 shellのバッファで「M-x company-complete」するとカーソル位置で補完候補が現れました。 同じバッファでM-x describe-modeをすると、一覧にCompanyとGlobal-Companyが出てきています。 これは、単にキーバインドが定義されてないってことでしょうか? http://mevius.5ch.net/test/read.cgi/unix/1669946913/42
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 739 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s