Emacs Part 53

■ このスレッドは過去ログ倉庫に格納されています
2021/05/23(日) 17:21:02.75
GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/

EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/

前スレ
Emacs Part 51
https://mevius.2ch.net/test/read.cgi/unix/1514601894/
Emacs Part 50
https://mevius.2ch.net/test/read.cgi/unix/1482097785/
Emacs Part 52
https://mevius.5ch.net/test/read.cgi/unix/1585125902/
2021/10/27(水) 22:02:32.74
>>333
長々とそれ言いたいだけでしょ
2021/10/27(水) 22:48:39.29
>>333
gnuとEmacsで GNU Emacs か
336名無しさん@お腹いっぱい。
垢版 |
2021/10/28(木) 23:08:28.99
逆に考えるんだ
交尾の一体どこが不適切だというのだろうか
337名無しさん@お腹いっぱい。
垢版 |
2021/10/29(金) 00:03:10.97
What's the fuck
338名無しさん@お腹いっぱい。
垢版 |
2021/10/29(金) 06:37:46.18
珍しく伸びてると思ったら何だこれは
339名無しさん@お腹いっぱい。
垢版 |
2021/10/29(金) 18:51:56.88
>>334
2021/11/03(水) 11:30:10.92
もしわかる人がいれば教えてください。

MX21(Debian11)でemacs-gtk(1:27.1+1-3.1)をインストールしてEmacsは/usr/share/emacs以下にあります。
apel(flim/semi/wanderlustの前に)をソースからmake installするとなぜか/usr/local/share/emacs以下にインストールされ、
そのままflimをmake installすると今度はflimがapelを見付けられません。
PREFIX=/usrとしても無視されてしまい、
LISPDIR/VERSION_SPECIFIC_LISPDIRをそれぞれ指定しないと/usr/share/emacs以下にインストールされません。

これまでapelはmake installするだけでemacsの枝を見付けてくれたはずですが、
何が原因でしょうか?
2021/11/05(金) 07:55:15.18
debianパッケージのagel flimじゃダメなの?
apt-get install flim
でapelも入るじゃん
2021/11/05(金) 07:59:55.20
というか wl か wl-beta で全部入るね
2021/11/05(金) 13:30:43.64
apel semi flim wanderlust wanderlust betaのソース一式をよく読もうよ。
2021/11/05(金) 23:32:26.54
手元にあるManjaroでも何もしなくても/usr/share/emacs以下に入る。
MX21(Debian11)で-q --no-site-fileで起動してAPEL-MKを読み込んで調べると、
PREFIXには最初から/usrが設定されるがLISPDIRは/usr/local/share/emacs/site-lispになる。

MX21(Debian11)では-q --no-site-fileで起動してもload-pathの先頭の方に/usr/local/share/emacs/site-lisp(空だが)が来る。
Manjaroの方は/usr/share/emacs/site-lispが来るからLISPDIRにこれが設定されるのかな。
なぜMX21(Debian11)では/usr/local...が先頭の方に追加されているのかは不明。
debain-startup.elというのを読まないようにしてもだめみたいだがどこから出て来るの?
2021/11/06(土) 10:40:20.04
それほど詳しくないんだけど、
debian-startup.el*をよけても起動にはemacs.pdmpが使われるからだめなのかな?
どうやらdebian-startupのパッチが当たらないソースなら問題がないように見えるので、
Debianのパッケージが原因ということでいいのかな。
MX18(Debian9)では問題なかったような気がしたけどはっきり憶えてない。
2021/11/06(土) 11:14:10.81
debianはパッケージを使うもの。
パッケージはdebianのファイル配置規則に沿ったディレクトリにインストールするように設定されてる
2021/11/06(土) 14:05:13.30
そういうものなのかな。
MXみたいにDebianのLTSベースで3〜4年使うとパッケージも古くなるから、
Emacsに限らずソースからインストールすることは時々あるんだけど。
ともかく原因は多分わかったのでどちらでも対処できればよいかな。
2021/11/06(土) 15:30:32.16
MXがDebian11に未対応なんじゃない?
Debianの場合自分でビルドするなら/usrとかじゃなくて/homeの自分のホームディレクトリにインストールするものだと思う。
2021/11/06(土) 16:54:24.79
Debianを使ったことがないからあれだけど、
emacs-gtkはDebianのリポジトリのパッケージだし、
apelはgitのソースでまだ何かあるのかな?
emacsが/usr以下にあってもapelが/usr/local以下に入るのはDebianのソースのパッチだと思うけど。
2021/11/06(土) 16:58:16.70
つまりDebianのemacs-gtkパッケージのソースに適用されたパッチという意味。
2021/11/06(土) 17:57:39.88
>>340の人は最新のwanderlustを使いたいだけみたいだからDebianパッケージのemacs-gtk使って
wanderlust関連だけホームディレクトリにインストールしたら良いと思うのだけど
もしかしてEmacsも最新の入れたいのかな。Emacsはホームディレクトリではない所に入れるものだね
2021/11/06(土) 21:35:10.86
PREFIX=~/.localみたいにするということですか?
それでapelを~/.local/share/emacs/site-lispにインストールして、
flimとsemiはLISPDIR=~/.local/share/emacs/site-lispで一応インストールできますが、
wanderlustはもう少し面倒みたいです。
いずれにしてもDebianパッケージでないEmacsなら
sudo make installだけで/usr/share/emacs以下にインストールされるのに比べるとやや面倒ですね。

