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가 이미 존재합니다') } else { w.LeadBooster = { q: [], on: 함수 (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 함수 (n) { this.q.push({ t: 't', n: n }) }, } } })() TMUX, Vim, Fzf + Ripgrep을 사용한 레일 개발 - The Codest
The Codest
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 산업 분야
    • 핀테크 및 뱅킹
    • E-commerce
    • 애드테크
    • 헬스 테크
    • 제조
    • 물류
    • 자동차
    • IOT
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
뒤로 화살표 뒤로 가기
2021-06-07
소프트웨어 개발

TMUX, Vim, Fzf + Ripgrep을 사용한 레일 개발

The Codest

마르신 돌리와

Software Engineer

몇 년 전, 저는 모두 Java 개발자인 친구들과 함께 고기를 구워 먹고 있었습니다. 어떻게 이런 얘기가 나왔는지는 모르겠지만 코딩 환경에 대해 이야기를 나누기 시작했습니다. 저는 Vim과 터미널을 사용하여 모든 개발을 하고 있다고 말했죠. 그러자 아직도 펀치 카드를 사용하느냐는 등의 농담과 재미있는 질문이 이어졌죠.

그 이후로 몇 가지 "진짜" IDE를 사용해 보았지만 항상 다시 돌아오는 것은 Vim 매우 빠른 방법이고 필요한 모든 도구가 있으며 텍스트 모드로 작업하는 것을 좋아하기 때문입니다.

제 워크플로에 대한 자세한 내용은 다음과 같습니다. 저는 Linux에서 작업하지만 Mac이나 Windows에서도 문제 없이 설정할 수 있다는 점을 말씀드리고 싶습니다.

저는 터미널을 열고 ~/Projects/XYZ를 CD로 만든 후 실행하는 것으로 하루를 시작합니다. tmux부터 시작하겠습니다.

TMUX

무엇 TMUX? 저자의 말처럼:

TMUX는 터미널 멀티플렉서입니다. 하나의 터미널에서 여러 프로그램을 쉽게 전환하고, 분리했다가(백그라운드에서 계속 실행) 다른 터미널에 다시 연결할 수 있습니다.

저는 하나의 터미널에서 여러 가지를 전환하는 데 사용합니다. 따라서 하나의 TMUX 창을 열면 레일 서버를 실행하는 순간 Vim 를 열고 경로 확인, 마이그레이션 또는 테스트 실행과 같이 터미널에서 작업을 수행해야 할 때마다 다음을 사용하여 새 창을 열면 됩니다. CTRL-A C 를 클릭하고 작업을 수행합니다.

사용하지 않습니다. TMUX 창만 사용하고 많은 전환을 수행합니다(저는 마지막 창 사이를 전환하기 위해 CTRL + 더블-A 바인딩을 사용합니다).

의 또 다른 매우 편리한 기능 TMUX 는 마우스를 사용하지 않고도 터미널에서 텍스트를 찾아 복사할 수 있다는 점입니다.

Vim

이것이 제 워크플로우의 주요 부분입니다. 자세한 내용은 다루지 않겠습니다. VIM 가 다른 편집기와 어떻게 다른지 알아보세요. 이에 대한 훌륭한 기사와 동영상이 많이 있습니다. 몇 마디로 요약하자면 Vim 는 모달 편집기입니다. 삽입 모드와 일반 모드의 두 가지 모드가 있습니다. 삽입 모드는 문서에 텍스트를 입력하는 모드이고 일반 모드는 커서 이동, 텍스트 조각 삭제, 변경 등 문서에서 다양한 작업을 수행하는 모드입니다. 이상하게 들리지만 시간이 지나면 매우 자연스럽게 느껴지고 일반 편집기로 돌아가기가 매우 어렵습니다.

제가 보여드리고 싶은 것은 제가 어떻게 Vim 다른 도구와 함께 사용하면 웹 개발자로서 필요한 모든 것을 얻을 수 있습니다.

플러그인

저는 무거운 플러그인을 좋아하지 않습니다. Vim 구성이 많지 않아서 몇 개만 사용하고 있습니다. 다음은 목록입니다:

NERDtree - 파일 탐색기입니다. 파일 이동, 이름 바꾸기, 새 파일 만들기 등 기본적인 파일 시스템 작업을 쉽게 수행할 수 있습니다,

vim-endwise - 저는 루비 개발자이므로 루비를 사용하여 다음과 같은 기능을 추가합니다. 끝 이후 만약, do, def및 기타 여러 키워드,

vim-rails - 그것은 레일 전원 플러그인. 이 플러그인은 Rails 앱. 커서 아래의 부분을 확인하고 싶으신가요? 그냥 gf 를 클릭하면 현재 창에서 열립니다. 다른 옵션도 많지만 제가 가장 자주 사용하는 옵션입니다,

vim-surround - 주변 환경 작업을 매우 쉽게 해주는 훌륭한 플러그인입니다. 이 플러그인을 사용하면 몇 번의 키 입력만으로 텍스트의 주변을 ()에서 []로 변경할 수 있습니다,

vim-repeat - Vim-서라운드를 보완합니다. 이를 통해 다음과 같은 반복적인 주변 환경 변경이 가능합니다. . (Vim에서 마지막 변경 사항을 반복합니다),

vimwiki- 필기하는 제 방식입니다,

fzf.vim+ fzf - 의 핵심 부분입니다. 웹 개발 워크플로.

협력 배너

Fzf + Ripgrep

