タグ付けされた質問 「balanced-parentheses」

4
電気ペアモードの追加のモード固有のペアを定義する方法
electric-pair-modeは、現在の主モードに基づいて、一致する区切り文字のペア(括弧、大括弧など)を自動的に挿入するための組み込みモードです。 次のように追加のペア(グローバルになる)を定義できることを知っています。 (push '(?\' . ?\') electric-pair-pairs) ; Automatically pair single-quotes (push '(?\' . ?\') electric-pair-text-pairs) ; ... in comments 私の質問は、モード固有のペアをどのように定義できるかです(たとえば//、==for org-mode)?


4
一致する括弧を置き換える方法は?
私はEmacsを使ってLaTeXで多くの数式を書いています(そして書き直しています)。読みやすさを向上させるために、一致する括弧のペアを変更したい状況に頻繁に出くわします。私のEmacsは、対応する区切り文字を表示するのに十分親切ですが、プログラムで変更するにはどうすればよいですか? たとえば、外側の区切り文字を一度に変更します。 ( (\sqrt{a} + b)^{-1} + c^{-1} ) に [ (\sqrt{a} + b)^{-1} + c^{-1} ]

3
かっこを含めるように領域を設定します
ポイントまたはアクティブな領域から始めて、次の一連の括弧を含めるために(1つのキーストローク/コマンドで)すばやく「拡張」するにはどうすればよいですか? 私が最初に始める場合:(|ポイントを意味します) (defn foo [x] (+ x |42)) または、次のように開始した場合:(<および>選択した領域を囲みます) (defn foo [x] (+ x <42>|)) 終わりたい (defn foo [x] <(+ x 42)>|)

4
ブラケットを自動的にフォーマットする
(Cでコーディングするための)Allmanスタイルのフォーマットに従って中かっこを配置/配置/インデントする関数を作成しようとしています。 一般的に言えば、私はユーザーが機能をカスタマイズするために使用できるSmartparensのインターフェースのファンです。私はSmartparensインターフェースを使用して他の関数をたくさん書いたので、この時点でパッケージを切り替えないようにしてください。そうは言っても、私はパッケージにとらわれない実装を受け入れています(たとえば、defadviceここで関連性があるかもしれませんか?)。 目の前の問題に移ります。最終目標は何ですか?コーディングしていて、以下に示す状態になったとしましょう。パイプ記号はカーソルを表します。関数ヘッダーと開き括弧を入力しました{。Smartparensが自動的に閉じ括弧を追加しました }。この時点で、それを押してくださいRET... int main {|} ...次のようになります: int main { | } この動作を引き起こす関数を書くことができましたが、それは最初のレベルのインデント(たとえば、上の例のメイン関数)でのみ機能します。それ以降のレベルのインデントでは機能しません(gifを参照)。 関連するコードは次のとおりです。関数はきれいではありませんが、うまくいくと思います...最後の行はSmartparensへのインターフェースです。 助言がありますか? (defun my-create-newline-and-enter-sexp (&rest _ignored) "Open a new brace or bracket expression, with relevant newlines and indent. " (interactive) (progn (backward-char 2) (newline) (forward-char) (newline) (indent-according-to-mode) (previous-line 2) (indent-according-to-mode) (next-line) (next-line) (indent-according-to-mode))) (sp-local-pair 'c-mode "{" …

2
一致する括弧をより速く表示する方法は?
右かっこを入力すると(または、他のペアの記号でも機能する可能性があります)、左かっこが画面に表示されない場合、Emacsは右かっこにジャンプして、それがどこにあるかを示します。これはとても便利です。 左括弧が表示される期間を短くしたい(例えば0.5秒)。これは難しいことではありませんが、問題は、この機能の名前がわからないため、Emacs変数/関数を検索できないことです。

2
リージョンの周りの括弧を削除します
リージョンの周りの括弧を削除するために使用するこの関数のより良い代替手段はありますか?私はEmacsビルトイン、または選択された領域の周りのペアを削除するもの(例:大括弧、中括弧、二重引用符、単一引用符)を削除するものを探しています (defun my-delete-surrounded-parens () (interactive) ;; save where region begins & ends (let ((beginning (region-beginning)) (end (region-end))) (cond ((not (eq (char-after beginning) ?\()) ;; if region not begins by (, trigger error (error "Char at region-begin not an open-parens")) ((not (eq (char-before end) ?\))) ;; if region not ends by …

4
どうすれば(emacs lispから)括弧を見つけることができますか?
ポイントを囲む括弧のタイプ(つまり、 '('、 '['、または '{')を見つける方法はありますか?例(|ポイントを表すために使用) { abc, | df } '{'を返す必要があります。 { abc[ | ], 123 } '['を返す必要があります。理想的には、引用符も処理したいと思います。 誰かが好奇心が強い場合や詳細が必要な場合:私の目的は:、Pythonでelectric-spacing(smart-operatorとも呼ばれます)を使用してスマートな自動間隔を設定することです。問題は、通常(Pythonの場合):はスライス演算子またはfor / if / ...ステートメントの開始であり、スペースで囲まないでください。ただし、ディクショナリ内では代入演算子のようなものなので、スペースで囲む必要があります。私ので、ポイントはdictの(すなわち内部の内側にあるかどうかを確認する方法の必要性{})ではなく、(すなわちない内部その辞書内のスライス操作や文字列の内部[]または"")。 編集: 以下は、abo-aboの回答に基づいて私が作成したヘルパー関数です。 (defun enclosing-paren () "Return the closing parenthesis of the enclosing parens, or nil if not inside any parens." (ignore-errors (save-excursion (up-list) (char-before)))) 次に、最後の述語は次のとおりです。 (and (not (in-string-p)) …

2
autopairとsmartparensの違いは何ですか?
両方autopairとsmartparens自動的デリミタのマッチングペアを挿入するための機能を提供します。 実際には(もしあれば)お互いにどのように違うのですか?これらのパッケージの1つでカバーされ、他のパッケージではカバーされないいくつかのユースケースは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.