EmacsはDebianパッケージでいいんですがどうも釈然としません。
それに上記意外のelispパッケージのインストールでは特に問題は起きていません。
2021/11/07(日) 23:21:25.99
Emacsの無関係のDebian11パッケージで中途半端にディレクトリ変わってるのがあったから
Emacsも中途半端にディレクトリ変更されてるのかもしれない。
Debian BTSでバグ報告すると解消してもらえるかも
2021/11/08(月) 21:48:36.99
他のelispパッケージで問題が出てないので、
Debianとapel/flim/semi/wanderlustどちらが問題なのか判断が難しそう。
多分、過去には問題がなかったのでDebianの変更と関係はあるんだろうけど、
もともとapel/flim/semi/wanderlustのパッケージの依存関係が面倒でこうなってる気もするし。
2021/11/17(水) 21:30:34.42
melpa版だと最新使えるね
2021/11/23(火) 10:53:48.15
melpaとかはmalware対策どうなってんの?
2021/11/23(火) 19:58:06.89
ノーガード戦法だ
最初登録申請するときはソースコードをチェックしてるけど、その後のアップデートは当然ながら追いきれるわけもなく、そのまんま各々のEmacsに降ってくる
この辺の事情はVimとかも一緒だと思う
この問題を解決しようとしたら、やるべき事が多すぎてかなり大変だろうね
2021/11/23(火) 21:18:12.06
>>357
薄々は分かってたけど、サンドボックス化されてないemacsではすげー危険だよな。

chromeは限界はあるものの拡張の悪意を封じ込める機構があるからな。emacsは外部コマンドrmとか呼ばれたらどうにもならない。
2021/11/24(水) 00:20:16.35
>>358
ブラウザみたいに出来る事に制限を掛ければ幾分マシになるとは思う
大抵のpackageにはネットワークアクセスは必要無い訳だし、それを制限出来れば少なくともローカルデータの無断アップデートは防げる
ただ、その仕組みを実装するのは簡単じゃないだろうね
2021/11/24(水) 00:24:05.09
取り敢えず、得たいの知れないpackageをインストールしないっていう自衛だけで今まで上手く行ってるし、これからもそうやって行くと思われる
2021/11/24(水) 21:59:07.88
頻繁に更新してるパッケージならメンテしてる人が悪コード混入に気付くだろうし
悪コード混入させる奴は広範囲に影響及ぼすのが目的だろうから利用者の少ないmelpaなんか眼中に無いと思う。
2021/11/24(水) 22:26:33.67
>>361
大筋は同意だけど、そこはなかなか単純に割り切れなくて難しい問題だと思うの。
俺が悪さしようと思ったら監視の少ないショボイ拡張にブラウザのクッキーを全部scpするようなスクリプト入れ込んで、幾つかアカウント盗めればいいかなとか思っちゃう。

個人の悪さとしては十分元が取れる。結局は手間と利益の天秤にすぎないから。
じゃあ何でEmacsでインシデントが起きてないかは知らんww
2021/11/24(水) 22:36:23.35
メジャーなプロジェクトでも、よからぬことが意外とあり得る、というのはいくつかあったやろ。

