selezionando un intervallo di righe dalla riga di comando


8

Devo selezionare (visivamente) un intervallo di righe dalla riga di comando.

Ad esempio il seguente comando :?^\s*for?+,/^\s*end/- pstampa tutte le righe contenute tra a fore end(modo esclusivo). Invece di eseguire l'operazione di stampa, vorrei passare alla modalità visiva con quelle linee evidenziate. Ho cercato nel manuale ma non sono riuscito a trovare un tale ex-comando.


Vuoi dire "esclusivo"?
Ricco

hai ragione! Ho modificato la domanda
Nicmus,

Risposte:


7

I limiti di una selezione della modalità visiva sono definiti dai segni <e >.

Pertanto, il seguente comando entrerà in modalità visiva con le linee da 5 a 10 (incluse) selezionate:

 :5mark < | 10mark > | normal gvV
  • :5mark < imposta l'inizio della selezione sulla riga 5,
  • :10mark > imposta la fine della selezione sulla riga 10,
  • gv entra in modalità visiva con l'area definita sopra selezionata,
  • V effettua la selezione in modo lineare.

È possibile passare qualsiasi intervallo Vim nel :markcomando: quanto segue entrerà in modalità visiva usando le espressioni regolari fooe barper definire i confini dell'area di selezione:

:execute search("foo") . "mark <" | execute search("bar") . "mark >" | normal gvV

Il seguente comando è una versione più semplice di quanto sopra, ma dipende dalla posizione del cursore:

/foo/mark < | /bar/mark > | normal gvV

Per ulteriori spiegazioni, vedere:


Grazie! Ho risolto con:?^\s*for?+ mark < | /^\s*end/- mark > | norm gv
nicmus

@nicmus Ah sì, è più semplice per il tuo uso specifico. Ho aggiornato la mia risposta.
Ricco

Solo per il bene di tutti i futuri lettori che potrebbero chiedersi, il commento +e -nel commento di @ nicmus stanno regolando gli intervalli per fare in modo che la selezione non includa le linee che corrispondono alle espressioni regolari. (Vedi :help range)
Ricco

L' .operatore di concatenazione mi ha davvero sconcertato, quindi ecco un esempio se qualcuno si sente lo stesso: :execute "l" . "s"produrrà lo stesso output di :ls.
Toraritte,
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.