問題タブ [cperl-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - cperl-mode を emacs の Perl コードに関連付ける
CPerl モードを emacs の Perl ソース ファイルに関連付けようとしています (CentOS 6 では 23.1.1)。
.emacs に次の行を含めると
Perl ソース ファイルが開かれると、CPerl モードがロードされます。
ただし、次の行は、ti が動作するはずのように見えますが、代わりに Perl モードが読み込まれます。
エラー メッセージはありません。CPerl モードの代わりに Perl モードをロードするだけです。
私が尋ねている理由は、cperl-set-style (emacs メニューから動作しますが、perl-mode にエイリアスされているときに CPerl モードへのフックとして追加した場合は機能しません) を使用していくつかの問題が発生したためです。 CPerl モードを直接読み込んでみたかった。
インデント スタイルを CPerl モードへのフックとして設定するために .emacs で使用しているステートメントは次のとおりです。
CPerl モードがロードされていない場合 (auto-mode-alist アプローチを使用している場合)、これは明らかに効果がなく、Perl モードにエイリアシングして CPerl モードをロードしている場合は正しく動作しません (GNU インデント スタイルを使用しているようです)。
emacs - Emacs の使用cperl モードの qq 内部
SQL リクエストを Perl に保存するためにqq関数を使用しています。このような:
しかし、Emacs の cperl-mode では、qq 内でタブを使用することができず、作業が遅くなります。どうすれば修正できますか?
c - 相互に排他的な定義を文書化する
私はCで小さなプログラムを書いています。他の人が詳細を変更できるように文書化したいです。#define
一部の操作を有効にするかどうかを指定して config.h ファイルを作成しました。相互に排他的なものもあれば、そうでないものもあります。
相互に排他的でない例:
相互に排他的な例:
これまで、使用したくない機能を文書化することで、コンパイルするプログラムの構成を選択していました。たとえば、次のようになります。
COMPACT 実行可能ファイルをビルドします。
コメントアウトされた機能のドキュメントを作成するにはどうすればよいですか?
私は試した:
なしでコンパイルしましたUSE_C
が、doxygen が解析しなかったため、明らかにドキュメントを失いました。#define
defineの正しい使用方法を誤解した場合、どのようにフローを書き直しますか?
perl - Emacs の perl のシンタックス ハイライトが壊れています。修正はありますか?
私は perl プログラマーであり、新しい emacs ユーザーです。私は Windows で、perl の編集に cperl-mode を使用しています。Emacs のバージョンは 24.2.1 です。サンプルコードを含むスクリーンショットを次に示します。
(出典: breqwas.net )
- 明らかなバグ:コメント内の ( a => "b" ) スタイル リストで、配列、ハッシュ、および引用符で囲まれていないリテラル値を強調表示します
- もう 1 つのバグ: デフォルトではない引用符が原因で、正規表現の最初の単語が配列として強調表示されます。
- バグではありませんが、奇妙に見えます: 配列とハッシュが使用されているときはいつでも強調表示されますが (コメント内であっても)、スカラーは宣言されている場合にのみ強調表示されます
- バグではありませんが、奇妙に見えます: 関数と同じ話: 宣言されたときに強調表示され、呼び出されたときではありません
- バグではありませんが、奇妙に見えます。「print」、「say」、および「system」の色が異なるのはなぜですか?
私は続けることができましたが、それが「壊れた」という言葉をうまく説明していることを願っています.
それから、魔法の Cu Cx = キーの組み合わせを学びました。これは、カーソルの下にあるテキストのテキスト プロパティなどを表示し、独自のより良い配色スキームを作成することを望んでいました。この時点で、それはさらに意味がなくなり始めました。
「print」にはcperl-nonoverridable-face があります。"die" にはfont-lock-keyword-face があります。一方、どちらも関数であり、オーバーライドできます (多くの場合オーバーライドされます)。「システム」にはfont-lock-type-face があります。なんで?関数宣言にはfont-lock-function-name-faceがあります - それは問題ありませんが、「use」の引数もそうです。なんで?関数呼び出しとスカラーには face プロパティがまったくないため、強調表示できません。なんで?Etc, Etc. 繰り返しますが、私は続けることができました。
それをすべて修正する方法はありますか?語彙単位を他のフォントフェイスに再マップできる設定、または構文の強調表示のクレイジーさを軽減する他の方法はありますか?
「perl は解析できない」という話を避けるために、移行元のエディターのスクリーンショットを示します。コードはまったく同じです: http://breqwas.net/dropbox/perlsyn_pn.png。はるかに合理的に見えます。
Upd:今(ここでこの質問をしてから3週間後)までに、私は治療法を見つけられませんでした. 私が知っている emacs を使用するすべての perl プログラマーは、これらの問題を無視しています。emacs 用のより優れた perl ハイライターは存在しないようです。cperl-mode docs を読むと、いくつかの説明が得られます (さまざまな要素の顔の選択は、今ではそれほどクレイジーではないようです) が、答えはありません。私は cperl-mode メンテナにこれらの質問とさらに掘り下げたメールを書きましたが、返事がありませんでした。
はい、その通りです。emacs コミュニティは、perl が存在する 25 年間で、優れた perl 構文を強調表示することができなかったようです。それは悲しい話です。
emacs - perl モードの emacs で自動インデントを無効にする
Emacs を使用するときは、自動インデントをオフにしてカスタム インデント スキームを使用します (前の行のインデントを保持し、スペースのみを使用します)。
cモードではC-c C-l
、電気モードをオフにするだけでした。
しかし、perl モードでは、同じことを達成する方法がわかりません。
http://mirror.fraunhofer.de/CPAN/misc/emacs/perl-mode.elを見てください。私は見えます
だから私は試しM-x set-variable perl-mode-map
ましたが、私は得るだけです[No match]
。
これは私の perl-mode.el がプリコンパイルされているためですか? 試してみるとM-x find-function perl-mode
、 perl-mode.el が見つからないと文句を言います。ただし、perl-mode.elc ファイルはあります。
cygwin のコンソールから emacs を実行しています。
emacs - Emacs: perl モードの yasnippet で不要なタブを取り除く方法
サブを作成するために、perlモードで次のyasnippetがあります。
しかし、Emacs がそれを展開すると、不要なタブが生成されます。
スニペット定義にこのタブがないため、cperl-mode によって追加されたようです (perl-mode yasnippets は cperl-mode でアクティブ化されます)。それを取り除く方法は?
emacs - Emacs で font-lock キーワードを追加/削除するための構文
私が Emacs で行っていることのほとんどは perl で行っていcperl-mode
ます。1 つの主な煩わしさは、単純なmy $whatever
紹介がプロパティfont-lock-keyword-face
に与えられていることです。これにより、キーワードpopの利点が失われます。私は elisp を初めて使用するので、 からキーワードを追加または削除して遊んでみましたfont-lock
。EmacsWikiとGNUの両方が構文を提供していますが、正規表現は私を夢中にさせています。初期化で泣き言を言わないように、次のようにしました。
(font-lock-remove-keywords 'cperl-mode '(("\\<\\(my\\)")))
そして、それは何もしません。\\<\\(my\\)
ビットはスクラッチで動作するのでre-builder
、ここで構文の問題があると思います。キーワードを追加および削除するにはどうすればよいですか?
perl - Emacs cperl - 定数ブロックのインデント
GNU Emacs 24.3.50.2 に基づいて Aquamacs 3.0a を実行しています。cperl バージョンは 6.2 です。Perl 定数ブロックを編集すると、不要な余分なインデントが表示されます:-
私が欲しいのはこれです: -
問題は、ブロック内にあり、前の行の末尾にセミコロンがないため、cperl-continued-statement-offset が追加されているようです。
「括弧」ルールを使用して定数ブロックをインデントするようにcperlに指示する方法はありますか? cperl-indent-parens-as-block を微調整してみましたが、役に立ちませんでした。私は驚かない、私は cperl-indent-constant-block-as-parens と呼ばれる変数を探すべきだと思う:-)
emacs - .emacs の cperl-mode-hook で複数のアクションを定義できるようにするにはどうすればよいですか?
これは私の.emacsの抜粋です
ケース 1: 以下の構成では、perl 補完モードが完全に機能します。
ケース 2: 以下の構成では、cperl モードで Cc Cc を実行すると、perl コンパイルが正常に開始されます。
ケース 3: ただし、以下のコードでは、フック関数 (my-cperl-hook-func) のすべての行のコメントを解除することにより、perl-completion と Cc Cc to launch perl compilattion の両方を有効にすると、その perl- で終了します。 Cc Cc はまったく機能しませんが、補完は正常に機能します (emacs は Cc Cc が未定義であると言います)。
cperl-mode-hook で両方のアクションを有効にするにはどうすればよいですか?
perl - Emacs cperl モード: "if" などの挿入を無効にする
私はしばらくの間、Emacs で cperl-mode を使用してきました。新しいシステムでは、問題のある動作が発生しています。「if」などを入力すると、Emacs はそれを本格的なステートメントに展開するため、自動的に
これは本当に気が散ります。cperl-electric-keywords を nil に設定しても、この動作は変わりません。私はすでにcperl-hairyをnilに設定しています。
ここで Perl Monks でこれについての議論があったようですhttp://www.perlmonks.org/?node_id=864654、そこで提案されているように、 cperl-toggle-abbrev を言うか、Perl メニューを使用すると機能します - > トグル -> エレクトリック キーワード。しかし、この動作を永続的にしたいのですが、.emacs に (setq cperl-electric-keywords nil) を入れてもうまくいきません。
これを処理するために .emacs を変更するにはどうすればよいですか?