RecoPick



안녕하세요. 블로그 글을 작성하라는 팀장님의 협박에 마지못해 끌려나온 blmarket 입니다.


오늘 소개해드릴 내용은 vim을 써서 개발하는 개발자 분들이 별다른 화면 전환 없이 콘솔 명령어를 실행할 수 있게 해주는 방법을 소개해드릴까 합니다. 대개 리눅스나 맥에서 콘솔 + vim으로 개발하시는 분들이 참조하시면 괜찮지 않을까 싶습니다.


기본적인 아이디어는 tmux에서 제공하는 send-keys 명령어를 사용하는 것입니다.


0. 글 읽는 것보다 동영상을 보는게 편하신 분들은 아래 동영상을 보시면 되겠습니다.(1080p 이상 해상도 설정을 권장합니다)



1. 제일 먼저 tmux를 설치합니다. 맥은 기본으로 설치되어 있으나, 리눅스의 경우 설치되지 않은 경우도 있으므로 apt-get 등을 사용해서 설치해줍니다.


2. 다음 vim 설정을 해야 합니다. 저는 :A, :B, :C 명령을 사용했습니다. 아래에 .vimrc 파일의 일부 내용이 포함되어 있습니다.

com! -nargs=0 A execute "silent !tmux send-keys C-c \"   source(\'cur.R\')\" C-m" | execute 'redraw!'
com! -nargs=0 B execute 'silent !tmux send-keys C-c "   make test" C-m' | execute 'redraw!'
com! -nargs=0 C execute 'silent !tmux send-keys "   grunt" C-m' | execute 'redraw!'


3. 다음 화면과 같이 tmux 화면과 vim 화면을 같이 띄웁니다.

4. 개발 작업을 하다가... 필요할 때마다 vim 화면에서 바로 :B 명령어를 입력하면... Profit!


5. (Advanced) 만약 자기가 진성덕후의 길을 걷고싶은 분이시라면... https://github.com/alevchuk/vim-clutch 를 추천합니다. 페달 밟을 때마다 테스트 명령어가 실행된다면... 혹은 ci 서버에서 자동화 빌드가 실행된다면... 개발속도가 20% 정도 빨라질 것 같지 않나요?

Posted by recopick