私は、切り詰められた行や折り返された行を示す醜いピクセルの矢印を、シンプルで上品なテキスト(おそらく\u2026
省略記号のような素敵なユニコード文字)で置き換えたいと思っています。これは可能ですか?フリンジビットマップをEmacsのテキストに置き換えることは可能ですか?
答えて
いいえ、そうではありません。フリンジ "ビットマップ"は実際にビットマップで、フリンジの上にオーバーレイされた0/1ビットのベクトルです。フリンジに任意のユニコード文字を直接レンダリングする方法はありません。
できることは、ユニコード文字を自分で0/1ビットマップにレンダリングすることです。まともな画像エディタ(Gimp、Photoshop、Pixelmator、Paint.netなど)であれば、これを行うことができます。次に、このビットマップをフリンジビットマップベクトルに変換します。フリンジビットマップのフォーマットはCustomizing Fringe Bitmapsに記載されています。
結局、あなたは(切り捨てライン用)left-arrow
、right-arrow
、left-curly-arrow
、およびright-curly-arrow
機能define-fringe-bitmap
を使用してビットマップ、(継続的なラインのために)置き換えるために、これらのビットマップのベクトルを使用することができます。
しかし、これは価値があるよりも面倒です。フリンジの幅は8ピクセルなので、美しいユニコード文字を8×8ビットマップに絞り込む必要があります。これは、サブピクセルレンダリングも、エイリアシングも、バイトコードレンダリングも、スクリーン上の文字を素晴らしいものにするものがないことを意味します。あなたが置き換えた矢と同じくらい醜いでしょう。
!それは多くの手間がかかりません、特にOPが省略記号を使用することを望んでいることが分かったと言われています。 2×2ピクセルのドットである8×8ビットマップで、3回繰り返され、1つの空白ピクセル(8ピクセル幅)で区切られます。私はデフォルトの矢印が醜い以上のものであることをOPに同意します。左矢印のビットマップを変更するか、独自のビットマップを追加するかはわかりますか? – TacticalCoder
@TacticalCoderフリンジビットマップは、[私がFlycheckで行った](https://github.com/lunaryorn/flycheck/blob/09a814a4a153e6be0571b5c270d0b46d7fe866e9/flycheck.el#L1821)のように 'define-fringe-bitmap'を呼び出すだけで再定義することができます)。そして、私を信じて、フリンジビットマップ*は面倒です。そこに行って、それをしてください。そしてここには利益がありません。あなたは8×8白黒ビットマップ上で偉大な芸術を行うことはできません、そして、2×2楕円はデフォルトの矢印よりも賢くはありません。これらのビットマップは非常に限定されているため、これらの矢印は醜いです。 – lunaryorn
フライチェックでやったことを見てみましょう。私はそれを試してみましょうので、あまりにも悪くない8×8ピクセルで "ピクセルアート"を見たことがあります。 ) – TacticalCoder
lunaryornの答えは正しいですが、おそらく初心者のEmacsユーザー(例えば、自分自身のようなプログラマーの愛好家)の手の届かないところです。
機能彼のライブラリフリンジヘルパーにニコライ・シューマッハが書いfringe-helper-convert
からhttps://github.com/nschum/fringe-helper.elは - 私のようなEmacsの愛好家は、Cソースで定義されている機能define-fringe-bitmap
(で使用されているベクトルを作成することが容易になりますEmacsのコード)。私はピクロウを選択しましたが、ユーザーは大文字のX
とピリオド.
を使用して、手紙の形を作成できます。ビットマップ画像は、バッファ内のテキストと同じ高さになるよう -
;; AUTHOR: Nikolaj Schumacher -- https://github.com/nschum/fringe-helper.el
(defun fringe-helper-convert (&rest strings)
"Convert STRINGS into a vector usable for `define-fringe-bitmap'.
Each string in STRINGS represents a line of the fringe bitmap.
Periods (.) are background-colored pixel; Xs are foreground-colored. The
fringe bitmap always is aligned to the right. If the fringe has half
width, only the left 4 pixels of an 8 pixel bitmap will be shown.
For example, the following code defines a diagonal line.
\(fringe-helper-convert
\"XX......\"
\"..XX....\"
\"....XX..\"
\"......XX\"\)"
(unless (cdr strings)
;; only one string, probably with newlines
(setq strings (split-string (car strings) "\n")))
(apply 'vector
(mapcar
(lambda (str)
(let ((num 0))
(dolist (c (string-to-list str))
(setq num (+ (* num 2) (if (eq c ?.) 0 1))))
num))
strings)))
次の例では、20個のピクセルのframe-char-height
を想定しています。レット・バウンド・スニペットは、ラインの最後の右裾にピルクロウ・シェイプを作成します(スニペットが評価された時点)。この例では、右フリンジの幅が少なくとも11であることが前提です。たとえば、(add-to-list 'default-frame-alist '(right-fringe . 11))
文字列に変換されたユニコード記号-(char-to-string ?\uE000)
はおそらく" "
で置き換えられます。
(define-fringe-bitmap 'pilcrow (fringe-helper-convert
"......."
"......."
"......."
"......."
"......."
".XXXXXX"
"XXXX.X."
"XXXX.X."
"XXXX.X."
".XXX.X."
"...X.X."
"...X.X."
"...X.X."
"...X.X."
"...X.X."
"...X.X."
"......."
"......."
"......."
"......."))
(let ((peol (point-at-eol)))
(overlay-put (make-overlay peol peol) 'after-string
(propertize (char-to-string ?\uE000) 'display
'(right-fringe pilcrow font-lock-keyword-face))))
- 1. mail()をPHPMailerに置き換えることは可能です
- 2. Emacsのテキストをリンクや参照に置き換えるには?
- 3. gemaps4railsのMarkerClustererをMarkerClustererPlusに置き換えることは可能ですか?
- 4. キャッシュ内のファイルをHTMLに置き換えることは可能ですか?
- 5. GLSLをCGで置き換えることは可能ですか?
- 6. Excel Powerquery-テーブルソース(リレーションシップ、ピボットテーブル)を「置き換える」ことは可能ですか?
- 7. sybaseの[[]と[and]]を[]]に置き換えることが可能です
- 8. PHPで式をテキストに置き換えることはできますか?
- 9. 可能な置き換えと括弧 "["
- 10. Xcodeのマスターブランチを現在の「機能ブランチ」に置き換えることは可能ですか?
- 11. Linuxカーネル機能をモジュールに置き換えることはできますか?
- 12. Searchlogicの実行可能な置き換えは何ですか?
- 13. Ember.js。 index.htmlをindex.jsp(例えば)で置き換えることは可能ですか?
- 14. C2DM通知は置き換え可能ですか?
- 15. XMLファイルからspryをロードしたテキストをsIFRテキストに置き換えることはできますか?
- 16. Rubyの "&"を "&"に置き換えるのは不可能なようですか?
- 17. ブートストラップでは要素を隠してアコーディオンに置き換えることは可能ですか?
- 18. Django + Emacs(TextMateの置き換え)
- 19. C#でString.Formatのインデックス番号をstringに置き換えることは可能ですか?
- 20. 複数のインターフェイスを実装するすべてのクラスを置き換えることは可能ですか?
- 21. htmlファイルに触れずにcssファイルでクラスを置き換えることは可能ですか?
- 22. あるディレクティブを別のディレクティブに置き換えることは可能ですか?
- 23. 単一のSQLクエリ(依存結果)でCTEとSELECTを置き換えることは可能ですか
- 24. ラケットモードのemacsでλと置き換えられる
- 25. JNI - クラスのインスタンス化を別のクラスに置き換えることは可能ですか?
- 26. TortoiseSVNのマージアルゴリズムを「より良い」ものに置き換えることは可能ですか?
- 27. HTMLテーブルのtd要素を別のtd要素に置き換えることは可能ですか?
- 28. sscanf引数を配列で置き換えることが可能
- 29. 置き換え可能なラインファイルモジュール
- 30. ディレクトリ内の複数のファイルのコードを置き換えることが可能
フリンジビットマップが設定されている 'fringe.el'を調べることができます。興味深い! –