Voinko kumota useita kertoja nvi: ssä ja / tai alkuperäisessä vi: ssä?

Joskus olen järjestelmässä, jossa ei ole Vimiä, ja käytän oletusarvoista nvi (BSD-järjestelmät) tai alkuperäinen vi (Arch Linux).

Eroja on melko vähän, mutta suurin ärsytys on, että voin kumota vain omat viimeinen toimenpide. Painamalla u toista kertaa teokset ovat ”uudelleenkäynnistys”.

Onko jollain tapaa saada tämä toimimaan?

Vastaa

Lähettäjä 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. 

Paina siis u ja paina sitten . lisää kumoaaksesi; Jos painat u taas, se ”kääntää” suunnan ja painaa . tulee olemaan uudelleen.

En koskaan tiennyt tästä vasta eilen; ja ajattelin, että se oli jotenkin uusi ominaisuus, mutta näyttää siltä, että se on toiminut tällä tavoin, koska ainakin nvi 1.79 vuodesta 1996 .

Tämä ei ”t toimi alkuperäinen vi ; missä kumoaminen dokumentoidaan:

 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). 

Mikä on todella monimutkainen tapa sanoa, että u -näppäimen painaminen uudelleen tekee muutokset uudelleen.

Mikä on myös mitä Vim ”s :help undo sanoo (ja miksi oletin, että se ei myöskään toimi nvi):

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

Vastaa

Lähin asia, mikä alkuperäinen vi on kumottava useita (lukuun ottamatta U, joka voi peruuttaa useita muutoksia yhdellä rivillä) on numeroitu rekisteri, johon on tallennettu yhdeksän viimeisintä muutosta tai poistoja.

Jos laitat numeroidusta rekisteristä, seuraavat pistekomennot lisäävät rekisteriä, kun se toistaa komennon.

Esim. seuraavan tekstin kanssa, kohdistinrivillä >,

 aaaa > bbbb cccc dddd eeee 

komento dd.. johtaa:

 aaaa > eeee 

Jos kirjoitat "1P, vi laittaa viimeisin poisto rekisteristä "1:

 aaaa > dddd eeee 

Osuma . laittaa seuraavan viimeisimmän rekisterin sisällön tekemällä "2P ja painamalla . uudelleen, rekisterin "3.

Lyhyesti sanottuna "P.. palauttaa kaiken poistamasi tekstin, jolloin sinulle jää

 aaaa > bbbb cccc dddd eeee 

Ei loistava, mutta parempi kuin ei mitään! Hyödyllisemmin voit käyttää sitä puskurin alussa tai lopussa tarkistaaksesi nopeasti numeroiduissa rekistereissäsi olevat tiedot. Sitten voit helposti poistaa mitä et tarvitse.

Se on dokumentoitu VIM: ssä. kohdassa :help redo-register.

Vastaa

Käytä alkuperäistä vi-näppäintä ja paina [n] u palata n askelta taaksepäin. Jos haluat palata asteittain taaksepäin …

  • paina [n] u palataksesi n askelta taaksepäin
  • sitten paina [n] u tehdä n askelta uudelleen
  • paina sitten [n + 1] u palataksesi takaisin [n + 1] vaihetta
  • jne.

Kommentit

  • Minulla on jotain lähellä alkuperäistä vi , ja se ei ' t näyttävät palavan n askelta taaksepäin.
  • Hyväksytty. Alkuperäinen Vi voi palauttaa vain yhden muutoksen u -toiminnolla tai palauttaa yhden rivin siihen, miten se oli ennen kuin aloitit sen muokkaamisen U -palvelun avulla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *