2009-06-24 15 views
15

In vim, il blocco visivo può essere richiamato dal comando 'gv' in modo che più comandi possano essere applicati facilmente. (ad esempio, commentare, quindi indentare, quindi do_something_fun).Emacs riseleziona la regione, come Vim scorciatoia 'gv' fa

In Emacs, come può essere ottenuto? [C-xC-x] funziona solo quando la posizione corrente del cursore rimane dove il blocco precedente è terminato. Se il blocco precedente è stato modificato, il più vicino è quello di passare da "point-to-register" e "jump-to-register".

Solo io sono curioso di sapere se esiste un comando integrato Emacs che lo rende in un colpo solo.

+2

Aww, perché passare da vim a emacs? – Brian

+7

Non voglio essere nel dibattito sulla scelta dei redattori religiosi. 2 anni fa, sono passato a Emacs e mi piace. – Raymond

+0

Puoi descrivere cosa intendi in modo più dettagliato? Non sono abbastanza familiare con Vim per sapere cosa stai chiedendo. – baudtack

risposta

10

Se ho capito bene cosa stai chiedendo, allora non devi fare nulla. Quando selezioni una regione in emacs, rimane selezionata fino a quando ne selezioni una nuova. Quindi puoi selezionare la regione e quindi eseguire tutte le azioni che vuoi.

+1

Utilizzo di Emacs 23 (.0.93.1). Grazie, ma non ha funzionato come hai detto tu. Sto selezionando resion usando CTRL-SPC per l'inizio, la posizione corrente per la fine. Punti salienti della regione dopo la selezione. L'applicazione di un comando fa andare via questa luce. Ho assunto questa regione deselects. – Raymond

+2

@Raymond Prova a eseguire un'altra azione. La regione non è più evidenziata ma è ancora selezionata. – baudtack

+0

+1 Concordato che questa soluzione funziona. –

11

Se la modalità di segno di transito è disattivata, la regione è sempre attiva. Se è attivo (come sembra la tua situazione), puoi impostare mark-even-if-inactive su non zero per consentire ai comandi della regione di funzionare mentre la regione non è evidenziata.

Tuttavia, si noti che è anche possibile tornare indietro attraverso le posizioni dei contrassegni precedenti utilizzando C-u C-SPC - questo farà saltare l'anello del segno. Una volta tornati dove vuoi essere, C-x C-x rileverà la regione desiderata. (Potrebbe richiedere un po 'di tempo per giocare con questa funzione, ma è per questo che non posso passare da Emacs ora.)

+0

Con questo in mente, Emacs sembra essere molto più flessibile di vi a questo riguardo. Tuttavia, C-x C-x dovrebbe essere sufficiente nella maggior parte delle situazioni come descritto dall'OP. – fotNelton

1

Anche narrow-to-region (CTRL-x nn) si applica ogni comando da quel momento in poi solo a quella regione - non puoi fare del male al resto del buffer, non lo mostra nemmeno. Dopo aver completato la modifica, allargare (CTRL-x n w) per recuperare l'intero buffer. CMM

+0

Bene, grazie, è interessante. – fotNelton

2

Sembra che tu stia cercando la selezione secondaria, che rimane invariata anche se la regione potrebbe cambiare. (Esso rimane fermo fino a quando lo si sposta.)

See:

0

Dal momento che le risposte qui e per altre simili domande SO non mi è stato d'aiuto (modalità CUA, Emacs 24, non solo indentamente), ho continuato a cercare e finalmente ho trovato un reselect-last-region definito in questo collection of custom function (starting line 670). Per me ha funzionato come un incantesimo, e spero che per gli altri arrivi ancora qui.

Problemi correlati