GithubHelp home page GithubHelp logo

Comments (17)

tani avatar tani commented on June 25, 2024 2

ありがとうございます.こちらの設定で上手く動作しますね.

  (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にしておきたいです.
そうでない場合は,Closeして頂いても構いません.

この度は本当にありがとうございました.これでTUIでも快適なSKK生活を送ることが出来ます.

from ddskk.

conao3 avatar conao3 commented on June 25, 2024 1

それはマークに続いて文字が入力されているので、単体の文字になっていないからだと思います。
今はこちらの方を調査していて、多分これで出来る気がします。
https://ayatakesi.github.io/lispref/26.2/elisp-ja.html#Character-Display

from ddskk.

conao3 avatar conao3 commented on June 25, 2024 1

window-configuration-change-hook に(walk-windows)を引っかければ抜けはなくなる気がします。対症療法ですが。

from ddskk.

tkita avatar tkita commented on June 25, 2024 1

更新しておきました。

from ddskk.

conao3 avatar conao3 commented on June 25, 2024

いろんなところにハードコードされてしまっているので、マーカーをカスタマイズできるようにするのは難しそうです...

from ddskk.

tani avatar tani commented on June 25, 2024

やはり、そうですよね。何度かGrepで検索したとき、これらがハードコートされている雰囲気は感じていて一斉置換を試したのですが、あまりうまく出来ず悪戦苦闘しまして。その末の質問でした。

では、アプローチを変えてDDSKKーEmacs間でマーカーを置換するのではなく、Emacs−NCurses間で表示文字を変えるAPI等に心当たりはありませんでしょうか?

入力文字の場合はキーマップを上書きすることで、たとえば¥を\に置き換えることが出来ますよね。同じように出力文字を変えることは可能でしょうか?

from ddskk.

conao3 avatar conao3 commented on June 25, 2024
(setq prettify-symbols-alist
      '(
        ("lambda" . 955) ; λ
        ("->" . 8594)    ; →
        ("=>" . 8658)    ; ⇒
        ("map" . 8614)    ; ↦
        ("▼" . 35)
        ("▽" . 64)))
;;=> (("->" . 8594) ("=>" . 8658) ("map" . 8614) ("▼" . 35) ("▽" . 64))

(vconcat "#@")
;;=> [35 64]

心あたりあるのはこれです。試していたのですが、シンボルと認識されないようでうまくいきませんでした。
http://ergoemacs.org/emacs/emacs_pretty_lambda.html

from ddskk.

tani avatar tani commented on June 25, 2024

探していたものはまさにこれですね.今手元で実験したところ,

  • Control-yCommand-vで文字を貼り付けたときは,#や@に置換される
  • DDSKKで変換を指示したときは,置換されない

ということでした.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)

from ddskk.

tani avatar tani commented on June 25, 2024

素晴らしいです!私の方でも当該箇所を理解するよう努めさせていただきます.

from ddskk.

conao3 avatar conao3 commented on June 25, 2024

とりあえずこれで上手くいくことが確認できました。
ただ、現在のウィンドウだけなので、新しく開くウィンドウだと元に戻ってしまう。。

(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))

from ddskk.

tani avatar tani commented on June 25, 2024

今手元で試してみたところ,macOSのTerminal.appでも上手く動作することが確認できました.
ひとまず,skk-mode-hookにこれを設定することで,SKKを有効化するときにディスプレイテーブルを更新するようにしてみました.

(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が発火されない恐れがあるので,恒久的に有効化できる方法がほしいですね.

from ddskk.

tkita avatar tkita commented on June 25, 2024

etc/dot.skk に記載しておきました。

from ddskk.

tani avatar tani commented on June 25, 2024

@tkita 更新ありがとうございます.ところで私の意味したところでは,私が上げた2つの設定例を記述すると上手くいくということなので,お時間があるときに次のように更新していただければと思います.

  (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)
  (add-hook 'after-init-hook #'skk-set-display-table)

from ddskk.

tkita avatar tkita commented on June 25, 2024

手元で確認せずに投稿しますが(すみません)、skk-set-display-table() による設定は、▽|▼ を含む候補や文書を正しく表示するものでしょうか?(Sankaku SPC の際の候補「▽」表示にも影響をおよぼしませんか?)

さんかく /三角/参画/△/▽/▲/▼/∴/∵/贊畫;旧字/3角/

from ddskk.

tani avatar tani commented on June 25, 2024

実験してみました.ご指摘の通り影響を及ぼしますね.したがって,マーカーの変更というよりはマーカーで使用される文字の表示グリフの変更というのが正しいですね.背に腹は変えられないので,私としてはこの設定だけでも便利なのですが,本来ならば,ハードコートされている文字を逐一変数化して変更可能にすべき問題だと思います.

from ddskk.

tkita avatar tkita commented on June 25, 2024

@tani さま、実験ありがとうございます。skk-set-display-table() はその影響を十分に理解した上で使う必要ありますね。
etc/dot.skk の記載も、もうちょっと影響を書き加えておこうと思います。
なお、パッチ書いたことがあるのを思い出しました。こんなんでも良ければ取り込みたいと思います。
https://gist.github.com/tkita/1e9f8baf2939a5dedfc22cac99924ff7

from ddskk.

tani avatar tani commented on June 25, 2024

お手数をおかけしますが、そのように更新のほどよろしくお願いします。
パッチについては取り込まれた際には積極的にフィードバックさせていただきますね。

from ddskk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.