タグ付けされた質問 「text-properties」

2
オーバーレイとは何ですか?また、テキストプロパティとどのように違いますか?
手動の状態: プレゼンテーション機能のために、オーバーレイを使用して、画面上のバッファのテキストの外観を変更できます。 その名前から、既存のテキストの上に「レイヤー」を作成するために使用できることが示唆されていますが、上記の説明は、テキストの外観を変更することを示しているようです。 オーバーレイの具体的な使用とは何ですか?彼らは、テキストプロパティが提供しないことを何を提供しますか?ポップアップ、情報ボックスなど、バッファ内のテキストにテキストを上書きするために使用できますか?

1
文字列から装飾(テキストプロパティ)を削除する方法は?
「装飾文字列」とは #("foo" 0 4 (fontified t face font-lock-function-name-face)) ...「プレーン文字列」とは対照的に "foo" (Elispコードがバッファから文字列を直接読み取る場合、このように装飾されている可能性があります。) 装飾された文字列を単純なものに変換する最も簡単な方法は何ですか(すべての装飾を取り除くことによって)?

2
モードラインライターで画像を使用できますか?
私のモードラインは乱雑です。モード名の代わりに画像を表示することはできますか? ユニコード絵文字(Pythonの場合はor、Coqの場合はasなど)を使用できますが、Emacsの設定を使用する一部のマシンには適切なフォントが事前にインストールされていません(理想的には、この手法を私が書いているモードなので、ユーザーが適切なフォント設定を持つことは期待できません)。 :imageおもちゃのマイナーモードのモードラインライターに表示プロパティを追加しようとしましたが、モードラインには何も表示されませんでした。 (define-minor-mode my/test-mode "Test mode." :lighter (propertize " 🐓" 'display '(image :type imagemagick :file "/home/clement/.emacs.d/rooster.png")))

5
控えめにテキストのレンダリングを変える方法は?
音声認識で使用するためのemacs拡張機能を作成しています。特定の機能に関するヘルプを探しています。音声認識エンジン(Dragon)が一貫して認識できない単語もあります。何回訓練してもかまいませんが、特定の単語を認識するのは簡単ではありません。通常、トピックについて書いているときやコーディングしているときは、同じ単語を何度も何度も使用します。 そのため、オーバーレイを使用して、バッファ内の単語のレンダリング方法を変更するモードを作成しました。単語にランダムな文字を使用し、ランダムな色で下線を引き、その上にランダムな発音区別符号(アクセント、ウムラウトなど)を付けます。以下にスクリーンショットを示します(おそらく、マーク/下線を表示するにはズームする必要があります)。 次に、「purple p hair」と言うと、「a」の下に紫色の下線が付いた単語が検索されます。そのため、上記のスクリーンショットでは、emacsが「regexp-quote」と入力してしまうと言っています。 これにより、認識機能が一貫して認識に優れている有限の単語セットを使用して、画面上にある既に使用した単語を参照できます。 たまに衝突が発生する場合を除き、非常にうまく機能します。それを行うために(random)、衝突を回避するようにアルゴリズムを変更する代わりに、またはアルゴリズムに変更を割り当てることで、単語のmd5ハッシュからのバイトを使用するのと同じ方法で一貫して単語を参照することを学ぶことができます。私は6つの簡単に区別できる色(下線が1文字幅で1ピクセルの太さだけでは難しい)と3つの簡単に区別できる発音区別記号(互いに区別しやすく、上記の下線と混同しにくい)だけを見つけました線または下線と重なる)、上のソースの上部に表示されます。 衝突の頻度を減らすために、レンダリングを変更する方法がもっと必要です。理想的には、レンダリングの変更は次のようになります。 テキストの残りの部分から不快にならないでください。これにより、たとえば、inverse-videoプロパティを却下することになりました。 他の変更と簡単に混同しないでください。上線は、前の行の下線と間違えやすい。フォントサイズが非現実的に大きくない限り、多くの発音区別符号は似ています。 他の変更がある場所の空間的に近くにあります。今、目がターゲティングキャラクターを見つけると、すべての情報、マーカー、下線、文字がそこにあります。 ダイアクリティカルマークを正しくレンダリングする固定幅フォント(コーディングに必要)でうまく動作します(マークを正しくレンダリングするには、ConsolasからDejaVu Sans Monoに切り替える必要がありました) ラテン系のアルファベット文字に取り組みます。たとえば、アラビア語の結合マークがありますが、ラテンアルファベット文字では結合しません。 文字の色は変更しないでください。これは既に構文の強調表示に使用されているためです。 実際、emacs lispを使用してemacsで実行可能になります;) レンダリングを制御する特殊なUnicode文字が悪用されて、新しい可能性が開かれる可能性がありますか?または、より多くの色を簡単に区別できるように下線を太くする方法はありますか?または、Unicode以外の文字の上にマークをレンダリングできる他のあいまいなemacs機能がありますか?

1
Emacsの入力フィールド用のライブラリはありますか?
かなりの数のEmacsモードが(何かに似た)フォームを使用します。カスタマイズインターフェイスはその1つであり、メッセージモード(読み取り:ヘッダー部分)は別のモードです。それらはもっとたくさんありますが、残念ながらいつも似ているわけではありません。「フォーム」とは、ここでは、テキストを入力するように指定された読み取り専用の部分と場所を持つバッファを意味します。ボタンが含まれている場合と含まれていない場合があります([ OK ]ボタンのC-c C-c有無に関係なく、確認/コミットキーとして受け入れる必要があります)。 私は特にフィールドのオートコンプリートに興味があります(特に、指定されたセットからの値のリストを使用してフィールドを有効にする、たとえばコンマ区切り)。私の質問は、そのようなフォームを簡単に(「簡単に」、つまり再発明しないという意味で)作成できるEmacsライブラリがあるか、それともすべて自分でコーディングする必要があるか? (後者の場合にすべきことは、(1)バッファーの一部を読み取り専用に設定する、(2)特別なメジャーモードを準備して、たとえば「フィールド」TABをS-TAB切り替える、(3)オートコンプリートには、おそらくIciclesやHelmなどを使用してください。)

2
プロパティ化/オーバーレイするテキストがないウィンドウの場所に一時的なテキストがありますか?
Q:ウィンドウの画面の位置にテキストを表示せずに一時的にテキストを表示/オーバーレイするにはどうすればよいですか? 私はテキストプロパティとオーバーレイの背後にある基本的な考え方に精通しており(このスレッドも参照)、それらを何度か使用していますが、決してそれに慣れているわけではありません。私の限られた理解は、プロパティ化またはオーバーレイするにはテキストが必要であるということですが、テキストが含まれていないウィンドウのセクションをどのように使用するのか疑問に思っています。 次に例のスクリーンショットを示します。 スクリーンショットの赤いボックスの1つ(つまり、テキストの右側、またはバッファーの最後の行の下)に(一時的に)テキストを配置するにはどうすればよいでしょうか。

1
読み取り専用のテキストで始まるバッファの先頭にテキストを挿入しない
既存のEmacsパッケージを拡張していて、バッファーの一部を編集不可にしたい(読み取り専用)。実際、バッファの中央の1行だけを編集可能にしたいので、次のスニペットを使用してそれを実現しています。 (put-text-property (point-min) point-before-editable-text 'read-only t) ;; (put-text-property point-after-editable-text (point-max) 'read-only t) ただし、バッファの先頭にカーソルを置いて、目的の動作ではないテキストを挿入することはできます。 バッファの先頭での挿入を防ぐにはどうすればよいですか?

2
savehistのテキストプロパティを削除する
パッケージkill-ringを使用して保存しsavehistます。savehistテキストプロパティをそのままにしてキルリングを保存します。 残念ながら、これは問題です。 私はかなり大きなemacs設定を持っており、多くの強調表示を使用しています。これが私の最初の要素ですkill-ring #("avehist-printable value)\n (prin1 `(setq ,symbol ',value) (current-buffer))\n (insert ?\\n))))))\n ;; If autosaving, avoid writing if nothing has changed since the\n ;; last write." 0 23 (fontified t wrap-prefix #(" " 0 5 (fontified t))) 23 24 (fontified t face (rainbow-delimiters-depth-8-face) wrap-prefix #(" " 0 5 (fontified t))) …

1
AucTeXは上付き文字をどのように表示しますか?
latex-mode上付き文字と下付き文字が表示されます。それらはサイズが縮小されているだけでなく、それぞれ現在のラインと比較して少し上下しています。 Q:行のテキストの一部を上付き文字のようにするにはどうすればよいですか? (heightfaceプロパティを使用して)テキストを小さくする方法は知っていますが、上げる方法がわかりません。私はを調査しようとしましたがlatex-mode、見つけることができたのfont-latex-superscript-faceは、小さな height資産(調達の原因とはならない)があったことだけでした。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.