タグ付けされた質問 「major-mode」

現在のバッファーでのEmacsの編集動作を決定するモード。モード行には、通常、括弧内に現在のメジャーモードの名前が表示されます。

2
拡張子のないファイルのモードを記憶する
拡張子のない多くのファイルを編集し始めましたが、まだメジャーモード形式です。 私はチームで唯一のEmacsユーザーであり、私のエディターが特別なものを必要としていることを痛々しく明白にしたくありません。コードベースの変更は避けたいです。 ファイル名を変更できません 特別なEmacsコメントを使用できない Emacsに、手動でファイルを最後に(たとえばと言ってM-x conf-mode)置いたモードを記憶し、再度アクセスしたときにそのモードを自動的にアクティブにしてほしいと思います。 savehist-mode永続化の処理に使用します。 簡単にできますか?
10 major-mode 

2
なぜメジャーモードは単に顔を検査しないのですか?
メジャーモードを作成する場合、「文字列内のポイントはどこにあるのか?」「コメントにポイントがありますか?」 ほとんどの主要なモードは、プログラミング言語を解析しようとするようです。例えば: python-syntax-content 呼び出し syntax-ppss haskell-fill-paragraph呼び出しsyntax-ppssとre-search-forward c-in-comment-line-prefix-p ポイントを移動して呼び出します looking-at sp-point-in-comment呼び出しますsyntax-ppssが、コメント区切りにあるかどうかもチェックします ただし、これが機能しない場合もあります。org-modeバッファでは、ソースブロック内のコメントはこれらのアプローチでは正しく検出されません。 バッファはすでにハイライトされたコメントを表示しているので、それも無意味に見えます。 代わりに、ポイントで面を単に検査することができます: (defun wh--get-faces (pos) "Get all the font faces at POS." (remq nil (list (get-char-property pos 'read-face-name) (get-char-property pos 'face) (plist-get (text-properties-at pos) 'face)))) (defun wh-string-p (pos) "Return non-nil if POS is inside a string." (memq 'font-lock-string-face (wh--get-faces …

4
古いemacsenをサポートしながら、prog-modeから継承するにはどうすればよいですか?
プログラミング言語のメジャーモードを書いていますが、古いEmacsバージョンをサポートしたいと考えています。prog-mode比較的新しいです。prog-mode定義されている場合は継承したいのですが、それ以外の場合は賢明なことを行います。 最善のアプローチは何ですか?私がすべきdefalias prog-mode古いのEmacsen上、または、彼らは同じことを行う場合には、他のモードと干渉するのだろうか?

1
*コンパイル*バッファに制御文字が表示されるのはなぜですか?
*compilation*Centos 5およびCentos 6でC ++アプリケーションをビルドするためにバッファーを使用しています。バッファーにはビルドが表示され、ビルドの一部であるファイルへの参照が含まれています。ただし、^[出力に表示されるような制御文字が表示され、読みづらく、出力でクリックするとemacsが破損したファイル名を取得します。これらの文字は、コンパイラの出力でのある種のカラーリングまたはその他の注釈であると思いますが、どこから来ているのかわかりません。次に出力例を示します。 cc -c -g -I../machind -I. -DRELEASE_VERSION -g -O2 -m64 -D__BITS64 -pipe -DARCH_64 -DARCH_INTEL -DARCH_X86 -DARCH_X86_64 -DOS_LINUX -pthread -DLM_INTERNAL -DFLEXLM_KITBUILD -DFLEX_STATIC -DRELEASE_VERSION -DGPLATFORM=\\"x64_lsb\\" -DLINUX -DLSB3_0 -D__FD_SETSIZE=65535 -DGLIBC -DLINUX64 -DAMD64 -DREDHAT -DREL -DRHLINUX64 -DPLATFORM_AMD64_RHLINUX -DNO_ACTIVATION_SUPPORT ../machind/lmcrypt.c ^[[01m^[[K../machind/lmcrypt.c:^[[m^[[K In function ^[[01m^[[Kmain^[[m^[[K : ^[[01m^[[K../machind/lmcrypt.c:156:47:^[[m^[[K ^[[01;35m^[[Kwarning: ^[[m^[[Kcast to pointer from integer …

3
emacsを「nothing」モード( `fundamental-mode`)で起動する方法
emacs test.shEmacsと入力すると、Shell-scriptモードにするように要求されます。もう一度ファイルを編集したいと思ったときhelp.txt、Emacsは私をTextモードにします。しかし、特に他のソースからEmacsに大量の貼り付けを行っている場合は特に、これを望まないことがあります。 Emacsを「何もない」モードで起動するにはどうすればよいですか?特別なインデントや間隔などはありません。Emacsは、入力された文字をそのまま受け取ります。 更新:ここに例があります。次のテキストをクリップボードにコピーし、emacsを(基本モードでも)開いて貼り付けます。 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="FARM20190311T2248" Name="https://www.example.com/" entityID="https://www.example.com/" validUntil="2020-03-11T22:48:12Z"><ds:Signature> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> Emacs は(基本モードでもを使用して-q)間隔をこれに変更することを主張します: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="FARM20190311T2248" Name="https://www.example.com/" entityID="https://www.example.com/" validUntil="2020-03-11T22:48:12Z"><ds:Signature> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> viまたはで同じ実験を試してくださいnano。これらのプログラム(少なくとも私のコンピューターでは)は間隔を変更しません。 DebianストレッチでGNU Emacs 24.5.1を使用しています。


2
ファイルを開かずにファイルのビューを提供するメジャーモードを作成する方法
netCDFファイルを検査するためのメジャーモードを記述したいと思います。これらは、サイズが数GBのバイナリファイルです。だから私はそれらをemacsで開けたくありません。 私が考えている相互作用は次のとおりです。 ユーザーがemacsの他のファイルと同様にnetCDFファイルを開きます。 コマンドラインプログラム(ncdump -h)がファイルに対して実行され、出力はemacsによって解釈されます。 問題は、emacsが実際にファイルを開くのを止める方法がないように見えることです。

2
簡単な「関数の完了」関数をどのように記述すればよいですか?
私はマジックを編集するための主要なモード、ザ・ギャザリングのデッキを書くことを検討しています。 そのほとんどは簡単なようですが、1つ質問があります。約15,000枚のユニークなマジックカード(ユニークな名前のカード)が利用可能です。ポイント完了関数を書くことで、それらに対して完了できるようにしたいと思います。私は、モードのベースとなる一連の単語に対して完了するだけで、これまで何も見つからなかったcapf関数の簡単で基本的な例を探していました。これを始めるための良い例を知っていますか?そして、あなたはそれが良いパフォーマンスを得るのは簡単だと思いますか、または私は自分のデータ構造を書かなければなりませんか(おそらく私はトライのように考えています)。 明らかに、新しいカードなどと同期する方法を見つける必要があります。将来的には、カード名だけでなく他の特性でカードを検索できるようになるかもしれませんが、それでも待つことができます。

1
ECMAScript 6で使用するモードはどれですか?
より最近のecmascriptのための構文ハイライト(そしておそらくそれ以上ですが、これは私が望んでいる最小のものです)があるモードはそこにありますか?テンプレート文字列とジェネレーター関数をサポートしているものに特に興味があります。 これは正しくレンダリングされるはずです: co(function*(){ var a = yield request(`some.domain/${variable}`) return a; }

3
基本モードでマイナーモードを自動的に有効にする
設計上、fundamental-mode他の主要なモードがこのモードから派生することになっているため、は必要最低限​​のものです。 情報ページから(elisp) Major Modes、私たちは持っています: これは、基本モードのメジャーモードコマンドです。他のモードコマンドとは異なり、このモードをカスタマイズする必要がないため、モードフックは実行されません(*メジャーモードの規則::に注意)。 そのため、 ありませんfundamental-mode-hook。 また、私のmy-minor-mode主要なモードのバッファでのみ有効になりませんが(global-my-minor-mode 1)、私の設定にはあります。 以下は機能しますが、手動で入力した場合のみですM-x fundamental-mode: (add-hook 'after-change-major-mode-hook #'my-minor-mode) 以下の場合、fundamental-modeデフォルトでバッファ(* abcd *)が作成されるので役に立ちません。 (with-current-buffer (get-buffer-create "*abcd*") (insert "Hello world")) なぜマイナーモードを有効にしたいのfundamental-modeですか? マイナーモードマップにカスタムキーバインディングを保持したい。このマイナーモードをグローバルに有効化しています(ただし、fundamental-modeバッファーでのみ有効化されません)。 これが、この質問をここで行うようにした使用例です。M-x esup(esupパッケージ)を実行*esup-log*するfundamental-modeと、メジャーモードとしてバッファを作成します。しかし、マイナーモードを手動で有効にする必要があるたびに、便利なバインディングを使用します。 my-minor-mode本当にグローバルな方法で実現したいのfundamental-modeか、そうでないのか。 更新1: これがマイナーモードの定義ですmodi-mode。 アップデート2: @npostavsのコメントに基づいて、マイナーモードmodi-modeとの違いを確認しoverride-global-modeましたuse-package/bind-key.el。そして、それは私のモードのINIT値があることが判明nilしてのことoverride-global-modeIS t。 モードの初期値をに変更するtと、基本モードバッファーでも有効になります!しかし、行為は(global-modi-mode 1)同じ結果で終わるわけではありません。変ですか?おそらくバグですか?

2
特定のメジャーモードでのみセマンティックモードをアクティブにする方法は?
この質問はよく見ました。しかし、どの返信も私の問題を修正しませんでした。マイナーモードは他のモードのままです。 これまでのところ、私は試しました: (use-package stickyfunc-enhance :config ;; (add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode) ;; (defun turn-on-semantic () (semantic-mode 1) (require 'stickyfunc-enhance)) ;; (add-hook 'python-mode-hook 'turn-on-semantic) (add-hook 'python-mode-hook (lambda () (add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode) (semantic-mode 1) (require 'stickyfunc-enhance)))) これらの2つのアプローチに関する私の問題semantic-modeは、Pythonバッファーにアクセスした後は、すべての主要モードで機能することです。 semantic-mode他のすべてのモードでどのようにオフにできますか?手動でオフにする必要がありprog-mode-hookますか? kaushalmodiの解決策を試す: (use-package stickyfunc-enhance :init (add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode) :config (defun me/enable-semantic-maybe () "Maybe enable `semantic-mode'." (if (derived-mode-p …

2
ファイルごとにバッファを読み取り専用にする
私-*- mode: read-only-mode -*-はコメント内に何かを設定できることを知っており、Emacsは対応するファイルを読み取り専用として開きます。私の問題は、そのような行を含むファイルをorg-modeメジャーモードで引き続き読みたいということです。Emacsはこれらのファイルをで開きますfundamental-mode。 Emacsにファイルを読み取り専用で開き、正しいメジャーモードを使用させるにはどうすればよいですか?

1
メジャーモードの単純な構文テーブルを作成するにはどうすればよいですか?
構文テーブルのしくみを理解しようとしていますが、最小限のメジャーモードでは何も強調されません。 私は次のelispを書きました。 (defconst my-yaml-mode-syntax-table (let ((table (make-syntax-table))) (modify-syntax-entry ?# "<" table) (modify-syntax-entry ?\n ">" table) table) "Syntax table for `my-yaml-mode'.") (define-derived-mode my-yaml-mode fundamental-mode "My YAML" "testing" :syntax-table my-yaml-mode-syntax-table) ただし、ファイルが与えられた場合: # foo # bar baz でメジャーモードをアクティブにしてM-x my-yaml-modeも、強調表示されません。C-u C-x =は、面が適用されていないことを示しています。

4
特定のメジャーモードによって排他的に提供されるすべての関数のリストを取得する方法
この質問はhttps://stackoverflow.com/q/605785/に触発されています。ことでM-x describe-function <TAB>、私はemacsのが現在の状態で使用可能なすべての対話型またはnonintractive関数のリストを取得することができます。特定のモード(例えば、latex-mode)がアクティブ化されている場合、latex-modeで使用可能な機能もリストされるため、より長いリストが表示されます。 私の質問は、特定のモード(たとえば、latexモード)で排他的に使用できるすべての関数のリストを取得する方法ですか?つまり、そのモードでは提供されない他のすべての機能を除外します。上記のリンクのように、関数の短い説明を提供することも便利です。

1
Lispプログラムはprogモードとlispモードの両方にありますか?
読むと(emacs) Program Modes: プログラミング言語モードに入ると、フック変数prog-mode-hookで指定されたカスタムLisp関数が実行され、続いてモード自体のモードフックで指定された関数が実行されます(メジャーモードを参照)。たとえば、Cモードに入るprog-mode-hookと、フックとが実行されますc-mode-hook。フックについては、フックを参照してください。 Cプログラミングがprog-modeandの下で実行されているということc-modeですか? あるprog-modeすべてのプログラムのための普遍的なモードは? さらに、prog-modeがのようなメジャーモードであることを意味しますc-mode。 それにもかかわらず: 主要なモードは相互に排他的です。各バッファには、常に1つのメジャーモードしかありません。 (から(emacs) Modes) prog-modeここで何をしますか、それはマイナーモードですが、メジャーモード部分で広く述べられていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.