Nie jestem bynajmniej użytkownikiem zaawansowanym vim, dopiero zaczynam rozumieć zaawansowane ruchy i polecenia za pomocą vim. Ale jest jedna wada, której nie mogę się obejść.
Dorastałem z programami graficznymi do pisania kodu, ale niedawno zacząłem używać vim over ssh & screen do pracy przy dość dużych projektach z wieloma folderami.
Jestem ciekaw, co robią mistrzowie vima, aby szybko i łatwo pracować z wieloma plikami. Jako przykład rozważ aplikację Railsową. Powiedz, że chcesz edytować kontroler, aby uruchomić.
vim app/controllers/controller.rb
Ale potem szybko chcesz przejść do edycji widoku lub migracji bazy danych, moim pierwszym instynktem jest :wq
powrót do bash, aby przejść do tego katalogu i ponownie uruchomić vima w zupełnie nowym buforze.
To oczywiście błędne.
Dowiedziałem się o kilku rzeczach, takich jak:
- Clientserver (ale nie chcę używać X przez ssh i wydaje się, że to jedyny sposób)
:e
aby otworzyć inny plik podczas przeglądania, ale nie mogę tego zrobić bardzo szybko. Tab Complete naprawdę mnie zaskakuje.- Otwieranie całego katalogu i przeszukiwanie buforów.
- NERDTree jest obiecujący, ale naprawdę chcę trzymać się z daleka od jakiejkolwiek reprezentacji graficznej, aby nadal zmuszać mnie do opanowania nawigacji w wierszu poleceń
Przepraszam za bycie naiwnym, ale naprawdę chcę nauczyć się, jak to zrobić, nawet jeśli jest to bardzo subiektywne.
Jakie są twoje metody i co byś polecił?
rails-type-navigation
w dokumentacji lub:help rails-type-navigation
kiedy mieć to zainstalowane).Odpowiedzi:
Możliwe jest skonfigurowanie vima do edycji wielu plików bez konieczności wychodzenia. Używasz wielu buforów i przełączasz się między nimi. Ponieważ używasz wewnętrznego ekranu vima, możesz w swoim ~ / .vimrc umieścić następujące elementy, aby to włączyć.
Te mapowania klawiszy odwzorowują klawisze Ctrl-Strzałka w lewo i Strzałka w prawo, aby przełączać bufory. Klawisz F4 wywołuje to samo menu, które wyświetlałby GUI. Naciśnięcie karty wyświetla teraz także małe menu do wybierania zakończenia po naciśnięciu karty prasy.
źródło
Hah! Byłem dokładnie taki jak ty, więc wiem dokładnie, skąd pochodzisz. Nawet teraz, gdy wiem, co robię do pewnego stopnia (nie jestem bogiem vimów, ale mam nadzieję, że się tam dostanę), od czasu do czasu zrobię: wq i wrócę do mojej powłoki.
Sprawdź to - może ci to pomóc. (Pomoże mi to również, ponieważ nigdy o tym nie wiedziałem. To jest niesamowite w witrynach Stackexchange - uczysz się, pomagając innym się uczyć!)
Oto kilka rzeczy, które robię.
:e
Poleceń. Od wewnątrz vima, podczas edycji pliku, możesz zrobić coś takiego,:e dir/subdir/otherfile
a otworzy się on w nowym buforze, co oznacza, że będziesz mieć otwarte dwa pliki jednocześnie.Ctrl-Shift-6
(Nie znam rzeczywistych wartości ascii). Jeśli masz otwarte dwa bufory, możesz przełączać się między nimi błyskawicznie za pomocą tego przełącznika.bd
- usuwanie bufora. Pozwala wyczyścić bufor.To jest naprawdę bardzo przydatne -
:sh
. Jeśli musisz wrócić do powłoki z jakiegokolwiek powodu (powiedzmy, aby spojrzeć na katalog i chmod plik), możesz wywołać polecenie powłoki vima, zrób to. Wyjście ze skorupy zabierze cię z powrotem do miejsca, w którym byłeś w vimie.W tej samej kategorii co powyżej - wpisanie
:!
i polecenie unix wykona to polecenie. Wypróbuj to zls
. (Myślę, że działa również z wbudowanymi powłokami, ale nie jestem pewien).Tych używam cały czas. Jest też
:n
następny i:p
poprzedni plik, ponieważ możesz mieć więcej niż dwa bufory otwarte w vimie (zwykle jednak tego nie robię).źródło
:sh
,:e
i właściwe zarządzanie buforami, a robi się sexyCtrl+Z
należy zawiesić proces (fg
od powłoki, aby wyświetlić go ponownie) - co jest alternatywą dla:sh
.W tym miejscu zaczynasz używać wtyczek . Do zarządzania plikami (lub buforami) powszechne są drzewa NERD i MiniBufExplorer . W twoim przypadku wybrałbym Google „ vim ruby ide ” i podążam za jednym z wielu samouczków, które znajduję. Używam Pythona i 3 polecenia w tym samouczku konfigurują wszystko, czego potrzebuję z Vima.
źródło
Poleciłbym również korzystanie z podzielonych okien do przeglądania wielu plików jednocześnie. Dodaj umiejętności zarządzania buforami i oknami w VIM, a będziesz ninja VIM w mgnieniu oka.
Aby zapoznać się z rzeczywistą dokumentacją, odsyłam cię do dokumentacji systemu Windows VIM , ale postaram się dać ci przewagę tutaj.
Uruchom VIM z 2 (lub więcej) poziomo podzielonymi oknami, górne okno ma plik 1, następne okno w dół ma plik2 itp.
Uruchom VIM z 2 (lub więcej) pionowo podzielonymi oknami, najbardziej lewe okno ma plik1, następne okno ma plik2 itp.
Przesuń kursor do innego okna:
Już edytujesz jeden plik, ale chcesz podzielić okno i edytować inny plik również:
Dla podziału poziomego i pionowego odpowiednio.
Istnieją również polecenia do przenoszenia okien, zmiany ich wielkości itp.
źródło
Użyj polecenia vi: split, aby otworzyć drugie okno edycji. podział może wykonywać zarówno podział poziomy, jak i pionowy oraz więcej niż dwa jednocześnie. W tej samej sesji vi miałem otwartych aż 10 plików.
źródło