vad är kommandot för “ Välj alla ” i vim och VsVim?

Hur väljer jag allt innehåll i en fil i Vim och VsVim? Som i andra redaktörer gör ctrl+A jobbet för att välja alla.

Kommentarer

  • SibiCoder ' svaret är bra, men det skulle vara bra att veta vad du tänker göra med innehållet du kopierade.
  • Först, du " välj " lite text i en " buffert ", inte i en " fil ". Två, " att välja " är ofta värdelös i Vim så du måste vara tydlig med vad du vill göra med det " urval ". För dig och för oss.
  • @ huvudsakligen tror jag att OP betyder att man väljer hela filen i visuellt läge, med tanke på att ctrl+a i andra redaktörer visuellt lyfter fram hela filen .
  • @statox Varför redigerade du vsvim ut? Det ' är inte en enorm affär för mig, men jag tycker att taggen är helt passande, och jag ville inte ' komma in ett redigeringskrig. (Jag skulle ha pingat dig i :chat!, men du har inte ' inte varit i det rummet nyligen, så det skulle inte vara ' t låt mig)
  • @DJMcMayhem: Det var ett fel: Jag trodde först att vsvim var som vimperator och den här typen av plugins för andra programvaror och därmed var av ämnet så jag tog bort det, då hade jag tvivel så jag kollade meta och såg att det var om ämnet så jag godkände redigeringen av din tagg men glömde att redigera frågan igen. Jag ' ändrar det just nu, ledsen för det.

Svar

ggVG väljer allt innehåll. gg flyttar till första raden. V startar visuellt läge. G hoppar till sista raden och väljer därmed från första till sista raden

Kommentarer

  • Jag får ingen ett vim-kommando för ggVG och gg, till och med G
  • 77 uppröstningar och markerat som accepterat svar ändå är det ' fel? Även enligt själva svaret skulle kombinationen vara VggG.

Svar

Tillsammans med SibiCoder ” s svar, om du har en klar uppfattning om vad du vill göra kan du använda följande:

:%X 

Var X är ett kommando, till exempel:

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

Du har också det globala kommandot :g som med sökmönstret ^, kan göra samma sak:

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

Om det du vill är att välja text, då är ggVG bra, men kom ihåg den här metoden om du redan vet vad som är nästa steg. Observera att den inte lämnar markören i visuellt läge.

Se: :h :% och :h :g för referens.


Observera att även om C-A -mappningen används i vim (se :h CTRL-A), du kan mappa den till gör vad andra redaktörer gör:

nnoremap <C-A> ggVG 

Svar

De andra svaren är bra . Här är ett annat alternativ.

Eftersom du nämner att du använder VsVim kan du ändra vilka nycklar som hanteras av visual Studio och vilka nycklar som hanteras av vsvim. Gå till

Verktyg -> Alternativ -> VsVim -> Tangentbord

Därifrån kan du ställa in Ctrl-a till hanteras av Visual Studio snarare än VsVim.

Även om jag inte rekommenderar detta eftersom du inte kommer att kunna använda vim ”s <C-a>, vilket jag hittar att vara en viktig funktion. Även om det är upp till dig.

Svar

kan du använda ett stort nummer som 99999yy för att välja allt innehåll i din fil

Kommentarer

  • Filer större än 100000 rader är möjliga, även om de är sällsynta. Att använda yy kommer att ge dem , inte välj dem.
  • ja visst att du har rätt men när du väljer något ' är det för de flesta fall att klippa, kopiera eller ta bort dem 🙂
  • Det ' är vad jag behövde. Välj allt och skicka.
  • Bara :%y räcker. Eller :%y + för att rycka allt i + -registret.

Svar

Som @SibiCoder nämnde ggVG gör tricket , men jag gillar något närmare Ctrl+A.

Så jag lade till den här raden i min .vimrc

nnoremap <leader>a ggVG 

Nu trycker du på <leader>a för att välja allt, i mitt fall är det ”s \a.

Kommentarer

  • Välkommen till Vi och Vim ! Teoretiskt sett kan du kartkontroll a (<C-a>), men det råkar ha en användbar standardfunktion
  • Ja, att ' s varför föredrar jag <leader>a

Svar

Om du ”d som ett snabbare / mer intuitivt sätt att göra detta och tänker inte lägga till ett plugin, detta ser bra ut: https://github.com/kana/vim-textobj-entire

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *