5 przykładów najlepszego wykorzystania Rubiego
Czy kiedykolwiek zastanawiałeś się, co możemy zrobić z Ruby? Cóż, niebo jest prawdopodobnie granicą, ale chętnie porozmawiamy o kilku mniej lub bardziej znanych przypadkach...
Kilka lat temu grillowałem z kilkoma moimi przyjaciółmi, wszyscy byli programistami Java. Nie jestem pewien, jak do tego doszło, ale zaczęliśmy rozmawiać o naszych środowiskach programistycznych. Powiedziałem im, że cały mój program tworzę przy użyciu Vima i terminali. Wywołało to kilka żartów i zabawnych pytań, np. czy nadal używam kart dziurkowanych 🙂
Od tego czasu wypróbowałem kilka "prawdziwych" IDE, ale zawsze wracałem do Vim i terminale, ponieważ jest to bardzo szybka metoda, ma wszystkie narzędzia, których potrzebuję i po prostu lubię pracować w trybie tekstowym.
Oto kilka szczegółów na temat mojego przepływu pracy. Warto wspomnieć, że pracuję na Linuksie, ale bez problemu można go skonfigurować na Macu lub Windowsie.
Swój dzień pracy zaczynam od otwarcia terminala, cd ~/Projects/XYZ i uruchomienia aplikacji tmuxwięc zacznijmy od tego.
Co to jest TMUX? Jak mówią autorzy:
TMUX jest multiplekserem terminali. Pozwala łatwo przełączać się między kilkoma programami w jednym terminalu, odłączać je (działają w tle) i ponownie dołączać do innego terminala.
Używam go do przełączania się między wieloma rzeczami w jednym terminalu. Tak więc, w jednym TMUX okno, mam Szyny serwer uruchomiony, w drugim mam mój Vim i za każdym razem, gdy muszę zrobić coś w terminalu, na przykład sprawdzić trasy, uruchomić migracje lub testy, po prostu otwieram nowe okno z napisem CTRL-A C
i zrobić to.
Nie używam TMUX paneli, tylko okien, i robię dużo przełączania (mam CTRL + podwójne wiązanie A do przełączania między ostatnimi oknami).
Kolejną bardzo wygodną funkcją TMUX jest to, że pozwala mi znaleźć i skopiować tekst z terminala bez użycia myszy.
To główna część mojego przepływu pracy. Nie będę wdawał się w szczegóły na temat tego, co VIM i czym różni się od innych edytorów. Istnieje wiele świetnych artykułów i filmów na ten temat. W kilku słowach, Vim jest edytorem modalnym. Posiada on dwa tryby, tryb wstawiania i tryb normalny. Wstawianie służy do wpisywania tekstu do dokumentu, a normalny do wykonywania różnych operacji na dokumencie, takich jak przesuwanie kursora, usuwanie fragmentów tekstu, zmienianie go itp. Brzmi to dziwnie, ale po pewnym czasie czuje się bardzo naturalnie i bardzo trudno jest wrócić do zwykłego edytora.
To, co chciałbym ci pokazać, to sposób, w jaki łączę Vim z innymi narzędziami, aby uzyskać wszystko, czego potrzebuję jako twórca stron internetowych.
Nie jestem fanem ciężkich wtyczek Vim konfiguracji, więc używam tylko kilku. Oto lista:
NERDtree - jest eksploratorem plików. Umożliwia łatwe wykonywanie podstawowych operacji w systemie plików, takich jak przenoszenie plików, zmiana nazwy, tworzenie nowych plików i wiele innych,
vim-endwise - Jestem programistą Ruby, więc używam go do dodawania koniec
po jeśli
, robić
, def
i kilka innych słów kluczowych,
vim-rails - to Szyny power plugin. Zna ona strukturę pliku Aplikacja Rails. Chcesz sprawdzić część pod kursorem? Wystarczy nacisnąć gf
i otworzy ją w bieżącym oknie. Ma też wiele innych opcji, ale z tej korzystam najczęściej,
vim-surround - Świetna wtyczka, która bardzo ułatwia pracę z otoczeniem. Za jej pomocą można zmienić otoczenie tekstu z () na [] za pomocą kilku naciśnięć klawiszy,
vim-repeat - komplementarny do Vim-surround. Pozwala na powtarzającą się zmianę otoczenia z .
(powtórz ostatnią zmianę w Vim),
vimwiki- mój sposób na robienie notatek,
fzf.vim+ fzf - główną częścią mojego tworzenie stron internetowych przepływ pracy.
Są to narzędzia, które definiują mój sposób kodowania. Zdałem sobie sprawę, że zazwyczaj, gdy wykonuję jakieś zadania związane z kodowaniem, większość czasu spędzam na sprawdzaniu, jak dane rzeczy działają. Aby to zrobić, muszę szybko sprawdzić różne części bazy kodu, definicje metod, klasy i inne rzeczy.
Fzf to interaktywny filtr uniksowy dla wiersza poleceń, który może być używany z dowolnymi listami (pliki, historia poleceń, zatwierdzenia git, listy procesów); innymi słowy, jest to wyszukiwarka rozmyta.
Ripgrep jest alternatywą dla grep, ale jest niesamowicie szybki.
Po połączeniu, te dwa elementy pozwalają mi szybko znaleźć wszystko, czego chcę w moim projekt.
Mam dwa ustawienia w moim Vim plik konfiguracyjny, aby mi w tym pomóc:
nnoremap :Files
nnoremap :Rg
Pierwsza z nich pozwala mi szybko znaleźć odpowiednie pliki za pomocą wyszukiwania rozmytego na ścieżkach plików (CTRL-P). Drugi uruchamia wyszukiwarkę rozmytą na wszystkich ścieżkach i zawartości plików w moim projekcie przy użyciu Ripgrep (CTRL-F).
Powiedzmy, że chcę znaleźć migrację, w której dodałem kolumnę do pliku użytkownicy
tabela. Naciskam CTRL-F i piszę coś w stylu adcolusnam
i będzie pasować add_column :users, :name, :string
.
Kiedy szukam definicji metody, często uruchamiam CTRL-F def method_name
.
Jest to bardzo przydatne, ponieważ przeszukuje ścieżkę pliku + zawartość. Jest to szczególnie wygodne, gdy wiem, że zawartość, której szukam, znajduje się w określonej części projektu. Na przykład, chcę znaleźć miejsce, w którym zaktualizowaliśmy nazwę użytkownika i pamiętam, że było to gdzieś w kontrolerach. Naciskam CTRL-F
conupdname
aby dopasować linię app/controllers/users_controller: @user.update(name: new_name)
.
Jeśli znasz swój projekt i strukturę bazy kodu, możesz łatwo skonstruować rozmyte zapytania wyszukiwania, aby szybko znaleźć prawie wszystko, czego potrzebujesz.
Kliknij tutaj aby zobaczyć krótkie nagranie, na którym bawię się bazą kodu `discourse` (440k LOC na moim i5, 16GB desktop) i pokazuję, jak zwykle poruszam się po projekcie.
Mam nadzieję, że zainteresował Cię mój setup i zdecydowałeś się go udostępnić. Fzf spróbować swoich sił w kodowaniu. To naprawdę zmieniło sposób, w jaki używam Vim jako kod red.