Emacs Part 54at UNIX
Emacs Part 54 - 暇つぶし2ch836:名無しさん@お腹いっぱい。
25/10/05 05:26:54.44 .net
emacs 30 シリーズも30.2 が出たので、29.x からそれにしたらいきなり egg 関連のパッケージがエラーおこしたが、それは割とすぐに対処できた。
obarray を作るには make-vector の最後の値を nil から0にせよということだ。あるいは obarray-make を使えと。
たとえば:
URLリンク(www.agt.ne.jp)

で、実は手元でローカルにいろいろパッチを当てていた egg 関連の emacs-lisp を emacs 30.2 で compile しようとしたらどうも macroexpand が うまくいかないようでエラーを起こす。
多分どこかでマクロの引数が足りないところなどがあるんだろうけど古いemacsのコンパイラではmacro の展開が緩かったりで発見されていなかった問題かも。

それはともかくその過程で次のパッケージとウェブサイトを知った。
egg-tart (tamago-tsunagi と 追加の説明など) URLリンク(github.com)
やっぱりWnnが好き! URLリンク(wnn.jp)
FreeBSD における Wnn8 URLリンク(maikaze.cafe.coocan.jp)

最後のは自分で .el 書き換えたりしてない人には詳しすぎるかも。
egg.el関連のソースはやはり漸次でもよいから直していかないと emacs 30.x (x > 2), 31.y で使えなくなりそうだけども、そういう観点から更新をしている人は世の中にいるのだろうか?
長く使っている入力方法は簡単に捨てられないので、そういうところがあれば情報を共有したいと思ってるのでした。

837:名無しさん@お腹いっぱい。
25/10/05 06:34:58.15 .net
>>835
いま手元に実物が無いからうろ覚えだけど
A君「LISPは機械を優先して、人にとっての使いやすさを無視した言語なんですか?」
K先生「それはある意味当たっておる。しかし機械が扱いやすいということは、回り回ってその機械を作ったり制御したりする人が楽をできるということでもある。まあ人と機械が歩み寄ったと思えば美談じゃ」
みたいな会話を読んで目から鱗が落ちたことがある
URLリンク(www.shoeisha.co.jp)

838:名無しさん@お腹いっぱい。
25/10/05 09:16:32.78 .net
28以降はクソ

839:名無しさん@お腹いっぱい。
25/10/05 09:26:00.51 .net
>>835
Emacsの歴史を知るとその疑問が解けるかもしれないよ
GNU EmacsがEmacs Lispを採用したのは2番目のリンクで、どちらも日本語だが英語版より古い

URLリンク(ja.wikipedia.org)
URLリンク(www.gnu.org)

