[Tip] vim에서 화면 전환 없이 콘솔 명령어 실행하기
www.recopick.com

안녕하세요. 블로그 글을 작성하라는 팀장님의 협박에 마지못해 끌려나온 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

댓글을 달아 주세요