-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
マーカー(▼と▽)の変更 #162
Comments
いろんなところにハードコードされてしまっているので、マーカーをカスタマイズできるようにするのは難しそうです... |
やはり、そうですよね。何度かGrepで検索したとき、これらがハードコートされている雰囲気は感じていて一斉置換を試したのですが、あまりうまく出来ず悪戦苦闘しまして。その末の質問でした。 では、アプローチを変えてDDSKKーEmacs間でマーカーを置換するのではなく、Emacs−NCurses間で表示文字を変えるAPI等に心当たりはありませんでしょうか? 入力文字の場合はキーマップを上書きすることで、たとえば¥を\に置き換えることが出来ますよね。同じように出力文字を変えることは可能でしょうか? |
心あたりあるのはこれです。試していたのですが、シンボルと認識されないようでうまくいきませんでした。 |
探していたものはまさにこれですね.今手元で実験したところ,
ということでした.Emacsの文字コード事情は詳しくないのですが,DDSKKは全般的にEUC-JPでエンコーディングされていますよね.ご提示頂いた設定例やControl-yやCommand-vで貼り付けた文字はUTF-8で統一されていたので上手く動作し,SKKはEUC-JPで文字を出力したため動作しなかったということは考えられませんでしょうか? 追記:実験してみましたが,うまくいきませんね.なぜシンボルと認識されないのでしょうか... $ cat prettiy-file-symbols-alist.el | nkf -e | sponge prettiy-file-symbols-alist.el
$ emacs # (load prettiy-file-symbols-alist.el) (prettify-symbols-mode) |
それはマークに続いて文字が入力されているので、単体の文字になっていないからだと思います。 |
素晴らしいです!私の方でも当該箇所を理解するよう努めさせていただきます. |
とりあえずこれで上手くいくことが確認できました。
|
今手元で試してみたところ,macOSのTerminal.appでも上手く動作することが確認できました. (defun skk-set-display-table ()
(let ((disptab (make-display-table)))
(aset disptab ?\▼ (vector (make-glyph-code ?# 'escape-glyph)))
(aset disptab ?\▽ (vector (make-glyph-code ?@ 'escape-glyph)))
(set-window-display-table (selected-window) disptab)))
(add-hook 'skk-mode-hook #'skk-set-display-table) しかし,そのような状況があるか分かりませんが,SKKモードを維持したままウィンドウを切り替える場合,hookが発火されない恐れがあるので,恒久的に有効化できる方法がほしいですね. |
|
ありがとうございます.こちらの設定で上手く動作しますね. (defun skk-set-display-table ()
(walk-windows
(lambda (w)
(let ((disptab (make-display-table)))
(aset disptab ?\▼ (vector (make-glyph-code ?# 'escape-glyph)))
(aset disptab ?\▽ (vector (make-glyph-code ?@ 'escape-glyph)))
(set-window-display-table w disptab)))))
(add-hook 'window-configuration-change-hook #'skk-set-display-table) もし,@conao3さんの方で正攻法が思いつきそうな場合は,しばらく,このIssueをOpenにしておきたいです. この度は本当にありがとうございました.これでTUIでも快適なSKK生活を送ることが出来ます. |
etc/dot.skk に記載しておきました。 |
@tkita 更新ありがとうございます.ところで私の意味したところでは,私が上げた2つの設定例を記述すると上手くいくということなので,お時間があるときに次のように更新していただければと思います.
|
更新しておきました。 |
手元で確認せずに投稿しますが(すみません)、skk-set-display-table() による設定は、▽|▼ を含む候補や文書を正しく表示するものでしょうか?(Sankaku SPC の際の候補「▽」表示にも影響をおよぼしませんか?) さんかく /三角/参画/△/▽/▲/▼/∴/∵/贊畫;旧字/3角/ |
実験してみました.ご指摘の通り影響を及ぼしますね.したがって,マーカーの変更というよりはマーカーで使用される文字の表示グリフの変更というのが正しいですね.背に腹は変えられないので,私としてはこの設定だけでも便利なのですが,本来ならば,ハードコートされている文字を逐一変数化して変更可能にすべき問題だと思います. |
@tani さま、実験ありがとうございます。skk-set-display-table() はその影響を十分に理解した上で使う必要ありますね。 |
お手数をおかけしますが、そのように更新のほどよろしくお願いします。 |
TUIのEmacsでは度々問題になる東アジア文字幅問題について質問です。最近の端末アプリケーションでは、東アジア文字幅対応が進み設定値の変更等で十分に対応できるようになりましたので、マーカー(▼と▽)をTUI環境で使用しても、ほとんどトラブルに見舞われることがなくなりました。しかし、未だに他のElispとの組合せによっては、東アジア文字幅を全角幅に合わせることで、レイアウトが大幅に崩れてることがあります。これらのマーカーを設定し直すことをできるようにしたいです。
度々DDSKK向けにパッチを書こうとローカル環境で挑戦しているのですが、なかなかうまく行かないので知恵をお借りしたいです。具体的には
と設定ファイルに記述すると、これらの文字でマーカーを代替するようにしたいです。よろしくお願いします。
The text was updated successfully, but these errors were encountered: