Emacs Part 51
■ このスレッドは過去ログ倉庫に格納されています
>>354 Emacs側でフォントの設定を何もしていないということでしょうか? emacs -Qで起動して*scratch*バッファで次の式を評価(行末でCtrl+j)するだけで 正しく設定されませんか? (set-frame-font "Noto Sans CJK JP-12") 句読点の位置がおかしくなる問題が解決しました。 背景:手元の状況を説明すると、ずいぶん昔にNoto フォントを入れたときには問題なかったような気がするのです。 そのときには~/.emacsの変更も特にしてなかったような気がするのですが、自信がありません。 そのあと、Debian GNU/Linux そのもののバージョンアップ、Emacs のバージョンアップを するうちにここ1年半くらいのどこかで句読点がずれたような気がするのですが、 正確な時期とトリガーになったきっかけを覚えてないのです。 今回おかしくなったのを直そうとどこぞのブログで見かけた次の行を~/.emacs にいれたのですが、これは 駄目でした。最後にfc-list の抜粋みせますが、よく見ると手元のDebian GNU/Linux では名前がマッチしてない。 apt-get install fonts-notoでnoto フォントいれてます。だから有効ではなかったと。 ;;; Noto font が句点を中国文字の場所で表示するのを防ぐ。 ;;; ;;; これだけでは駄目。結局フォントを削除する必要あり。 ;;; => なぜかというと: だって名前マッチしてないんだもん。 ;;;(set-fontset-font "fontset-default" 'japanese-jisx0208 '("Noto Sans CJK JP Medium" . "iso10646-1")) ;;; (試したときにはコメントではなく手、有効なelisp の文でした。) で、今は次のようにしてNoto Serif CJK JP にマッチしています。 ;;; works. Serif を使う。細い字体。 (set-fontset-font "fontset-default" 'japanese-jisx0208 '("Noto Serif CJK JP" . "iso10646-1")) ;;; works. Sans を使う Regular入れても入れなくても太い? ;;; (set-fontset-font "fontset-default" 'japanese-jisx0208 '("Noto Sans CJK JP Regular" . "iso10646-1")) これでとりあえず句読点の位置は日本語の想定する場所になりました。 (face-font 'default nil ?。) は "-GOOG-Noto Serif CJK JP-normal-normal-normal-*-24-*-*-*-*-0-iso10646-1" を返しています。 長いので、fc-listの一部リストは次の投稿にします。 Debian GNU/Linuxで apt-get install fonts-noto でNoto fontを入れたあと. CJK関係のNoto フォントは以下の通り。 fc-list | grep -i "noto " | grep -i cjk 出力は長いのでこちらに投稿しました: https://pastebin.com/yV19HCBA 御覧のようにMediumというような名前のものはないので、正しくマッチする名前を 設定することでとりあえずJPフォントが選ばれるようになりました。 例: (set-fontset-font "fontset-default" 'japanese-jisx0208 '("Noto Serif CJK JP" . "iso10646-1")) なんで昔一時期何も設定しなくても、一見うまく表示されていた(ような気がしたのです)のは不思議。 .../NotoSansCJK-Regular.ttc: Noto Sans CJK SC,Noto Sans CJK SC Regular:style=Regular .../NotoSansCJK-Regular.ttc: Noto Sans CJK TC,Noto Sans CJK TC Regular:style=Regular .../NotoSansCJK-Regular.ttc: Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Regular:style=Regular .../NotoSansCJK-Regular.ttc: Noto Sans Mono CJK SC,Noto Sans Mono CJK SC Regular:style=Regular .../NotoSansCJK-Bold.ttc: Noto Sans CJK KR,Noto Sans CJK KR Bold:style=Bold,Regular >> 357 > なんで昔一時期何も設定しなくても、一見うまく表示されていた(ような気がしたのです)のは不思議。 > .../NotoSansCJK-Regular.ttc: Noto Sans CJK SC,Noto Sans CJK SC Regular:style=Regular > ... 略 最後の行はコピー&ペーストのミスでした。 _| ̄|○ ガクッ >> 355 > emacs -Qで起動して*scratch*バッファで次の式を評価(行末でCtrl+j)するだけで 正しく設定されませんか? > > (set-frame-font "Noto Sans CJK JP-12") なんと、これでもうまくいくことを確認しました。(サイズが想定していたものと少し違うのですが。) ですが、これではっきりしたことがあります。 emacs -Q はinit file (site-specificなものも含め)、とXのリソースの処理をしないのですが、 これで起動した直後にすでに句読点の位置は正しくなっていました。 そのときに (face-font 'default nil ?。) は次をもどしました。(先日と違うPCなんで非常に恐縮なんですが、 今別の場所で使っているDebian GNU/Linuxです。)。 "-PfEd-HanaMinA-normal-normal-normal-*-15-*-*-*-d-0-iso10646-1" そのあとで、次を実行すると、いきなり全体のフレームが縦に伸びて長くなります。多分フォントサイズと 選ばれたフォントの行間スペーシングが大きいのではないかとおもいました。 (set-frame-font "Noto Sans CJK JP-12") この状態で(face-font 'default nil ?。) をすると、 "-GOOG-Noto Sans CJK JP-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1" となりました。 -Qが X リソースを処理しないというところが味噌のような気がします。 私は、Emacsが起動するときに24ピクセルサイズのフォントを使うようにフォントセットを X リソースを作って、それを起動の際に exec $HOME/repos/emacs-26.1/src/emacs --font fontset-24 $* という形で指定したたのです。、今 ちなみに emacs -q でinit file 処理しないけども、X resourcesを処理するモードで起動してみた結果を次に投稿します。 (ちなみにemacs -Q --font fontset-24 はXresource を処理してないので --font の処理でエラーになります。emacs -Q だとだいじょうぶでした。) 今 emacs -q --font fontset-24 で起動してみます(init file は処理しない が、X resourcesは処理する。fontset-24 はリソースで定義している。) まず私の.Xdefaults .Xresources をXの環境にマージしてない状態での挙動を報告 します。これをマージしている普段の状況でどうなるかは更に次に投稿します。 ちゃんとスプラッシュスクリーンで24ドットのフォントが選ばれているようです。 ここで日本語ファイル(unicode)を訪れると句読点の位置は正しいのです(!)。 (face-font 'default nil ?。) をすると "-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0" が得られます。 その状況で (set-frame-font "Noto Sans CJK JP-12")を実行すると、フォントサイズが変わり(幅が狭くなる、高さは意外にもあまり変わらない。) そして(face-font 'default nil ?。) は次のフォントを返してます。 "-GOOG-Noto Sans CJK JP-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1" これから判断するに、私のXresourceの設定(.Xdefaults, .Xresource に入っている + ~/.emacsで起動中に行っている・ないしは行っていなかったこと)が大昔 のNOTOフォントの時にはうまく動作し(そもそもそのときにはNoto フォント ファイルをgoogleから落として自分で設定したかも)、それ以来 (a) apt-get install fonts-noto でフォント入れるようにした。 (b) Debian GNU/Linuxのバージョンアップをおこなった。 (c) emacs-25.x,-26.yに切り替えたときに それまでの設定(あるいは未設定)でたまたまうま くいってたものが壊れたということなのでしょうかね。 だんだん問題点の所在があきらかになりつつあり、かなりすっきりしてきまし た。いろいろ参考になります。ありがとうございました。 上記は私の.Xdefaults .Xresources をXの環境にマージしてません。私のリソー スをマージしている普段の状況でどうなるかは更に次に投稿します。 うーむ。間違えました。しまった上のはすでに自分で定義したXリソースがX環境にマージされていた状態での動作かな。 念のためにブートしなおして、Xを起動した状態でやってみると、 emacs -i --font fontset-24 はfontset-24 が定義されてないので、エラー。 emacs -i で起動すると、小さい14?(12?)のフォントで起動。 ここで日本語UNICODEファイルの句読点の位置はただしい。 (face-font 'default nil ?。) は ”-PfEd-HanaMinA-normal-normal-normal-*-15-*-*-*-d-0-iso10646-1 ”を戻す。 ここで(set-frame-font "Noto Sans CJK JP-12") を実行すると、ウィンドウが縦長になり、 句読点の位置は正しく、(face-font 'default nil ?。)は予想通り "-GOOG-Noto Sans CJK JP-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1" を戻す。 念のために、このままXを再起動して、私の.Xdefault, .Xresourcesをマージしてみます。 混乱してきたので、再度今夜落ち着いて挑戦してみます。 Noto フォントの人はだらだら書かないで結果だけ書いてくれりゃいいよ 参考なるかしらんけど張っとく (setq-default font-family-default "Noto Sans Mono CJK JP") (setq-default font-height 110) (setq-default font-weight 'bold) (setq-default line-spacing 0) (set-face-attribute 'default nil :font font-family-default :height font-height :weight font-weight) あと、下記でいじる M-x list-faces-display コントロールコード含んだファイルを開くと、コントロールコードは^@とか表示されるけど こういうファイルをバッファで表示されてるままテキストに変換するにはどうすればいい? 例えば文字コードが0だけ含まれているファイルは^@と表示されるけど、これを文字コード94(^)64(@)なテキストファイルにする感じ そういうのがあったような気がするけど忘れた 自己解決したから書いておく (text-char-description 0)とかすると"^@"と返ってくるからこれを使えば行ける しかしEmacsに不可能は無いな 普通の人間が考えてるような事は既に用意されている 他のエディタじゃこうはいかんだろう、知らんけど eww でググる時の文字化け対策って、どうするのが正解? 現状は自分で form 要素用意してるけど。 https://github.com/chuntaro/NTEmacs64 NTEmacsのIMEパッチ済みをwindwos10ニインストールしたのにIMEが使えない、、、 どうしたらいいんでしょうか? カタカナひらがなキーで使えた ほんとお前ら使えんな UNIX 板やで NTEmacs なんて知らんがなー ddskkがいいぞ ime捨てれてた。 日本語入力したあとbuffer切り替えとか楽になった。 C-x b の「b」が全角で誤爆してたのが、なくなって快適。 少し古い環境Debian(Jessie)でビルドしてるんですが、 emacs26.1/27.0.50とも--fg-daemonで起動するとsegmentation faultで落ちます。 古くからあるバグのようですが他の環境では動いてるんでしょうか? Warning: due to a long standing Gtk+ bug http://bugzilla.gnome.org/show_bug.cgi?id=85715 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Fatal error 11: Segmentation fault >>373 動いてる このバグってGentooのビルドシステムが寄越してくるメッセージのやつか それによると "This is no problem if you just use one display" だって WARN: configure Your version of GTK+ will have problems with closing open displays. This is no problem if you just use one display, but if you use more than one and close one of them Emacs may crash. See <https://bugzilla.gnome.org/show_bug.cgi?id=85715> ;. If you intend to use more than one display, then it is strongly recommended that you compile Emacs with the Athena/Lucid or the Motif toolkit instead. リモート接続した場合にも問題が起きるみたい 起動直後いきなりsegvるわけじゃないみたいだけど https://peace.5ch.net/test/read.cgi/unix/1429172451/80-112n > サーバ側でemacs --daemonでemacsを起動しておいて > remoteからsshで接続後emacsclient -cして作業し > emacsclientを終了後sshをexitすると > jessieにしてから抜け出せなくなりました ありがとうございます。マルチディスプレイでもなく、必ず即死で、 私の環境依存のようなので調べてみたところ、フォント設定のところで落ちていました。 具体的にはフォントセットにフォントを追加するところらしく、 initに次のような簡単な設定だけを記述しても落ちます。 (フォントの種類は関係ないと思います) (set-face-attribute 'default nil :family "Ricty Diminished" :height 120) (set-fontset-font nil 'unicode (font-spec :family "Migu 1M") nil 'append) >>376 ああ、それはgtkのバグ関係ない。emacs daemon fontとかでぐぐればなんかでてくる。 https://www.reddit.com/r/emacs/comments/6lxf9b/question_emacsclient_and_connection_hooks/ ここに書かれているように、daemonで起動するときは こんな風にafter-make-frame-functionsに引っかけておけばいいんですかね。 (if (display-graphic-p) (set up your font font-size) (add-hook 'after-make-frame-functions (lambda (frame) (when (display-graphic-p frame) (with-selected-frame frame (set up your font font-size)))))) とりあえず動いているようです。助かりました。 フォント設定に続いて、daemonで起動した場合のフレームサイズの設定も、 before-make-frame-hookに引っかけることで解決しましたが、 SKKのカーソルの色の変更だけがまだうまくいきません。 どうも無理みたいな気もするんですが、 成功している方がいらっしゃればご教唆ください。 普通に起動した場合は問題ないのですが、 先にdaemonで起動しておいて作成されたフレームでは、 default-frame-alistで設定した色のままです。 そちらの環境ではdaemonで起動しても影響はありませんか? わからんなdeamonなら ddskkが用意している設定変数かえて無理なら。 こっちは、GTK Emacs on archlinxでGUI環境か terminalでもno-window on tmux環境で普通に起動してる。 daemonで起動したフレームの設定を通常のフレームと比較してみたところ、 skk-cursor.elの中でccc-default-cursor-colorがnilで、 フレームのcursor-colorの設定を取得できていないようでした。 この値を直接設定してもうまく動かなかったので、 after-make-frame-functionsにccc-setupを設定するといいようでした。 daemonではbefore-make-frame-hookでdefault-frame-alistを設定しているので、 SKKのライブラリがロードされるタイミングでは、 作成されるフレームの設定を取得できないのかもしれません。 Spacemacsでもgitのブランチとかその辺りの表現は近代的なエディタに負けてるよな。 ブランチとかこんな風に表示できるとうれしいんだけど。 GUI部分の拡張とかがんばってる奴はいないのかな? https://cdn-ak.f.st-hatena.com/images/fotolife/t/takezoe/20170830/20170830101434.png >>384 ん?今時のVimはここまでモダンなUIになってんのか すげー GitKrakenなのでエディタではない。 ただ、やろうと思えばこれぐらいの表現ができるGUI機能は欲しい。 いつかEmacsもUIの選択肢としてWebブラウザの技術が なまじ何でもできるのはもう時代の流れには逆行してるんだろうし、 今後はやっぱり衰退して行くのは否めないんじゃないの? VimもEmacsに比べればずっと控え目な多機能だし。 何でも出来ることが時代に逆行してるとか意味不明 単にコンソールアプリが作りやすいってだけだろ Emacsの外で作ろうとすればcursesの知識とか必要になってかなり面倒 emacsとしてwebサーバーを内包してもいいんじゃないっすかね 俺もwebレベルのGUI表現ができて最強に強まったエディタが欲しいいいぃぃぃ! と思ったけど、それatomじゃんと気づいた。 >>397 Webサーバーのpackage自体は幾つもあるぞ ちゃんとWebサーバーになる >>399 なるのはわかるんだけどさ、もうちょっと連携の度合いを強めてもいいと思うんだよね。 UIの幅を広げる以外に何かあるのかわからんけどね。 サーバとレンダラ勘違いしてないかね 今xwidgetってどうなってんの? tramp on spacemacs でリモートの C++ ソースを開いたときに、git、flycheck との相性が悪い git はファイルを開いてからしばらく検知されず、flycheck はヘッダファイルを見つけられずに冒頭で一個だけエラーを出して沈黙 これは知られてることですか? 解決のための手がかりがあったら、キーワードだけでも教えていただけたら幸いです インデントについて相談です。 以下を両立させることって可能ですか? ;; この場合はカラムを揃えたまま (cond ((bolp) (abc)) ______((eolp) (xyz))) ;; 最初に改行した後は行頭にスペース2個入れたい (cond __((bolp) (abc)) __((eolp) (xyz))) >>404 (put 'cond 'lisp-indent-function 0) Mojaveに上げたら、 ttps://www.reddit.com/r/emacs/comments/9iu5vd/error_when_opening_up_emacs_and_wont_open_file/ これと同じ現象でEmacsが使えなくなったorz $ /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs -nw だと使える avy ってキー入力は少なくできるけど、思ったよりカーソルを移動するまでの速度は上がらなくて 何でだろうと考えたら自分の視力と認識速度が落ちてるっぽい という事はボケ防止になるのか うちの爺さんにも Emacs + avy 生活勧めてみるかな avyの思想に感動してC-uという一等地に割り当ててはや1年。 いまだにC-{npfb}を連打してる俺がいる。 >>408 macOS Mojave上で Emacs nextstep port であれば、 git HEADを使えば幸せになれると思う。 >>412 ちまちまカーソル移動しなくなると思って割り当ててみたものの、 単純なカーソル移動とavyのジャンプとどっちがキータイプが短くなるのか 移動の度に考えてしまってだめだ。 なんか常に頭に負荷がかかかる感じ。 RMSがリリースして42年しか経ってないからまだアラフォーだろう >>413 手数は少なくなるがストレスかかりますよね。ブラインドタッチのできる人には快適なのかもしれませんが。 結局、いじくったM-f M-bとC-j M-jを10文字進む戻るに割り当てて、大雑把な移動させてます >>413 >>417 どっちが早いか毎回悩むってのはありますねぇ。 「何かこんな昔話あったなー、狐だっけか」とか思ったり。 本ナントカ稲荷神社がお賽銭もっと欲しいからなのか名前変えたらしい 狐さん怒りそう 今表示されてる領域の最初と最後にいきたいんだけど何かそういうのってあるかな? スクロール固定してカーソルだけ動かしたいんだけど M-rで画面中央、そのままもう1回M-rで画面最上部 さらにもう1回M-rで画面最下部 一発で行きたいならこうかな (defun my-move-to-window-top (&optional bottom) "画面最上部へ" (interactive) (let ((this-scroll-margin (min (max 0 scroll-margin) (truncate (/ (window-body-height) 4.0))))) (move-to-window-line (if bottom (- -1 this-scroll-margin) this-scroll-margin)))) (defun my-move-to-window-bottom () "画面最下部へ" (interactive) (my-move-to-window-top t)) >>422 C-rじゃなかった…おっしゃる通りM-rでした (goto-char (window-start)) (goto-char (1- (window-end))) emacs 27 で動く promise.el 無いかのう。 25から26は特に動かないとか無かったけど、27はまた苦労する事になるのか。 おおうこんなにレスが…ありがとー M-rなんてあったんだね。一応いろいろ検索したんだけどなぁ 簡易スクリプト作ってくれた人もありがとー NEWS.23に書かれてるから、そこそこ前からそうだったみたい。 ** M-r is bound to the new `move-to-window-line-top-bottom'. This moves point to the window center, top and bottom on successive >>413 ワシの場合 (setq avy-keys (append "asdfghjkl;ASDFGHJLqwertyuopQERTUPzxcvbnm" nil)) こんな設定で自分が間違い少なく速くタッチタイピング出来るキーを選ぶと楽になった、ほぼホームポジションの列だけで済む 文字を読み間違えるのも捨てていった >>422 M-r は知らなかった、サンクス C-l で今いる行が上、中央、下になるのは 最近気づいたけど(昔は中央に来るだけだったよね) >>427 25から26でdefault-なんとか系が廃止され いろいろ動かなくなって苦労してます FlycheckってTRAMPではオフになるのがデフォルトの挙動なんだね リモート (TRAMP) 上でシンタックスチェックやりたいときってどうしたら良いの? そんなことやるべきでない? >>433 例えば default-truncate-lines と default-line-spacing が無いと困る場合は こんな風にしてるけど、 調べるの面倒なら無くなったの全部入れちゃえば良いんでない? (when (>= (string-to-number emacs-version) 26) (defvar default-truncate-lines) (defvar default-line-spacing) (setq default-truncate-lines (default-value 'truncate-lines) default-line-spacing (default-value 'line-spacing))) >>435 ありがとう default-*がなくなった背景しらなかった default-valueで各自もってこいっていう お作法になったのね C-なんとかとかM-なんとかの一覧ってみれる? describe-keyで個々のキーは確かめられるけど Emacs足かけ五年使ってるけどM-rなんて気づかなかったよ spacemacsとddskkが微妙に相性悪い。 skkがアスキーモードで spacemacsをノーマルモードにしてから挿入モードにすると、skkがかな入力モードになってしまう。 skk-viper-modeをtにすると、skkオンからノーマルモードにして挿入モードにするとskkがオフになってしまう。 なんとかならないか悩んでる。 spacemacsがノーマルモードになる時にskkの状態を取っておいて、挿入モードになるときに戻すようにしようと思ったのだが、skkの状態が取れない…… >>441 > skkがアスキーモードで spacemacsをノーマルモードにしてから挿入モードにすると、skkがかな入力モードになってしまう。 これなる? 再現できない ちなみに skk は手動の skk-mode でオンにしてる モード切替のあるVimなエディタで、ON/OFFやモード切替のあるddskkを使うってのは、聞いてるだけで脳みそが腐りそうだなぁ そうは言っても、日本語入力自体が否応なくモーダルだ shell-mode上のshellで実行したコマンドの出力を別なバッファに取り込む良い方法が あれば教えてください。具体的にはhistoryの出力を取り込みたいです。 historyはshellの内部コマンドなので、別シェルを起動するコマンドではだめでした。 >>447 M-x comint-redirect-send-command かな comint-redirect-send-command は試してみたんだけど、コマンドの出力が 途中からshellバッファに出てしまう。 history -w FILENAME して そのファイルをvisitするのではダメなの? historyは例なので。汎用的なコマンド作るために調査しているのです。 eshellを使えば簡単にバッファにリダイレクト出来るけどね 汎用的なコマンドなら、shell-modeじゃなく、shell-command で普通にバッファに出力すれば良いんじゃない? historyなどshellの内部コマンドがうまく動かないのです。また、shell-modeの shellで実行した状態を取得したいのです。shellで実行したコマンドの出力を lisp側で受け取りたい。comint-redirect-send-command は非常に惜しいのだけど なにか対策あるんですかね? eshellは興味があるけれども、今回はshell-modeで 動くようにしたいです。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる