jakie jest polecenie dla “ Zaznacz wszystko ” w Vim i VsVim?

Jak wybrać całą zawartość pliku w Vimie i VsVimie? Podobnie jak w innych edytorach ctrl+A wykonuje zadanie dla zaznaczenia wszystkich.

Komentarze

  • SibiCoder ' odpowiedź jest dobra, ale warto wiedzieć, co zamierzasz zrobić ze skopiowaną zawartością.
  • Najpierw " wybierz " jakiś tekst w " buforze ", a nie w " plik ". Po drugie, " wybranie " jest często bezużyteczne w Vimie, więc musisz jasno określić, co chcesz z tym zrobić " wybór ". Dla Ciebie i dla nas.
  • @romainly Myślę, że OP oznacza wybranie całego pliku w trybie wizualnym, biorąc pod uwagę, że ctrl+a w innych edytorach wizualnie podświetla cały plik .
  • @statox Dlaczego wyedytowałeś vsvim ? To ' nie jest dla mnie wielkim problemem, ale myślę, że tag jest całkowicie odpowiedni, a nie ' nie chciałem wchodzić wojna edycji. (Pingowałbym Cię w :chat!, ale nie ' nie byłeś ostatnio w tym pokoju, więc nie ' nie pozwól mi)
  • @DJMcMayhem: To był błąd: na początku pomyślałem, że vsvim jest jak vimperator i tego rodzaju wtyczek do innych programów, więc nie było to tematem, więc je usunąłem, potem miałem wątpliwości, więc sprawdziłem meta i zobaczyłem, że to na temat , więc zatwierdziłem edycję tagu, ale zapomniałem zmienić ponownie pytania. ' zmieniam to teraz, przepraszam za to.

Odpowiedź

ggVG zaznacza całą zawartość. gg przechodzi do pierwszej linii. V uruchamia tryb wizualny. G przeskakuje do ostatniej linii, wybierając tym samym od pierwszej do ostatniej linii

Komentarze

  • Ciągle otrzymuję nie polecenie vim dla ggVG i gg, nawet G
  • 77 głosów za i oznaczonych jako zaakceptowana odpowiedź, ale ' jest źle? Nawet zgodnie z treścią samej odpowiedzi kombinacją będzie VggG.

Odpowiedź

Wraz z SibiCoder ” Jeśli masz jasne wyobrażenie o tym, co chcesz zrobić, możesz użyć następującego:

:%X 

Gdzie X to polecenie, na przykład:

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

Masz również globalne polecenie :g, które wraz z wzorzec wyszukiwania ^, może zrobić to samo:

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

Jeśli chcesz zaznaczyć tekst, wtedy ggVG jest w porządku, ale pamiętaj o tej metodzie, jeśli już wiesz, jaki jest następny krok. Pamiętaj, że nie pozostawi on kursora w trybie wizualnym.

Zobacz: :h :% i :h :g w celach informacyjnych.


Pamiętaj, że mimo mapowanie C-A jest używane w vimie (patrz :h CTRL-A), możesz je zamapować na zrób to, co robią inni redaktorzy:

nnoremap <C-A> ggVG 

Odpowiedź

Pozostałe odpowiedzi są dobre . Oto kolejna alternatywa.

Ponieważ wspomniałeś, że używasz VsVim, możesz zmienić, które klawisze są obsługiwane przez Visual Studio, a które z vsvim. Idź do

Narzędzia -> Opcje -> VsVim -> Klawiatura

Stamtąd możesz ustawić Ctrl-a na być obsługiwane przez Visual Studio, a nie VsVim.

Chociaż nie polecam tego, ponieważ nie będziesz mógł używać <C-a> vima, co uważam za być istotną cechą. Chociaż to zależy od Ciebie.

Odpowiedź

możesz użyć dużej liczby, na przykład 99999yy aby zaznaczyć całą zawartość pliku

Komentarze

  • Pliki większe niż 100000 linie są możliwe, choć rzadkie. Ponadto użycie yy spowoduje ich szarpnięcie , a nie wybierz je.
  • tak, na pewno masz rację, ale wybierając coś, ' s w większości przypadków do wycinania, kopiowania lub usuwania 🙂
  • To ' jest tym, czego potrzebowałem. Zaznacz wszystko i szarpnij.
  • Po prostu :%y wystarczy. Lub :%y +, aby wyszarpnąć wszystko w rejestrze +.

Odpowiedź

Jak wspomniał @SibiCoder ggVG załatwia sprawę , ale lubię coś bliższego Ctrl+A.

Dlatego dodałem tę linię do mojego .vimrc

nnoremap <leader>a ggVG 

Teraz naciśnięcie <leader>a spowoduje zaznaczenie wszystkiego, w moim przypadku „s \a.

Komentarze

  • Witamy w Vi i Vimie ! Teoretycznie możesz map control a (<C-a>), ale zdarza się, że ma użyteczną domyślną funkcjonalność
  • Tak, że ' s dlaczego wolę <leader>a

Odpowiedź

Jeśli „d jak szybszy / bardziej intuicyjny sposób na zrobienie tego i nie przejmuj się dodawaniem wtyczki, wygląda to poręcznie: https://github.com/kana/vim-textobj-entire

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *