er/expand-regionは以前のEmacs 25.1のように動作しません

私は er/expand-region の動作が非常に奇妙で、Emacs 25.1.50へのアップグレード以外に何が間違っているのか分かりません。

私がelispファイルでこれを入手した場合:

(defun foo(p)(* 2 2)p)

(そのコードは単なる例です)

私はアスタリスクの上にいて、expand-regionをやり始めます。

  • "*"(OK)
  • "* 2 2" (OK)
  • "* 2 2)" (WRONG)
  • "(* 2 2)" (kinda OK I guess)
  • "(* 2 2) p)" (WRONG)
  • "(defun foo(p)(* 2 2)p)" (kinda OK I guess)

私はClojureファイルとまったく同じ問題を抱えています。

以前は er/expand-region を使用して括弧の間にあるものを選択していました。問題は、今私が望むものを選択するためにもっと多くのキーを押す必要があることです。バランスのとれていないコードを切り捨てるので、unispanced elisp/Clojureコードで終わってしまいます。

ショートカットを使ってer/expand-regionを呼び出すか、手動で呼び出してみました。同じ結果です。私のテストでは、Clojureでリストが使用されているようです。

er/expand-region が内部的にどのように動作するかはまったく分かりませんが、 er/mark-inside-pairser/mark-outside-pairs であり、そのことが右括弧に一致していたことを示します。

どのような問題が起こったか、どのように私はこれを修正することができますか?

私は古いEL /エキスパンド領域と最新のELPAの両方を試しました。

1
私はemacs-25 devブランチの最新バージョンを使用していますが、あなたが見ているものを複製することはできません。私の展開は「*」、「* 2 2」、「(* 2 2)」、「defun foo(p)(* 2 2)p」、「defun foo(p)(* 2 2 )p)」。
追加された 著者 UnkwnTech,
まず、 emacs -Q セッションで試してみてください。このセッションでは、この1つのパッケージをロードして、同じ問題を er/expand-region で再現できるかどうかを確認してください。おそらくそれはうまくいくでしょう、そして、あなたは犯人を見つけるためにinit.elを二等分する必要があります。
追加された 著者 UnkwnTech,
MELPAの最新の拡張領域版を使用していますか?
追加された 著者 Ishmaeel,
@ Kaushal Modi:試してくれてありがとう、以前は私のために振る舞っていたのとまったく同じです(以前は25.1.50ではなくEmacs 25.0.50でした)。私はそれを働かせるために努力し続けます:私は何がうまくいかなかったのか分かりません。私は削除/再インストールしていくつかのバージョンを試してみます(私はmelpa、melpa-stable、私の古いEmacs(私はまだ別のユーザディレクトリで作業しています)などで試してみます。
追加された 著者 Yousend,
@ Kaushal Modi:実際に私はexpand-regionが大好きで、私はそれに慣れています/あなたが「間違っていないバランスのとれた展開」をしている間、
追加された 著者 Yousend,
@ lunaryom:私は結局それを解決しましたが、私は何を何度も削除/再インストールしたので、何をしているのか分かりません。私が知っているのは、 $ HOME/.emacs.d/elpa/ディレクトリ全体を削除し、すべてのELPAパッケージを再インストールしたことだけです。私は今、私が expand-region 20150902.558 (ソースからコンパイルされたEmacs 25.1.50で)を使用しているのを見ることができ、すべてうまく動作しますが、MELPAまたはMELPA-stableかどうかはわかりません。ヘルプの皆さん、ありがとうございました:私はそれを働かせました!
追加された 著者 Yousend,

2 答え

私はこれがEmacs 25.0のいくつかの急な変更に関連していると思います。*

https://github.com/magnars/expand-region.el/issues/160

私はまだ25.0。*を実行していて、MELPAの expand-region をインストールすることで問題を解決しましたが、回避策のEmacsバージョン25+が実装されています。

注意:MELPAの stable ではバージョン(0.10.0)を使用しないでください。動作しません。

2
追加された
私は今日(25.0.93.x)の emacs-25 ブランチから最新のバージョンの expand-region フォームMelpaと最新のemacsビルドを使用しています。期待どおりに正常に動作します。
追加された 著者 UnkwnTech,

Emacsの最新の公式リリースは24.5で、expand-regionの開発者は開発をサポートしていませんバージョン(つまり、25+)。これは不合理ではありません。Emacs 25ブランチでは、ここで問題に示されているように、 expand-region を中断したり改行したりすることが頻繁にあります。それに追いつくことはほとんど利益のために大きな仕事になるでしょう。

問題の解決策:

  • Emacs公式リリース(24.5)に固執する
  • Emacsの開発版を使用する場合は、expand-regionで動作する特定のリリースに固執してください。古いバージョンを置き換える前に新しいバージョンのビルドをテストする
1
追加された
私は今日(25.0.93.x)の emacs-25 ブランチから最新のバージョンの expand-region フォームMelpaと最新のemacsビルドを使用しています。期待どおりに正常に動作します。
追加された 著者 UnkwnTech,