alternativa vi / vim a "Expand selection to scope" di sublimetext


13

Il testo sublime ha una funzione interessante chiamata " Espandi selezione all'ambito " MAIUSC + CMD + SPAZIO che seleziona tutto all'interno dell'ambito.

Seleziona tutto nell'ambito, funziona perfettamente () o [] o {} ripetendolo espande l'ambito al suo genitore.

Sto cercando di ottenere lo stesso con Vim.

Risposte:


22

Se intendevi vim, puoi farlo con visual-mode ( :help visual-mode) e text-object ( :help text-objects).

Per selezionare un blocco a parentesi graffa, eseguire: v+ a+ {, per selezionare la ripetizione del blocco racchiuso a+ {. Nota che puoi scegliere di selezionare il contenuto delle parentesi solo usando iinvece di a.

Questi comandi, come molti altri in vim, sono creati da un'azione seguita da un oggetto di testo, in cui l'oggetto di testo può essere anteposto da un numero per includere più oggetti interessati dall'azione. Così si potrebbe anche eliminare l'oggetto, sostituendo vcon do correggere con c, etc.

Ci sono oggetti di testo per un sacco di altre cose oltre (), {}e [], ad esempio:

  • a+ wsignifica una parola.
  • a+ sindica una frase.
  • a+ pindica un paragrafo.
  • a+ <indica un <>blocco.
  • a+ 'indica una stringa a virgoletta singola.
  • a+ "indica una stringa tra virgolette doppie.

Potresti anche essere interessato al plug-in surround che ti consente di aggiungere / sostituire / eliminare i caratteri circostanti o persino i tag.


Sì, mi riferivo a Vim. Grazie. c'è un modo per continuare ad espanderlo, ad es. [[[event touchesForView: button] anyObject]se il cursore è vicino touchesForViewall'azione v+ a+ [seleziona [event touchesForView: button]Vorrei espandere un altro livello? cioè,[[[event touchesForView: button] anyObject]
palaniraja il

3
@palaniraja: sì, puoi anteporre l'oggetto di testo di un numero, ad esempio: v+ 2+ a+ [.
Thor,

6

Il plug-in vim-expand-region consente di estendere / ridurre l'area selezionata visivamente a un set (configurabile) di oggetti di testo. Cioè puoi iniziare con la selezione di una variabile, quindi l'assegnazione, quindi il blocco, quindi la funzione, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.