undo-redo – ¿Puedo deshacer varias veces en nvi y / o vi original?

Pregunta:

A veces estoy en un sistema sin Vim y uso el nvi predeterminado (sistemas BSD) o el vi original (Arch Linux).

Hay bastantes diferencias, pero la mayor molestia es que solo puedo deshacer mi última operación. Al presionar u la segunda vez, los trabajos son un "rehacer".

¿Hay alguna forma de hacer que esto funcione?

Respuesta:

Desde nvi(1) :

 u       Undo the last change made to the file.  If repeated, the u command
         alternates between these two states.  The . command, when used
         immediately after u, causes the change log to be rolled forward or
         backward, depending on the action of the u command.

Entonces presione u , y luego siga presionando . para más deshacer; Si presiona u nuevamente, se 'invertirá' la dirección y la presión . será un rehacer.

Nunca supe de esto hasta ayer; y pensé que de alguna manera era una característica nueva, pero parece que ha funcionado así desde al menos nvi 1.79 de 1996 .

Esto no funciona en el vi original ; donde el deshacer se documenta como:

   u      Undoes the last change made to the current buffer.  If repeated,
          will alternate  between  these  two  states,  thus  is  its  own
          inverse.  When  used after an insert which inserted text on more
          than one line, the lines are saved in the numeric named  buffers
          (3.5).

Lo cual es realmente una forma complicada de decir que presionando u nuevamente se rehacerán los cambios.

Que es también lo que dice Vim's :help undo (y por qué asumí que tampoco funcionaría en nvi ):

 u                       Undo [count] changes.  {Vi: only one level}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım