3

私はパーディットが大好きです。しかし、私が嫌いなことがいくつかあり、まだ修正していません。

  • 括弧を開くと、括弧のにスペースが挿入されます。これがおそらくインターネット全体で好まれるスタイルであることは理解していますが、それは私のものではありません。どうすればこれを回避できますか?
  • 引用された領域 ( '') 内では、削除を戻すことができません。また、二重引用符 ( ") を入力すると、バックスラッシュが挿入されます (明らかに二重引用符をエスケープするためです。少なくとも Python では必要ありません。したがって、バックスラッシュは必要ありません。これを構成するにはどうすればよいですか?
  • 実際には、pareditバックスペースに関連する非常に賢明なことを試みます (そして失敗します)。未完成の引用領域にいるかどうかに関係なく、バックスペースは常に前の文字を削除する必要があります (引用が一致しない場合、paredit は何もすることを拒否します。ここで削除してみてください: "helloo)。削除が特別に扱われるのが理にかなっている唯一の状況は、ポイントが左括弧の直前にある場合です。
4

4 に答える 4

3

これは答えではありませんが、コメントするには長すぎます...

Paredit は、a の前にスペースがないこと(が恐ろしい言語や、python の「引用の賢さ」を持たない言語を対象としています。これらの問題についてはおそらくハックできますが、Python の構文は十分に異なるため、そこで動作させることは重要なプロジェクトになります。

最後のポイントについては、括弧と引用符のバランスを非常に意図的に維持しようとしているため、paredit がまったく必要ないように聞こえるため、適切なツールではない可能性があります。IOW、あなたは自動ペアまたは電気ペア、または他の同様のツールの束を好むかもしれません.

于 2012-06-21T10:01:17.023 に答える
2

変数を使用して、paredit による区切り文字の前後のスペースの挿入をカスタマイズできますparedit-space-for-delimiter-predicates。詳細については、docstring を参照してください。インターネット上でその使用例がいくつかありますが、それらがどこにあったかは覚えていません。

Paredit の文字列の扱いは、多くの Lisp に共通する文字列表記に限定されており、それを変更することは簡単ではありません。フォーマットの場合、paredit の奥深くをいじる必要があります。

于 2013-06-13T20:21:08.380 に答える
1

次のコード例は、スキームで機能します。

(defun paredit-space-for-delimiter-predicates-scheme (endp delimiter)
  "Do not automatically insert a space when a '#' precedes parentheses."
  (or endp
      (cond ((eq (char-syntax delimiter) ?\()
             (not (looking-back "#\\|#hash")))
            (else t))))

(defun scheme-mode-paredit-hook ()
  (enable-paredit-mode)
  (add-to-list (make-local-variable 'paredit-space-for-delimiter-predicates)
               'paredit-space-for-delimiter-predicates-scheme))

(add-hook 'scheme-mode-hook 'scheme-mode-paredit-hook)
于 2013-06-15T02:23:19.500 に答える
0

文字を強制的に削除するには、その文字を選択する必要がありますC-w。1 文字のみを強制的に挿入するには、たとえば開始引用符を使用するには、 を使用する必要がありますC-q (

于 2012-06-21T14:25:45.233 に答える