結局、安心の根拠探しはムリ!
2021/11/24(水) 22:36:57.32
我々利用者が思ってる以上に世間でEmacsは使われてないんだと思う
2021/11/24(水) 23:07:36.04
emacs使ってるやつの環境がばらばらでcookie取りに行こうとしてもパスがわからない説
2021/11/24(水) 23:41:08.32
おい、Emacs使いは年収1000万円以上が12.60%もいるんだぞ!悪者に狙われるに決まってるだろ!(違う)

https://job-draft.jp/articles/323
2021/11/25(木) 04:31:12.28
転職ドラフトなんてサイト見てたらバカになるよ
2021/11/25(木) 13:30:22.00
native compilationてあまり話題にならないのかな?
まあ、どれほど違うのか測りかねるところもあるけど。
2021/11/25(木) 14:26:32.86
navi2chだとはっきりと体感できるほどの差がある
2021/11/26(金) 04:13:07.88
少なくともEmacs-lispなら出来上がりがかなり不自然になるので
使う前に誰かがきずくと思う
変なところをアクセスしたり、変なポートを開けたり、通信したり
することになるわけだから
2021/11/26(金) 13:06:36.70
きずく
2021/11/26(金) 22:57:38.09
対策しても紛れるときは紛れるんだから諦めてる
2021/11/26(金) 22:59:34.69
自分が書いたコード以外をつかわない
2021/11/26(金) 23:52:59.53
>>373
BIOSからだぞ!
2021/11/27(土) 00:29:19.46
elisp書く人に悪い人はいないよ
2021/11/27(土) 02:16:56.10
良い人もいないけどな
2021/11/27(土) 02:54:21.12
>>376
これは的を得ているなぁww
2021/11/27(土) 07:10:44.84
普通の人か
問題ないじゃん
379名無しさん@お腹いっぱい。
垢版 |
2021/11/27(土) 09:52:14.22
なあRMSて敬称? 様付けの方がいいかな
2021/11/27(土) 11:48:06.31
教祖様
2021/11/27(土) 13:03:23.14
>>378
世の中の多くのよくない行為はふつうの人によるものだと思うが。
2021/11/27(土) 13:46:52.84
emacsconf.org/2021/

EmacsConf 2021 が今日ですね
2021/11/27(土) 16:00:32.47
質問をIRCで受け付けるって懐かしい
2021/11/27(土) 16:10:34.75
技術系のコミュニティはIRCが現役だぞw
2021/11/27(土) 16:13:34.88
YouTuberのヒカキンがヒカキンIRCとかIRCチャンネル始めたらIRC人口増えるかも
2021/11/28(日) 13:25:27.76
所有者がrootのファイルを編集して保存するとバックアップに失敗します。

C-x C-f /sudo::/etc/secret.txt

Auto-saving...done
Saving file /sudo:root@****:/etc/secret.txt...
Renaming /sudo:root@****:/etc/secret.txt to /home/****/.emacs.d/backup/!sudo:root@****:!etc!secret.txt~...failed
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
Copying /sudo:root@****:/etc/secret.txt to /home/****/.emacs.d/%backup%~...done
Copying /tmp/tramp.ICQiuU.txt to /sudo:root@****:/etc/secret.txt...done
Wrote /sudo:root@****:/etc/secret.txt

