Começando com o ponto ou região ativa, como faço para expandir rapidamente (em um pressionamento de tecla / comando) para incluir o próximo conjunto de parênteses?
Se eu começar com: ( |
significa ponto)
(defn foo [x] (+ x |42))
Ou se eu começar com: ( <
e >
coloque a região selecionada)
(defn foo [x] (+ x <42>|))
Eu quero acabar com
(defn foo [x] <(+ x 42)>|)
fonte
expand-region
função específica para marcar a lista imediatamente é chamadaer/mark-outside-pairs
.Concordo que você deve tentar
expand-region
conforme sugerido em outra resposta (na qual estou votando).Mas, caso você não esteja familiarizado com os comandos internos relevantes:
No seu primeiro exemplo, onde não há região, você poderia usar
C-M-u C-M-SPC
para marcar a lista anexa. Se já existe uma região selecionada, esses comandos a estendem. Portanto, se42
for selecionado e você pressionarC-M-u
, estenderá a seleção para trás até o início da lista, mas não incluirá o ponto final.Portanto, na ausência de algo como
expand-region
eu pressionariaC-g
para cancelar qualquer seleção atual,C-M-u
para voltar quantas parênteses você quiser,C-M-SPC
para marcarfonte
No caso da região ativa, hem lispy vai fazer o que quiser. Veja meu post de introdução recente .
No primeiro caso, você precisa M-m h.
update: todas as opções que você tem com
lispy
Começando com:
Aqui,
~
denota a marca (o início da região) e|
denota o ponto (o fim da região).Com hvocê obtém:
Com lvocê obtém:
Com kvocê obtém (desfazível com j):
Com 2kou kkvocê obtém:
Com dvocê obtém:
Com d>você obtém (desfazível com <):
Com d2>ou d>>você obtém:
Com mvocê obtém:
Assim para resumir, quando a região é activa, h, j, k, l são as setas que se movem a região. >aumenta a região em uma unidade semântica na direção do ponto. <reduz a região por uma unidade semântica na direção do ponto. mdesativa a marca. iseleciona o primeiro elemento da região e dtroca ponto e marca.
fonte