hvad er kommandoen til “ Vælg alle ” i vim og VsVim?

Hvordan vælger jeg alt indholdet af en fil i Vim og VsVim? Som i andre redaktører ctrl+A gør jobbet for at vælge alle.

Kommentarer

  • SibiCoder ' s svar er godt, men det ville være nyttigt at vide, hvad du agter at gøre med det indhold, du kopierede.
  • Først skal du " vælg " noget tekst i en " buffer ", ikke i en " fil ". To, " valg af " er ofte ubrugelig i Vim, så du skal være klar over, hvad du vil gøre med den " valg ". For dig og for os.
  • @megentligt tror jeg OP betyder at vælge hele filen i visuel tilstand, i betragtning af at ctrl+a i andre redaktører fremhæver visuelt hele filen .
  • @statox Hvorfor redigerede du vsvim ud? Det ' er ikke meget for mig, men jeg synes, at tagget er helt passende, og jeg ville ikke ' ikke komme ind en redigeringskrig. (Jeg ville have pinget dig i :chat!, men du har ikke ' ikke været i det rum for nylig, så det ville ikke ' t lad mig)
  • @DJMcMayhem: Det var en fejl: Jeg troede først, at vsvim var som vimperator og denne type plugins til andre softwares og dermed var uden for emnet, så jeg fjernede det, så var jeg i tvivl, så jeg tjekkede meta og så, at det var om emnet så jeg godkendte din tagredigering, men glemte at redigere spørgsmålet igen. Jeg ' ændrer det lige nu, undskyld det.

Svar

ggVG vælger alt indhold. gg flytter til første linje. V starter visuel tilstand. G springer til sidste linje og vælger derved fra første til sidste linje

Kommentarer

  • Jeg bliver ved med at nej en vim-kommando til ggVG og gg, endda G
  • 77 opvoter og markeret som det accepterede svar, men det ' er forkert? Selv ifølge selve svarets tekst ville kombinationen være VggG.

Svar

Sammen med SibiCoder ” s svar, hvis du har en klar idé om, hvad du vil gøre, kan du bruge følgende:

:%X 

Hvor X er en kommando, for eksempel:

:%d -> delete every line :%y -> yank every line :%normal! >> -> indent every line 

Du har også den globale kommando :g som med søgemønsteret ^, kan gøre det samme:

:g/^/d -> delete every line :g/^/y -> yank every line :g/^/normal! >> -> indent every line 

Hvis det, du ønsker, er at vælge teksten, så er ggVG i orden, men husk denne metode, hvis du allerede ved, hvad der er næste trin. Bemærk, at den ikke efterlader markøren i visuel tilstand.

Se: :h :% og :h :g til reference.


Bemærk, selvom C-A kortlægning bruges i vim (se :h CTRL-A), du kan kortlægge den til gør hvad andre redaktører gør:

nnoremap <C-A> ggVG 

Svar

De andre svar er gode . Her er et andet alternativ.

Da du nævner, at du bruger VsVim, kan du ændre, hvilke nøgler der håndteres af visual Studio, og hvilke nøgler der håndteres af vsvim. Gå til

Værktøjer -> Indstillinger -> VsVim -> Tastatur

Derfra kan du indstille Ctrl-a til håndteres af Visual Studio snarere end VsVim.

Selvom jeg ikke anbefaler dette, da du ikke vil kunne bruge vim “s <C-a>, som jeg finder at være et væsentligt træk. Selvom det er op til dig.

Svar

kan du bruge et stort tal som 99999yy for at vælge alt indholdet af din fil

Kommentarer

  • Større filer end 100000 linjer er mulige, selvom de er sjældne. Hvis du bruger yy, yank dem, ikke vælg dem.
  • yah, at du har ret, men når du vælger noget, skal det ' s for de fleste tilfælde at klippe, kopiere eller slette dem 🙂
  • At ' er det, jeg havde brug for. Vælg alt og rykk.
  • Bare :%y er nok. Eller :%y + for at rykke alt i + -registret.

Svar

Som @SibiCoder nævnte ggVG gør tricket , men jeg kan godt lide noget tættere på Ctrl+A.

Så jeg tilføjede denne linje til min .vimrc

nnoremap <leader>a ggVG 

Hvis du nu trykker på <leader>a, vælges alt, i mit tilfælde er det “s \a.

Kommentarer

  • Velkommen til Vi og Vim ! Teoretisk set kunne du kortkontrol a (<C-a>), men det har tilfældigvis en nyttig standardfunktionalitet
  • Ja, at ' s hvorfor jeg foretrækker <leader>a

Svar

Hvis du “d som en hurtigere / mere intuitiv måde at gøre dette på og ikke har noget imod at tilføje et plugin, dette ser praktisk ud: https://github.com/kana/vim-textobj-entire

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *