루비를 가장 잘 활용하는 5가지 예
루비로 무엇을 할 수 있는지 궁금한 적이 있으신가요? 글쎄요, 아마도 하늘이 한계일 것입니다만, 어느 정도 알려진 몇 가지 사례에 대해 이야기하게 되어 기쁩니다...
몇 년 전, 저는 모두 Java 개발자인 친구들과 함께 고기를 구워 먹고 있었습니다. 어떻게 이런 얘기가 나왔는지는 모르겠지만 코딩 환경에 대해 이야기를 나누기 시작했습니다. 저는 Vim과 터미널을 사용하여 모든 개발을 하고 있다고 말했죠. 그러자 아직도 펀치 카드를 사용하느냐는 등의 농담과 재미있는 질문이 이어졌죠.
그 이후로 몇 가지 "진짜" IDE를 사용해 보았지만 항상 다시 돌아오는 것은 Vim 매우 빠른 방법이고 필요한 모든 도구가 있으며 텍스트 모드로 작업하는 것을 좋아하기 때문입니다.
제 워크플로에 대한 자세한 내용은 다음과 같습니다. 저는 Linux에서 작업하지만 Mac이나 Windows에서도 문제 없이 설정할 수 있다는 점을 말씀드리고 싶습니다.
저는 터미널을 열고 ~/Projects/XYZ를 CD로 만든 후 실행하는 것으로 하루를 시작합니다. tmux부터 시작하겠습니다.
무엇 TMUX? 저자의 말처럼:
TMUX는 터미널 멀티플렉서입니다. 하나의 터미널에서 여러 프로그램을 쉽게 전환하고, 분리했다가(백그라운드에서 계속 실행) 다른 터미널에 다시 연결할 수 있습니다.
저는 하나의 터미널에서 여러 가지를 전환하는 데 사용합니다. 따라서 하나의 TMUX 창을 열면 레일 서버를 실행하는 순간 Vim 를 열고 경로 확인, 마이그레이션 또는 테스트 실행과 같이 터미널에서 작업을 수행해야 할 때마다 다음을 사용하여 새 창을 열면 됩니다. CTRL-A C
를 클릭하고 작업을 수행합니다.
사용하지 않습니다. TMUX 창만 사용하고 많은 전환을 수행합니다(저는 마지막 창 사이를 전환하기 위해 CTRL + 더블-A 바인딩을 사용합니다).
의 또 다른 매우 편리한 기능 TMUX 는 마우스를 사용하지 않고도 터미널에서 텍스트를 찾아 복사할 수 있다는 점입니다.
이것이 제 워크플로우의 주요 부분입니다. 자세한 내용은 다루지 않겠습니다. VIM 가 다른 편집기와 어떻게 다른지 알아보세요. 이에 대한 훌륭한 기사와 동영상이 많이 있습니다. 몇 마디로 요약하자면 Vim 는 모달 편집기입니다. 삽입 모드와 일반 모드의 두 가지 모드가 있습니다. 삽입 모드는 문서에 텍스트를 입력하는 모드이고 일반 모드는 커서 이동, 텍스트 조각 삭제, 변경 등 문서에서 다양한 작업을 수행하는 모드입니다. 이상하게 들리지만 시간이 지나면 매우 자연스럽게 느껴지고 일반 편집기로 돌아가기가 매우 어렵습니다.
제가 보여드리고 싶은 것은 제가 어떻게 Vim 다른 도구와 함께 사용하면 웹 개발자로서 필요한 모든 것을 얻을 수 있습니다.
저는 무거운 플러그인을 좋아하지 않습니다. Vim 구성이 많지 않아서 몇 개만 사용하고 있습니다. 다음은 목록입니다:
NERDtree - 파일 탐색기입니다. 파일 이동, 이름 바꾸기, 새 파일 만들기 등 기본적인 파일 시스템 작업을 쉽게 수행할 수 있습니다,
vim-endwise - 저는 루비 개발자이므로 루비를 사용하여 다음과 같은 기능을 추가합니다. 끝
이후 만약
, do
, def
및 기타 여러 키워드,
vim-rails - 그것은 레일 전원 플러그인. 이 플러그인은 Rails 앱. 커서 아래의 부분을 확인하고 싶으신가요? 그냥 gf
를 클릭하면 현재 창에서 열립니다. 다른 옵션도 많지만 제가 가장 자주 사용하는 옵션입니다,
vim-surround - 주변 환경 작업을 매우 쉽게 해주는 훌륭한 플러그인입니다. 이 플러그인을 사용하면 몇 번의 키 입력만으로 텍스트의 주변을 ()에서 []로 변경할 수 있습니다,
vim-repeat - Vim-서라운드를 보완합니다. 이를 통해 다음과 같은 반복적인 주변 환경 변경이 가능합니다. .
(Vim에서 마지막 변경 사항을 반복합니다),
vimwiki- 필기하는 제 방식입니다,
fzf.vim+ fzf - 의 핵심 부분입니다. 웹 개발 워크플로.
이 도구들은 제가 코딩하는 방식을 정의하는 도구들입니다. 저는 보통 코딩 작업을 할 때 대부분의 시간을 어떻게 작동하는지 찾는 데 보낸다는 사실을 깨달았습니다. 그러기 위해서는 코드베이스의 여러 부분, 메서드 정의, 클래스 등을 빠르게 확인해야 합니다.
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 로서 코드 편집기.