2012-05-06 5 views
19

Queste sono alcune fantastiche opzioni: emacs-24, modalità malvagia (che usa i collegamenti vim in emacs) e undo-tree.Come modificare il livello di granularità di undo in emacs evil-mode con undo-tree?

Tuttavia, quando sono in modalità di modifica (modalità di inserimento), a volte salta in giro per inserire un numero, elimina, ecc. Prima di colpire la fuga e lasciare la modalità di inserimento.

"Annulla" prende l'intero inserto (incluse le eliminazioni) come una modifica. Ad esempio, non posso annullare il paragrafo che ho eliminato per errore senza annullare l'intera eliminazione!

C'è un modo per risolvere questo problema?

Ecco alcuni link correlati:

Ecco le mappature vim che convertono alcuni comandi di vim in modo che possano essere annullate:

inoremap <c-u> <c-g>u<c-u> 
inoremap <c-w> <c-g>u<c-w> 
inoremap <End> <C-g>u<End> 
inoremap <BS> <c-g>u<BS> 
inoremap <CR> <c-g>u<CR> 
inoremap <del> <c-g>u<del> 

Ciò che serve è per la modalità di annullamento all'interno di emacs male undo-albero per tenere traccia degli eventi aggiuntivi oltre basta lasciare la modalità di inserimento. Ad esempio, dovresti essere in grado di rimanere in modalità di inserimento per molto tempo e quindi annullare qualsiasi tipo di eliminazione, taglia, incolla.

+0

Sulla base http://stackoverflow.com/questions/6590889/how-emacs-determines-a-unit-of-work-to-undo, i comandi aggiuntivi all'interno del male necessità di chiama undo-boundary. – justingordon

+0

Solo perché non è stato ancora detto: "Dovresti trattare la modalità di inserimento come se stessi correndo su un letto caldo di carbone, esci da lì il prima possibile". –

risposta

0

È specifico per annullare l'albero? Non lo uso, quindi il seguente potrebbe non essere applicabile ...

Non sono sicuro di poter modificare la quantità di modifiche che il meccanismo di annullamento considera una singola unità, ma ciò che si può fare è :

Selezionare prima una regione, quindi digitare la chiave di annullamento ed Emacs annulla solo le modifiche apportate in quella regione.

Questo può essere molto utile.

+0

Questo probabilmente ha più a che fare con il male che simula il comportamento di vim, che ha bisogno delle modifiche mostrate sopra. – justingordon