回答:
領域を拡張すると、選択した領域が意味単位で増加します。必要なものが選択されるまで、キーを押し続けます。
例:
(setq alphabet-start "abc def")
カーソルがcにある場合、単語abc全体をマークすることから始まり、次に引用符abc defの内容に展開し、次に引用符全体「abc def」に展開し、次にsexp setq alphabet-start "abcの内容に展開します。 def」、そして最後にセックス全体に。
次のように設定できます。
(require 'expand-region)
(global-set-key (kbd "C-=") 'er/expand-region)
拡大しすぎると、負の接頭辞でリージョンを再度縮小できます。
expand-region
別の答え(私が投票している)で提案されているように試してみることに同意します。
ただし、関連する組み込みコマンドに慣れていない場合に備えて:
C-M-u, backward-up-list
C-M-SPC, mark-sexp
リージョンがない最初の例ではC-M-u C-M-SPC
、囲んでいるリストをマークするために使用できます。すでに選択されたリージョンがある場合、これらのコマンドはそれを拡張します。したがって、42
が選択されてヒットC-M-u
すると、選択範囲がリストの先頭まで後方に拡張されますが、閉じかっこは含まれません。
だから、何かが存在しない状態でのようにexpand-region
私が当たると考えC-g
、その後、任意の現在の選択をキャンセルしC-M-u
、あなたが望むのように、多くの括弧として戻ってC-M-SPC
マークに
アクティブな領域の場合h、lispyではあなたが望むことをします。最近の紹介記事をご覧ください。
最初のケースでは、する必要がありM-m hます。
lispy
で始まります:
(defn foo [x] (+ x ~42|))
ここで、~
はマーク(領域の開始)を|
示し、ポイント(領域の終了)を示します。
hあなたと一緒に:
(defn foo [x] |(+ x 42)~)
lあなたと一緒に:
(defn foo [x] ~(+ x 42)|)
ではk、あなたは(と元に戻せ取得しますj):
(defn foo [x] (+ ~x| 42))
と2kまたはkkあなたが得る:
(defn foo [x] (~+| x 42))
dあなたと一緒に:
(defn foo [x] (+ x |42~))
ではd>、あなたは(と元に戻せ取得します<):
(defn foo [x] (+ |x 42~))
と一緒にd2>またはd>>あなたが得る:
(defn foo [x] (|+ x 42~))
mあなたと一緒に:
(defn foo [x] (+ x 42|))
ただ、領域がアクティブである場合、要約するとh、j、k、l 地域を移動する矢印があります。>ポイントの方向に1つの意味単位で領域を拡大します。<領域をポイントの方向に1意味単位だけ縮小します。mマークを非アクティブにします。iリージョンの最初の要素を選択し、dポイントとマークを交換します。
expand-region
までに、リストをすぐにマークする特定の関数を呼び出しer/mark-outside-pairs
ます。