window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster już istnieje') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Rails Development z TMUX, Vim, Fzf + Ripgrep - The Codest
The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2021-06-07
Software Development

Rails Development z TMUX, Vim, Fzf + Ripgrep

The Codest

Marcin Doliwa

Software Engineer

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.

TMUX

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.

Vim

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.

Wtyczki

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ć, defi 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.

baner współpracy

Fzf + Ripgrep

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.

Wideo

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.

Podsumowanie

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.

Powiązane artykuły

Fintech

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...

The Codest
Paweł Muszyński Software Engineer
Software Development

Więcej informacji o Ruby on Rails z Pub/Sub

Pub/Sub może przynieść wiele korzyści dla projektu - może sprawić, że kod będzie czysty, oddzielić usługi i uczynić je łatwo skalowalnymi. Dowiedz się więcej o Pub/Sub w poniższym artykule...

The Codest
Michał Pawlak Starszy programista Ruby
Software Development

Rozwój produktu: Python vs. Ruby

Python i Ruby są najczęściej używanymi językami programowania zaplecza. Python jest nieco bardziej popularny i ma szersze zastosowanie. Jednak Ruby również przynosi wiele korzyści i...

The Codest
Kamil Ferens Dyrektor ds. rozwoju

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polska

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

    pl_PLPolish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek pl_PLPolish