이 도구들은 제가 코딩하는 방식을 정의하는 도구들입니다. 저는 보통 코딩 작업을 할 때 대부분의 시간을 어떻게 작동하는지 찾는 데 보낸다는 사실을 깨달았습니다. 그러기 위해서는 코드베이스의 여러 부분, 메서드 정의, 클래스 등을 빠르게 확인해야 합니다.

Fzf 는 모든 목록(파일, 명령 기록, git 커밋, 프로세스 목록)에 사용할 수 있는 명령줄용 대화형 Unix 필터로, 다시 말해 퍼지 파인더입니다.

Ripgrep 는 grep의 대안이지만 매우 빠릅니다.

이 두 가지를 결합하면 원하는 것을 빠르게 찾을 수 있습니다. 프로젝트.
내 설정에 두 가지 설정이 있습니다. Vim 구성 파일에 대한 도움말을 제공합니다:

nnoremap  :Files
nnoremap  :Rg

첫 번째는 파일 경로에서 퍼지 찾기(CTRL-P)를 사용하여 올바른 파일을 빠르게 찾을 수 있게 해줍니다. 두 번째는 다음을 사용하여 프로젝트의 모든 경로와 파일 내용에 대해 퍼지 파인더를 실행합니다. Ripgrep (CTRL-F)를 클릭합니다.

따라서 열을 추가한 마이그레이션을 찾고 싶다고 가정해 보겠습니다. 사용자 테이블에 입력합니다. CTRL-F를 누르고 다음과 같이 작성합니다. 애드콜러스남 와 일치합니다. add_column :사용자, :이름, :문자열.

메서드 정의를 찾을 때 종종 CTRL-F를 실행합니다. def 메서드_이름.

파일 경로 + 콘텐츠를 검색하기 때문에 매우 유용합니다. 특히 찾고 있는 콘텐츠가 프로젝트의 특정 부분에 있다는 것을 알고 있을 때 편리합니다. 예를 들어 사용자 이름을 업데이트한 위치를 찾고 싶은데 컨트롤러 어딘가에 있었던 것으로 기억합니다. 저는 CTRL-F conupdname 줄을 일치시키기 위해 앱/컨트롤러/사용자_컨트롤러: @user.update(name: new_name).

프로젝트와 코드베이스 구조를 알고 있다면 퍼지 찾기 쿼리를 쉽게 구성하여 원하는 거의 모든 것을 빠르게 찾을 수 있습니다.

비디오

여기를 클릭하세요 를 통해 제가 '담론' 코드베이스를 가지고 놀면서(i5, 16GB 데스크톱에서 440k LOC) 평소 프로젝트에서 어떻게 움직이는지 보여주는 짧은 녹화 영상을 보실 수 있습니다.

요약

제 설정에 관심을 가져주시고 Fzf 를 코딩에 사용해 보세요. 제가 사용하는 방식이 정말 바뀌었어요. Vim 로서 코드 편집기.

관련 문서

핀테크

루비를 가장 잘 활용하는 5가지 예

루비로 무엇을 할 수 있는지 궁금한 적이 있으신가요? 글쎄요, 아마도 하늘이 한계일 것입니다만, 어느 정도 알려진 몇 가지 사례에 대해 이야기하게 되어 기쁩니다...

The Codest
파웰 무진스키 Software Engineer
소프트웨어 개발

Ruby on Rails(Pub/Sub 포함)에 대해 자세히 알아보기

Pub/Sub는 코드를 깔끔하게 만들고, 서비스를 분리하며, 쉽게 확장할 수 있도록 하는 등 프로젝트에 많은 이점을 가져다줍니다. 다음 문서에서 Pub/Sub에 대해 자세히 알아보세요...

The Codest
마이클 폴락 선임 루비 개발자
소프트웨어 개발

제품 개발: Python 대 루비

Python와 Ruby는 모두 가장 널리 사용되는 백엔드 프로그래밍 언어입니다. Python가 조금 더 대중적이고 더 광범위하게 사용됩니다. 하지만 루비도 많은 이점을 제공하며 ...

The Codest
카밀 페렌스 성장 책임자

지식창고를 구독하고 IT 분야의 전문 지식을 최신 상태로 유지하세요.

    회사 소개

    The Codest - 폴란드에 기술 허브를 둔 국제 소프트웨어 개발 회사입니다.

    영국 - 본사

    • 사무실 303B, 182-184 하이 스트리트 노스 E6 2JA
      영국 런던

    폴란드 - 현지 기술 허브

    • 파브리츠나 오피스 파크, 알레야
      포코주 18, 31-564 크라쿠프
    • 뇌 대사관, 콘스트럭터스카
      11, 02-673 바르샤바, 폴란드

      The Codest

    • 홈
    • 회사 소개
    • 서비스
    • Case Studies
    • 방법 알아보기
    • 채용 정보
    • 사전

      서비스

    • IT 자문
    • 소프트웨어 개발
    • 백엔드 개발
    • 프론트엔드 개발
    • Staff Augmentation
    • 백엔드 개발자
    • 클라우드 엔지니어
    • 데이터 엔지니어
    • 기타
    • QA 엔지니어

      리소스

    • 외부 소프트웨어 개발 파트너와의 협력에 대한 사실과 오해
    • 미국에서 유럽으로: 미국 스타트업이 유럽으로 이전을 결정하는 이유
    • 테크 오프쇼어 개발 허브 비교: 테크 오프쇼어 유럽(폴란드), 아세안(필리핀), 유라시아(터키)
    • CTO와 CIO의 주요 과제는 무엇인가요?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • 웹사이트 이용 약관

    저작권 © 2025 by The Codest. 모든 권리 보유.

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