タグ付けされた質問 「indentation」

インデントは、ブロック、クロージャー、条件、その他の構成要素を示すことによってコードを整理するために使用されます。これにより、コードが読みやすくなり、一部の言語では制御フローの処理に使用されます。

2
新しい行の自動インデントを無効にする方法は?
最近、emacsをバージョン24.4.1にアップグレードしましたが、新しい行のインデントで何かが変更されました。ヒットするenterと、カーソルが存在するポイントで「裸の」改行文字だけが期待されます。特に、行の途中にある場合、その行は分割され、スペースを含む文字は削除されません。残念ながら、そうではありません。 以下に例を示します。 a b 直後にカーソルを置いてaヒットするenterと、次のようになります。 a b あるべき a b 私は少しグーグルで調べましたが、おそらくこれは自動インデントによるものです。どうすれば無効にできますか?それが重要な場合は、テキストモードまたは基本モードについて説明しています。

5
プロジェクトごとに異なるインデントスタイル
独自のインデントスタイルを持つさまざまなCプロジェクトに取り組んでいます。上流のプロジェクトツリーを.dir-locals.elファイルで汚染することなく、Emacsでプロジェクトごとのインデント設定を行うにはどうすればよいですか?ディスク上のパスを使用してプロジェクトを一致させたい。

5
コードをきれいにフォーマットする方法(改行の自動挿入、インデントなど)
私は使用してspacemacsいますが、おそらくここで必要なのはemacsの知識です。 単一の長い行を持つJSONファイルがあります。json.org/ exampleからのこのJSONを例にとります。 {"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}} emacsでこれを再インデントしたいと思います。つまり、行の左端の文字を適切なインデントレベルに変更せずに、行をいくつかの行に分割します。 spacemacs/indent-region-or-buffer(SPC j =)を使用すると、テキストはまったく変更されません。 emacsにこの長い行を実際に中断して、このような何かを得るために再インデントするように依頼するにはどうすればよいでしょうか。 {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] …

2
明確なSMIEドキュメントはありますか?
あらゆる種類のSMIEインデントルール/文法/何かを機能させるために、今では何時間も費やしています。 それが実際にどのように機能するかについてのドキュメント付きの小さな、おもちゃまたはスケルトンSMIEベースのモードの例、またはそれを使用する方法についての議論はどこにありますか?たとえば、式をセミコロンで終わるトークンの文字列として定義し、ブロックを角かっこ以外の式として定義します。本当に、本当に簡単ですか? 特定の質問:smie-config-show-indentを使用すると、90%の時間で ':list-intro ""-> nil'という応答が返されます。式または式のリストの定義に基づいたリストイントロとは何ですか?なぜnilと言っても、次の行をインデントするのですか?どうすれば変更できますか? 第二に:私の文法と私のスミルールの間に何か関係はありますか?それらは両方ともsmie-setupに渡されるためだと思いますが、たとえば、ブロックを識別する文法に基づいて、「 'block'が表示されたら、内容をインデント」と言う方法が見つかりません。 。 第三に、SMIEには多くのルールが「組み込まれている」ようです。開始するだけで、ブラケット、ブレース、括弧などの一般的な処理が可能になります。これらのルールを確認または変更する方法はありますか?それとも、構文テーブルがこれをすべて行っており、SMIEが文字通りまったく何もしていないということです(私は疑い始めています)。 最後に、SMIEをデバッグしようとすると、「編集、評価モードバッファー、他のバッファーのサンプルコードに移動、MX <my mode>、テスト」サイクルを実行しようとしますが、各回でルールがクリアされないようです前のサイクル。define-derived-modeがクリーンシートから開始されることをどのようにして確認できますか?私はそこに(kill-all-local-variables)を持っていますが、それは十分ではないと思われ、emacsを閉じる必要があります。 ハイライト(font-lock-defaultsを使用しているため、実際にはSMIEでさえない)を除いて、漠然と動作するものすら何もないので、私が持っているものの例を投稿していません。本当の赤ちゃんのステップが必要です。
18 indentation  smie 

4
インデントされたブロックの前にコードを追加または削除するときに、elispコードを自動的に再インデントする
次のようなelispコードがあるとします。 (+ 2 3▮(+ 3 4)) シンボルを追加または削除したときに、カーソルの後にsexpを自動的に再インデントする方法はありますか? を押した後SPC 4 SPC、私は自動的に取得します: (+ 2 3 4 ▮(+ 3 4)) 私は呼び出すことで、このマニュアルを行うことができますmark-sexpが続きますindent-region。これを行うより良い方法はありますか?

2
すべての自動インデントを完全に無効にします
Emacsですべての自動インデントを完全に無効にするにはどうすればよいですか?少なくとも基本モードでは無効にする必要がありますが、現在のセッションでグローバルに無効にすることで問題ありません。 重複することを宣言する前に、この質問の残りを読んでください。 私が見つけた他のすべての答えは、インデントのはるかにターゲットを絞った無効化です。セッション全体のすべての自動インデントを完全に無効にします。 に設定electric-layout-modeしnilても機能しません。 詳細 Windows ASCIIテキストエディターで大きなGitコミットメッセージを作成したいことがあります。これらのメッセージには、多くの場合、箇条書きリスト、コードブロック、またはソースドキュメントの正確な書式設定が意味のあるその他のものが含まれています。私のコードベースはLinux上にあり、テキストのみのSSHクライアントを使用してボックスに接続します。Gitがコミットメッセージを編集するためにEmacsに入ると、ソースコミットメッセージをWindowsクリップボードにコピーし、Windows貼り付けコマンドを使用して貼り付けたいと思います。Emacsの観点からは、Windowsテキストファイルで見つかったものを入力しています。残念ながら、Emacsがインデントされた行を見ると、独自の自動インデントが追加されるので、バッファーの左端に沿ってこの巨大な空白の三角形を取得します。 GNU Emacs 24.3.1を使用しています。 回避策 私の現在の回避策は、LinuxホストによってマウントされているファイルシステムにWindowsテキストファイルを転送し、そのファイルをEmacsにロードしてから、killとyankを使用してコンテンツを転送することです。これは少し不格好です。 例 テキストブロックの例を次に示します。 a - b c d MSWinペーストを介してEmacs-under-sshに貼り付けると、次のように表示されます。 a - b c d C-h l貼り付けを行った後に押すと、これが表示されます。改行はではC-jなくを使用して入力されることに注意してくださいRET。 a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j SPC SPC SPC SPC d C-j C-h l

1
LaTeX / AUCTeXアイテム化環境でアイテムをインデントする方法は?
Q:どのようにしてLaTeX itemize環境の「適切な」インデントを取得できauctexますか? ここに私itemがいるitemize環境でありたい場所です: \item 行は環境の先頭から2スペース分インデントされます 項目における継続行はに対してさらに2つのスペースインデントされている\item行を これは私が見たい/期待しているものです: \begin{itemize} \item Here's a really long item in a LaTeX itemize environment; note how the *initial* item line is indented two spaces, and the continuation lines are indented another two spaces. \end{itemize} LaTeX-item-indent変数を使用してアイテムの初期インデントを調整できます。この変数のデフォルトは-2です。このデフォルトでは、私は、望ましくない行動を取得\itemインデントされていないが、私はやる、追加の二つの空間によって相殺されている継続行の所望の動作を得ます: \begin{itemize} \item Here's a really long item in a LaTeX …

3
インデントでナビゲートする
インデントに基づいてファイルの行間を移動したい。ファイルはインデントによって構成されます。前の行よりもインデントされている行は前の行の子であり、前の行と同じインデントを持つ行はその兄弟です。私は主に3つのコマンドを探しています: 次の兄弟、つまり同じインデントを持つ次の行に移動します。インデントの多い行をスキップしますが、インデントの少ない行をスキップしません。 前の兄弟、つまり他の方向に同じものに移動します。 親、つまりインデントの少ない前の行に移動します。 ポイントの列位置は変更しないでください。 これらは、への字下げ構造化データの類似体であるforward-sexp、backward-sexpとbackward-up-listS式構造化データのため。インデントは、HaskellやPythonなどの言語のプログラム構造に対応しています。これらの関数は、このコンテキストでは特に役立ちますが、モード固有のものは探していません(私の主な使用例は、別のファイル形式内の意図構造化データです)。 インデントレベルの色付けは、Up/を使用して手動で移動するのに役立ちますが、Down自動的に何かが必要です。 このスーパーユーザーの質問は似ていますが、要件はより低く、現在、私の要件を満たす答えはありません。

1
折り返された行の正しいインデント
特に多くのウィンドウを使用する場合、次のラップされたテキストがあります。 ラップされたテキストのインデントをVimのように変更できるかどうか疑問に思っています。 ) 考え出すと、AutoFillModeがこれを担当しているようです。Emacs 25でこれが改善されることを望んでいました。Emacs25のコンパイル済みバイナリにアップグレードした後、同じ動作が見られます。 だから私はこれを別の方法で解決できるかどうか疑問に思っていますか?

1
ディスクに保存されたものとは異なるインデントでコードを表示する
インデントスタイルを使用したいくつかのプロジェクトに取り組んでいますが、本当にイライラすることがあります。特定のインデントスタイルでコードを表示したいが、常に所定のインデントスタイルでディスクに保存したい。 具体的には、複数行の関数引数でのemacsのデフォルトのインデントスタイルが好きです... void foo(int a, int b, string c) しかし、プロジェクトはタブのみで、すべてを単一インデントしています... void foo(int a, int b, string c) 最初のケースは表示できますが、2番目のケースは共有できますか?

2
アセンブリソースコードのインデントとナビゲーションの改善
CコードまたはJavaコードを書くときは非常に規則的ですが、アセンブリ(asm-mode)を使用すると非常に混乱します。 とを使用auto-completeしていyasnippetます。スニペットを作成して使用していますが、コードの編成とインデントが乱れています。 どのパッケージが私を助けますか: コードとコメントを簡単に適切にインデントして、各コードが何をしているかを確認できるようにします。 大量のコードをナビゲートするので、簡単にコード間​​をジャンプできますか?

4
組織モードのインデントをカスタマイズする方法は?
この問題は、モノスペースでないフォント(Sabon、Minion、Garamondなど)を使用したいために実際に発生します。これは、org-indent-modeを使用するときに問題を引き起こします。例: フォントはジョージアです。さて、コンソラに変更すると: 問題は、モノスペースでないフォントでは、「スペース」と*が同じスペースを占有しないことだと思います。私はこれを解決する方法を知りませんが。インターネットを検索しましたが、自分でインデントを微調整するためのチュートリアルを見つけることができませんでした。私はorg-indent.elを読み込もうとしましたが、理解するには長いショットです。ヘルプは大歓迎です!

1
AUCTeXによる\ ifステートメントの自動インデント
if -likeステートメントを含むAUCTeXプリミティブtexコードの現在の動作は、周囲の条件と同じレベルで条件ステートメントをインデントすることです。すなわち次のようなコード \if@sometoggle% \dosomething% \else% \doanotherthing% \fi% テキストの大きなブロックとして表示されます。AUCTeX次のようにスニペットをインデントします。 \if@sometoggle% \dosomething% \else% \doanotherthing% \fi% これは可能ですか?

1
python自動インデント問題
Emacs 24.4を使用しています。Pythonコードを書くとき、Emacsはインデントに関して奇妙な振る舞いをします。 例えば: for i in range(10): print(i) for i in range(10) :Emacsがを入力すると、3行目の先頭に不要なインデントが追加されます。これはかなり奇妙です、これはバグですか?

1
インデントレベルの色付け
次の2つのスナップショットを検討してください。最初の例は、PythonモードのEmacsからのものです(Jedi&Elpyを使用)。 以下の2番目の例は、以前の1つを手動で写真ショッピングして、非常に多くのインデントレベルを簡単に区別できるようにするためのものです。 後者の効果を達成するのに役立つパッケージはありますか?上記の例では、2つの色を使用しましたが(インデントレベルを隣接する色と区別するのに十分です)、より多くの色を使用する他の配色を使用すると、ナビゲーションがさらに簡単になります。 Emacsでは、インデント文字は以下によって決定されることに注意してください: # Insert multiple spaces for indentation: (setq indent-tabs-mode nil) # Insert TAB for indentation: (setq indent-tabs-mode nil)

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