840:名無しさん@お腹いっぱい。
25/10/05 10:14:50.33 .net
ややこしい歴史をたどんなくても
・lisp が完全な高級言語の中で最も小さなインタプリタで実装できたから(当時はメモリとか貴重だった
・rms は MIT の AI研にいて lisp まわりの仕事してて詳しかった
の2点で十分じゃよ

841:名無しさん@お腹いっぱい。
25/10/05 12:16:54.94 .net
>>835
Lispが神の言語なのにはちゃんと理由がある
要約すると、括弧とシンボルと幾つかのオペレーター(例えばcarやatomなど)があれば言語を構築出来ることを「発見」したから
あと、構造化編集で調べれば分かるけど、括弧があるお陰で編集がめちゃやり易くなる
括弧の対応は自動でされる
それとLisperは括弧じゃなくてインデントを見るので括弧が気にならなくなる
もはや欠点が無いw

842:名無しさん@お腹いっぱい。
25/10/05 13:27:59.02 .net
インデントを見るといえばpythonだけど、個人的にはpythonにカッコついてればいいのにと思う

843:名無しさん@お腹いっぱい。
25/10/05 15:09:45.47 .net
>>841
極論を言えばプリミティブは lambda と eval さえあれば後はそれを使って全部実装できるって話はあるからな
入出力とかは全部 eval が担当はインチキだけど

844:名無しさん@お腹いっぱい。
25/10/05 16:38:29.06 .net
doom emcas起動したらcpuが100張り付いたんだけどemacsてこんなに重いん?

845:名無しさん@お腹いっぱい。
25/10/05 16:51:29.98 .net
>>842
HyというLispがあるよ
使ったこと無いけど、Pythonとの親和性を求めるなら良いかもね

846:名無しさん@お腹いっぱい。
25/10/05 16:53:40.92 .net
>>844
裏でネイティブコードのコンパイルが行われてる
一度やれば次起動した時は負荷は上がらないけど、パッケージを更新するとまたコンパイルが走って一時的に負荷が上がる

847:832
25/10/06 02:43:16.18 .net
>> 152

> ChatGPT in Emacs
> URLリンク(youtu.be)

30.2 で tamago のバイトコンパイルどころかロードも失敗するのは、上の emacs に特化した? chatgpt の対話窓口で数時間かけてデバッグしたら解決した。

なかなか参考になる体験。最初の数時間はうまくいったんだけど、最後の1時間半くらい、chatgpt が自分で定義した関数の引数の数と、
テスト用に示してきた関数での利用例での引数の数がマッチしてなくて、それで大混乱して1時間半くらい無駄にした。
こちらの手元の関数定義と向こうが考えてる修正中の定義が微妙にずれていたりするのかもしれない。
あと、なぜか、lisp の対話システムとしては致命的だがときどきカッコのマッチがおかしいのを出力する。シンタックスエラーで分かるからいいんだけど。

そんなわけで、defmacro の問題点は全部解決した. hangul.el は defmacro を修正したら今度は最後関数ボディが巨大になりすぎてコンパイルできないので、
マクロ利用をやめたり。

とりあえず、手元の tamago の .el ファイルはエラーせずに全部コンパイルできるようになった。
それをバイトコンパイルしたもので 30.2 で日本語入力が手元の FreeWnn4 使ってるDebian/Linux でできてる。
第一歩すすんだ。

修正案:
1. 終了: ‘inhibit-point-motion-hooks’ is an obsolete variable (as of 25.1); use ‘cursor-intangible-mode’ or ‘cursor-sensor-mode’ instead
対応。
2.stirng-as-unibyte, string-as-multibyte の置き換え。
対応中。 ただし、これは日本語サーバー使ってる部分しかテストできない。
3. 上の 1 に関連して 'tangible text property の利用をやめる方向でそれを取り除くのも chatgpt と相談しながらできるかもしれないと思い始めたところ。

生成AI でのコーディングは実用になる。結果が正しいかどうかはコンパイラ、インタプリタ―でテストは知らせれば真偽がわかる。
レポートの調査は、「これこれはこのURLに書かれています。」と言われて、本当かと調べたらなかったことが考えられないほどの頻度であるので、そういう使い方には向いてないと思う。

Emacs に特化した窓口を教えてくれた152に感謝。

848:名無しさん@お腹いっぱい。
25/10/06 07:06:13.00 .net
>>835
XML: その通り
JS: おまえが言うな({[]})

849:832
25/10/06 10:59:48.77 .net
訂正:使ったのは 次だった。271に感謝。
>> 271
> URLリンク(chat.openai.com)

850:名無しさん@お腹いっぱい。
25/10/07 14:52:23.14 .net
>>830
もはやも何も昔からEmacsは環境…

851:名無しさん@お腹いっぱい。
25/10/09 12:00:04.41 .net
28以降はクソ環境

852:名無しさん@お腹いっぱい。
25/10/09 17:19:46.12 .net
こっちと同じ話になってる

Unixの哲学は単機能ツールの組合わせ→emacs え?
スレリンク(linux板)

853:名無しさん@お腹いっぱい。
25/10/11 15:25:04.81 .net
ewwの使い勝手がいまいちなんだよね
webページがフレームだと使い物にならない

854:名無しさん@お腹いっぱい。
25/12/08 11:01:21.82 .net
vtetm、emacs 標準の quail 使った日本語入力だと漢字直接打ち込めるのな

855:名無しさん@お腹いっぱい。
25/12/08 12:01:15.30 .net
ほんまやね
ただしclaude codeでインライン入力出来ないのは変わらん

>>764を教えてもらったんで
ミニバッファじゃなくて普通のバッファを常時開いて
入力用バッファとして使用するように改良した
vtermもキーバインド1つででバンバン開けるようにして
複数のclaude codeを平行して実行できる
lispに暗いのでclaude codeマジ助かる

856:名無しさん@お腹いっぱい。
25/12/09 12:33:01.43 .net
>>854
vterm 自体はちゃんと input-method 対応がなされてて、mozc.el の問題で入力出来なかっただけのようだ
readonly の時に中断する処理のところを inhibit-readonly の時は中断させないよう条件を変えたら入力できるようになった

857:名無しさん@お腹いっぱい。
25/12/09 13:26:03.75 .net
>>856
パッチをくだされ

858:名無しさん@お腹いっぱい。
25/12/09 14:05:49.78 .net
>>857
要 mozc-im

--- mozc.el 2025-12-09 13:53:28.846437999 +0900
***************
*** 745,747 ****
'("|" "|" " ")))))
! (if (and buffer-read-only (> (length text) 0))
(progn
--- 745,749 ----
'("|" "|" " ")))))
! (if (and buffer-read-only
! (not inhibit-read-only)
! (> (length text) 0))
(progn

--- mozc-im.el 2025-12-09 13:58:55.380217856 +0900
***************
*** 103,105 ****
"Consume KEY and following events by mozc."
! (if (or buffer-read-only
overriding-terminal-local-map
--- 103,106 ----
"Consume KEY and following events by mozc."
! (if (or (and buffer-read-only
! (not inhibit-read-only))
overriding-terminal-local-map

859:名無しさん@お腹いっぱい。
25/12/09 14:25:02.03 .net
advice にしてみた

(advice-add 'mozc-preedit-update :around
(lambda (old-func &rest r)
(let ((buffer-read-only (and buffer-read-only
(not inhibit-read-only))))
(apply old-func r)
)))
(advice-add 'mozc-im-input-method :around
(lambda (old-func &rest r)
(let ((buffer-read-only (and buffer-read-only
(not inhibit-read-only))))
(apply old-func r))))

860:853
25/12/09 15:38:34.58 .net
>>858
有難うございます!
vtermはmozcでインライン入力できるようになりました!

claude codeがインライン入力になると完璧なのですが
こちらはclaude codeの問題だと思うので難しそうです
しかし入力用バッファを別に開く方法よりも良いかもしれません

861:名無しさん@お腹いっぱい。
25/12/10 15:49:33.16 .net
28以降はクソ!

862:名無しさん@お腹いっぱい。
25/12/10 20:16:11.04 .net
>>859
ありがとうございます。
困ってたんですよね。

863:名無しさん@お腹いっぱい。
25/12/11 15:22:51.73 .net
line-spacing を設定すると window-text-height が狂うんだけど調整することって出来ないのかな

864:名無しさん@お腹いっぱい。
25/12/13 23:48:44.25 .net
eglot + tramp + clangdで初期化失敗するのがうざい。
lsp-mode差し置いてマージされたんだからtrampの対応は必須にしてくれ。
MAKE EMACS GREAT AGAIN!

865:名無しさん@お腹いっぱい。
25/12/15 14:23:56.92 .net
You can revert your Emacs to the version that you think is great.

866:名無しさん@お腹いっぱい。
25/12/15 15:01:41.90 .net
インスコしたデフォルトだと
Emacs限定で日本語の切り替えがおかしかったんで
遅ればせながら最近ibusを使いだした

867:名無しさん@お腹いっぱい。
25/12/15 15:15:29.07 .net
>>866
~/.Xresourcesに
Emacs*UseXIM: false
を書いて、emacs-mozcなりddskkなりお好きなものをどうぞ

868:名無しさん@お腹いっぱい。
25/12/15 16:07:50.80 .net
今時の人はemacsで日本語入力するのにelispを使わないんだな

869:名無しさん@お腹いっぱい。
25/12/15 18:25:47.10 .net
俺も昔はskk原理主義者だったが膝に矢を受けてしまってな

870:名無しさん@お腹いっぱい。
25/12/15 18:46:39.16 .net
fcitxとかだとcorfuやcompanyとかと競合するから仕方なくmozc.elとかを使ってるだけよ。
"elispを使う"ってくらい書く必要があるなら、文脈解析込みの日本語入力とかにしてほしい。

871:名無しさん@お腹いっぱい。
25/12/15 18:47:43.40 .net
膝に矢を受けたやつ久しぶりにみたw

872:名無しさん@お腹いっぱい。
25/12/15 23:08:46.49 .net
context-skk とか結構色々やろうとしてたな~って記憶はある
シフト押すのめんどくさくなって mozc になったけど

873:名無しさん@お腹いっぱい。
25/12/15 23:29:22.47 .net
小指or手首に矢じゃないのか。

874:名無しさん@お腹いっぱい。
25/12/16 09:53:56.14 .net
mozc.el使ってるならelispを使ってる
上でibusと書いてある人がいるけど
emacsでibus使うのにelispが必要なのか

875:名無しさん@お腹いっぱい。
25/12/16 20:06:10.05 .net
そりゃクラッチ踏めなくなればMTも無理だな

876:名無しさん@お腹いっぱい。
25/12/18 13:15:04.00 .net
>>875
脚を切断でもしたのかよ()

877:名無しさん@お腹いっぱい。
25/12/18 15:28:24.02 .net
俺はSKKで鍛えた小指でクラッチ踏めるから楽勝さ

878:名無しさん@お腹いっぱい。
25/12/18 15:57:32.93 .net
SKK は自分の限界が漢字かな変換出来る限界で、AIが勝手に長文書いてしまう世界からすると実に異端

879:名無しさん@お腹いっぱい。
25/12/18 17:54:46.17 .net
「変換」キーをstickyにして小指を疲労から解放した俺は甘え


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch