問題タブ [paredit]
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 - Paredit を使用して既存の式をラップする
私は Lisp コード用に Paredit モードで Emacs を使用しています。
println で関数呼び出しをラップしようとしています:
paredit で最終的に何が起こるかは次のとおりです。
println の閉じ括弧を削除して最後に移動する方法はありません。
私が今やっている方法は次のとおりです。1.関数呼び出しを削除し、println内でヤンクします2.括弧なしでprintlnを記述し、コードを視覚的に選択して括弧で囲みます
これらのアプローチはどちらも面倒です。これは、Paredit で裏返しにコードを書くときはいつでもよくある問題のようです。どんな助けでもいただければ幸いです
emacs - Paredit モードで余分な括弧を削除するには?
Emacs で Paredit を使用して Lisp コードを編集しています。誤って挿入した余分な括弧のペアを削除するにはどうすればよいですか? Paredit は、追加のコマンドなしではこれを許可しません。
((square 5))
の中へ(square 5)
emacs - Paredit: 不要なキーバインドを削除
私は ParEdit モードを試していますが、これは私が望む方法ではありません。元のバインディングをシャドウし、C-M-Fそれを に置き換えますC-M-f。つまり、sexp を選択する代わりに転送します :| 一見バインディングが定義されている場所を見つけることができませんでした。
この動作をキャンセルする方法はありますか? または、sexp を選択するための ParEdit のアナログ コマンドは何でしょうか?
編集:
何が起こるかをよりよく理解するために、C-h kParEdit がアクティブなときにC-M-S-fこれを行うと、次のようになります。
何も翻訳したくありません。これは絶対に望ましくない動作です。
emacs - EmacsPareditで括弧と角かっこを入れ替えます
かっこと角かっこを入れ替えるコマンドを括弧モードで定義するにはどうすればよいですか?
emacs - paredit キーバインドを変更できない理由
すべてのキーバインドをロードせずに、paredit の関数をいくつか使用しようとしています。paredit.el を見てみると、キーマップが paredit-mode-map しかなかったので、これを試してみました。
キーバインドは変更されませんでしたが (Ch k で確認)、変数 paredit-mode-map が変更されました。
私も試しました
次に、paredit のオンとオフを切り替えても、同じ結果になります。
以前は、キーマップを直接変更することは常にうまくいきました。ここで何が起こっているのですか?
編集:
これを行うことでキーマップを変更することに成功しました:
したがって、minor-mode-map-alist はルックアップに使用される変数のようです。キーバインドを変更するもっと洗練された方法があると確信していますが、emacs でキーバインドがどのように機能するかをもっと理解したいと思いました。
emacs - 最初の式を丸呑みするときに余分なスペース文字を避ける方法
Paredit を使用していると、次のような問題に直面することがよくあります (パイプ文字はカーソルを表します)。
bar
括弧で囲みたいので、 paredit-wrap-around
( M- () を使用してこれを取得します。
代わりにバーを文字列の中に入れたい場合も同じことが当てはまります。これを取得するにはM-を使用できます。"
ただし、Clojure では、ベクトル、マップ、およびセットに角括弧[]
と中括弧も使用します。{}
これらには、paredit の「ラップ アラウンド」コマンドがないようです。したがって、この場合、たとえばバーをベクトルに入れるには、通常、[キーを使用して新しいベクトルを作成します。
paredit-forward-slurp-sexp
( C-が続く→</kbd>), which results in:
前に挿入された空白文字を削除したいのですがbar
。これは可能ですか?空の式から 1 つの項目を含む式に移行するときに、paredit が空白文字を保持するのはなぜですか? S 式に追加された最初の項目は、常に開始括弧に対してプッシュされるべきではありませんか?
emacs - すでに作成された外部フォームでフォームを paredit でラップする方法
このコードがあるとします
次に、それを次の形式でラップする必要があると思います。
このコードは次のようになります。
普段のラッピング方法はこちら。最初に、次のように、ラップされるフォームの前に不完全な外部フォームを書き込みます。
C-)
次に( ) を 2 回押しparedit-forward-slurp-sexp
て、丸呑みします。
その後、最後に追加(nreverse acc)
して仕上げます。
さて、最初にこのような完全な外部フォーム テンプレートを作成することから始めたらどうなるのだろうか?
またはこのように
その開始からジョブを終了するために押すことができる paredit または非 paredit コマンドの短いシーケンスはありますか?
ポイントを移動し、ラップする 2 つのフォームを切り取り、ポイントを移動し、フォームを貼り付けることができました。しかし、もっと便利な方法があるかどうか疑問に思っています。
ラッピングのやり方には満足していますが、別のスタートから見つけられる他の巧妙な編集トリックが欠けているように感じます.