Emacs Part 54 (849レス)
上下前次1-新
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するとどうなりますか? 
42(1): 2022/12/28(水)02:41 AAS
 >>41 
 返信ありがとうございます。 
 shellのバッファで「M-x company-complete」するとカーソル位置で補完候補が現れました。 
 同じバッファでM-x describe-modeをすると、一覧にCompanyとGlobal-Companyが出てきています。 
 これは、単にキーバインドが定義されてないってことでしょうか? 
43(1): 2022/12/28(水)10:53 AAS
 M-x describe-key 
 で[TAB]押すとどうなんだろうか 
44(1): 2022/12/28(水)11:05 AAS
 (global-company-mode 1) とかやっとけばいいんでないの? 
45(1): 2022/12/28(水)12:29 AAS
 >>42 
 use-packageを使ってませんが、 
 とりあえずglobal-company-modeは有効にされてるんだと思います。 
 M-x company-completeで手動では起動できるわけだから、 
 どのキーにバインドするかは設定が必要だろうし、 
 tabでデフォルトのshellの補完を奪っていいかどうかも自分次第かと。 
46(1): 40 2022/12/28(水)18:33 AAS
 返信ありがとうございます。 
  
 >>43 
 ls ./[ここでdescribe-key TAB]すると、(completion-at-point)にバウンドされてるようです。 
  
 >>44 >>45 
 describe-modeした際にglobal-companyが出てきてるので、global-company-modeは有効になっているように見えます。 
  
 >どのキーにバインドするかは設定が必要だろうし、 
 >tabでデフォルトのshellの補完を奪っていいかどうかも自分次第かと。 
 なるほど。tabに対してキーバインドは設定していませんでした。 
 このあたりの仕組みがよくわかってないもので、company-modeを有効にすると自動的に*Completions*バッファが 
 ツールチップで補完表示されるものかと思ってましたが、そういうものではなく、
省1
47(1): 2022/12/28(水)19:59 AAS
 >>46 
 普段company-idle-delayをnilに設定してキーで起動していたので勘違いしましたが、 
 デフォルトのままだと入力するそばから自動的に補完候補を表示しますね。 
 私はそれが煩わしいので手動で起動するようにしてたんですが、 
 何かの設定がうまくいってないんですかね? 
48: 40 2022/12/29(木)06:59 AAS
 >>47 
 頂いた情報を参考に色々調整した結果、 
 (setq company-idle-delay 0) 
 (setq company-minimum-prefix-length 0) 
 上記設定を追加してみると、shellバッファで文字を打つたびに補完候補が表示されるようになりました。 
  
 試しに、 
 (setq company-minimum-prefix-length 5) 
 とした場合、 
 (5文字未満) ls ./[TAB] # *Completions*バッファが表示される。 
 (5文字以上) ls ./../[TAB] # companyで補完候補が表示される。
省4
49: 2022/12/29(木)11:52 AAS
 companyは既存の設定だけでなく、 
 最終的には自分で補完に使用するbackendsまで作成すればほとんどどんな動作にもできるはずですが、 
 お話のようにデフォルトの補完completion-at-pointをcompanyで置き換えたいだけなら、 
 パッケージに同梱されたcompany-capfをcompany-backendsに設定すればよさそうですけどね。 
50: 40 2022/12/29(木)14:40 AAS
 company-backendsは以下のように設定されていました。 
  
 (company-bbdb company-semantic company-capf company-files 
                (company-dabbrev-code company-gtags company-etags company-keywords) 
                company-oddmuse company-dabbrev) 
  
 リストの中にリストが含まれてるのが怪しいのですが、一応company-capfは入っているようです。 
 一つ気になったのが、 
 (use-package company 
 :config 
 ((global-set-key (kbd "TAB") 'company-complete)) 
 と設定しても、shellバッファでdescribe-key [TAB]をすると、設定されているのは
省2
51(2): 2022/12/29(木)15:16 AAS
 info 読まない縛りでもしてんの? 
52: 40 2022/12/29(木)21:40 AAS
 質問ばかりですいません。 
 >>51 
 infoというのが、companyの公式ページの話であれば読んではいるもののなかなか理解できず苦労してます。 
 「emacsの情報」という意味であれば、すいません、emacsを使い始めたばかりなので拾いきれてないですね 
53: 2022/12/30(金)01:43 AAS
 >>51 じゃないけど 
 M-x info 
 のことを言ってると思われ 
 セルフドキュメント方式、てのがググれない時代からあるEmacsの思想の一つなんだわ 
 で、そういった思想とか調べ方もinfoの中に書いてあった気がする 
  
 日本語の方が良いなら 
 Emacs 日本語マニュアル インストール 
 あたりでググれ 
 companyモード用のinfoがあるかは知らん 
54: 2022/12/30(金)04:02 AAS
 公式のマニュアルにサンプルもあるのでまずそれを試してみては。 
 外部リンク:company-mode.github.io 
  
 とりあえずキーバインドを定義しなくても、 
 以下のcompany-backendsのサンプルで概ね希望通りの動作になるのでは? 
 外部リンク[html]:company-mode.github.io 
  
 (setq company-backends '((company-capf company-dabbrev-code))) 
55(2): 2023/01/02(月)17:32 AAS
 最近font-lock-modeの仕様が変わった? 
 wanderlustのsummaryでfont lockが効かなくなった、 
 というか挙動が変なような。 
上下前次1-新書関写板覧索設栞歴
あと 794 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s