バックアップの場所は固定しています。
(setq backup-directory-alist '(("." . "~/.emacs.d/backup/")))
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/backup/" t)))

tramp-backup-directory-alistは設定していません。
自動保存は設定通り~/.emacs.d/backup/に作成されています。
Emacs29.0.50ですが何が問題でしょうか?
2021/11/28(日) 19:48:41.72
次のコマンドも失敗するので何か制限があるんでしょうか?
% touch /home/****/.emacs.d/backup/!sudo:root@****:!etc!secret.txt~
zsh: modifier failed: r

bashでも失敗します。
% touch /home/****/.emacs.d/backup/!sudo:root@****:!etc!secret.txt~
bash: !etc!secret.fxt~: event not found
388名無しさん@お腹いっぱい。
垢版 |
2021/11/28(日) 19:57:17.26
sudo のそれるびきちが記事書いてなかったか?
2021/11/28(日) 20:56:41.58
!がshellに解釈されてない?
2021/11/29(月) 01:06:41.47
make-backup-file-nameにadviceして通常なら書き込めるファイル名にしても失敗する。
Saving file /sudo:root@asus:/etc/secret.txt...
Renaming /sudo:root@asus:/etc/secret.txt to /home/tosh/.emacs.d/backup/^sudo:root@asus:^etc^secret.txt~...failed
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
Copying /sudo:root@asus:/etc/secret.txt to /home/tosh/.emacs.d/%backup%~...done
Copying /tmp/tramp.rIzC8d.txt to /sudo:root@asus:/etc/secret.txt...done
Wrote /sudo:root@asus:/etc/secret.txt

こうしてしまえば/root/.emacs.d/backup/にバックアップされるから、
バックアップしてファイルの所有者が変わるとだめなのかな?
(setq tramp-backup-directory-alist backup-directory-alist)
391名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 17:32:54.61
るびきちの本買ったけど、古くて使えないのかな
auto-install入れても、空テキストしか持ってこないよ
2021/12/02(木) 18:20:26.90
>>391
るびきちの本で今でも使えるとすればelispの方だけでは?
2021/12/02(木) 20:07:30.16
古文書レベル
394名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 21:32:47.47
>>392
そっちは持ってないんですよ
買いですか?
395名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 21:33:19.29
>>393
w
ブッコフで200円だったもんで
2021/12/02(木) 22:33:55.98
>>394
オレはelispをこれで勉強した。既に古くなっているところもあるけど、まだ参考になる本だと思おうよ。
あと、こんなのがある。
https://ayatakesi.github.io/
397名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 23:28:32.64
>>396
ELisp使えるようになりたいたいんですよねー
一応「ヌー」本第三版は持ってるものの、25使ってて、27にアップデートするのがめんどくさいですw
でもリンクサンクスです
398名無しさん@お腹いっぱい。
垢版 |
2021/12/02(木) 23:31:30.20
そこに25のマニュアルもあるんですね参考にします
るびきち本はレイアウトとかが割と気に入ってるので、多分Lispの方も買うと思います
2021/12/03(金) 06:47:48.97
>>397
lispはlexical scopeとdynamic scopeどちらも使えるのがいいよね。
dynamic scope使えるおかげで、既存コードの挙動を簡単に変えることができ、emacsのカスタマイズを容易にしている。
コードを追いづらくなるから他の言語では殆どサポートされていない機能だけど。
また、lexical scopeもサポートされているのでクロージャも使える。
2021/12/03(金) 10:09:28.38
>>399
今のElispは全部レキシカルスコープがデフォルトだから、ダイナミックスコープの恩恵は受けてないでしょ
古いソースコードでもダイナミックスコープじゃないと動かないコードはごく僅かだよ
2021/12/03(金) 10:20:55.07
デフォルトではないと思うけど
2021/12/03(金) 10:58:16.59
内部設定がデフォルトということではなくて、ソースコードの一番上にレキシカルスコープの宣言を書くことが当たり前になってるから、運用的にデフォルトということか
2021/12/03(金) 12:26:48.90
>>400
emacsのカスタマイズの容易性のこと言っている。defver、let使わんか?
2021/12/03(金) 18:38:26.20
>>403
言いたい事は分かるけど、それをダイナミックバインディングとは言わないんだよね
強いて言うならスペシャル変数のバインディングという感じか
ダイナミックバインディングと挙動が似てるから混同しがち
ひとつ例を出すと
;; -*- lexical-binding: t -*-
(setq hoge 1)

(defun print-hoge ()
(print hoge))

(defun foo ()
(let ((hoge 2))
(print-hoge)
(print hoge)))

(foo) =>

1

2
となる
setqで強引に作ったグローバル変数はスペシャル変数じゃないのでこうなるけど、一番上のコメント行を削除するとダイナミックバインディンになって
(foo) =>

2

2
となる
2021/12/03(金) 18:48:46.46
ちなみにCommon Lispでも同じ挙動だ
でもCommon Lispをダイナミックバインドの言語とは言わないだろう(設定で出来るらしいが詳しくは知らん)
defvarとletの挙動はスペシャル変数のバインドと言えばいいだろう
2021/12/04(土) 00:27:36.26
デフン、フー
2021/12/04(土) 10:10:25.00
>>405
これは間違い?
http://www.nct9.ne.jp/m_hiroi/clisp/abcl19.html
2021/12/04(土) 12:00:31.58
>>407
スペシャル変数はダイナミックスコープで管理されると言えばいいんだな
そもそもダイナミックバインディングとダイナミックスコープの用語を一緒くたにするというアホなことしてた
昔のEmacsはスペシャル変数でなくても、letで定義された変数を全てダイナミックスコープで扱うダイナミックバインディングだった
今はスペシャル変数のみダイナミックスコープで扱う、レキシカルバインディングが(運用上)デフォルトになっている
と言えばいいのかね
2021/12/05(日) 23:55:28.68
しばらく触ってなかったが、今のEmacsLispはレキシカル・スコープなの?
2021/12/06(月) 00:28:03.09
>>409
今でもデフォルトはダイナミックスコープだけど、24あたりのバージョンでレキシカルスコープの対応がされたであってるかな?
https://www.emacswiki.org/emacs/LexicalBinding
2021/12/06(月) 01:00:14.10
そうそう
2021/12/06(月) 01:13:34.08
.elの一行目に
;; -*- lexical-binding: t -*-
を書くとレキシカルバインディングになる
今は全部の.elに書かれてるから、もうデフォルトと言って間違いない
2021/12/06(月) 04:14:47.85
>>412
要するに、デフォルトちゃうやん!w
2021/12/06(月) 12:34:41.52
# cd /usr/share/emacs/27.1/lisp
# ls *.el.gz | wc -l
265
# zgrep -l lexical *.el.gz | wc -l
149

/usr/share/emacs/27.1/lisp 配下のファイルでは、lexical の宣言がされているのは、半分強くらいなようです。
2021/12/06(月) 16:18:29.71
dynamic bindingは関数を弄らずに呼び出し側から出力先を変更出来るのが一番の恩恵だと思う
シェルのリダイレクトに似てるな
2021/12/06(月) 16:58:44.24
>>414
今pretestがリリースされている28からだった
$ ls *.el | wc -l
268
$ grep -l lexical-binding *.el | wc -l
268
ちゃんと全部レキシカルバインディングになってるよ!
しかもNEWSには
** The 'lexical-binding' local variable is always enabled.
とも書いてある
これで内部もデフォルトになったよ

>>415
もうdynamic bindingの話はするな
するのならdynamic scopeというべし
2021/12/06(月) 18:58:09.68
すみません
2021/12/06(月) 19:06:54.09
デフォルトの意味が分かってない人がいるってマジ...?
2021/12/06(月) 19:48:02.00
dynamic binding と dynamic scope の違いが分からん。教えて。
2021/12/07(火) 00:22:52.59
https://ayatakesi.github.io/lispref/27.2/html/Variable-Scoping.html#Variable-Scoping
↑ここを見れば全部書いてある
2021/12/07(火) 00:37:26.94
lexical-bindingとdynamic-bindingはどちらかしか有効にならないから排他的だけど、dynamic scopeはlexical-bindingの時でもスペシャル変数がそれなので両方で使える
2021/12/07(火) 06:34:53.98
設定としてのlexical-bindingの意味と、挙動としてのlexical binding(ハイフン無し)を混同しているような気がするが..。
2021/12/07(火) 23:37:42.87
歴史を語る売国奴めが
2021/12/08(水) 00:30:53.20
売国奴w
こんな辺境のスレで国が売れるのかよw
2021/12/08(水) 01:20:40.42
素直にすまんと認めてるのに周りが蒸し返して騒ぐのはいかがなものか?
2021/12/11(土) 02:00:41.36
selectrum とか verticoの作者が競合のパッケージに一言書いてるの面白いね欧米だわ
日本であれやったらてめどこ中だよああん?ってなるわ
2021/12/14(火) 13:12:58.72
Vim使いの事をVimmer って呼ぶらしいんだけど
Emacs 使いはEmaccer (イーマッカー)って呼べばいいんですかね?
2021/12/14(火) 13:30:42.61
emassacre
2021/12/14(火) 17:42:22.65
いまくせあん
430名無しさん@お腹いっぱい。
垢版 |
2021/12/14(火) 18:50:24.46
そんなmassacre!
2021/12/16(木) 03:34:30.24
emacsはイーマコよ
432名無しさん@お腹いっぱい。
垢版 |
2021/12/16(木) 11:36:26.81
emacsen って言うんじゃないの?
昔はemacs使いのことをそういうのをよく見かけたけど
2021/12/16(木) 11:54:48.09
emacsenは単に複数形では
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況