Vim(Neovim)으로 PHP 코딩하기

 

저는 SE로 경력을 시작한 경우라 처음 개발툴로 Vim을 사용했고 그후 이클립스(PDT)로 넘어가 오랜동안 사용했었습니다. 그러다가 최근 다른 툴을 사용해보자라는 생각이 들어 아톰을 잠깐 써보았지만 깃허브가 MS에 인수된 영향으로 미래가 불투명해 보였기에 Vim(Neovim)을 다시 사용해보고 있습니다. 오랜만에 Vim으로 환경 설정하면서 느낀 점과 몇가지 팁들을 정리해보겠습니다.

  • 플러그인 설정은 ‘Vim for PHP: The Complete Guide for a Powerful PHP IDE’ 글을 참고했습니다. 잘 정리되어 있는 글이지만 3년전 내용이라 지금과는 차이가 있는 부분도 있습니다.
  • 사용하는 Vim은 Neovim 0.4.3 입니다.
  • 오랜만에 코딩에 vi를 사용하는 것이라 손이 둔해진 느낌이지만 텍스트 편집에서 vi가 가지는 장점은 여전히 다른 비주얼 에디터들을 압도한다라는 생각입니다.
  • 위에서 이야기한 참고글에서는 Ctags 사용 방법으로 2가지를 이야기하고 있는데 첫번재 방법인 git hook을 이용하는 방법은 글과는 달리 제대로 작동하지 않았고 이런저런 문제가 있었습니다. Gutentags를 사용하는 방법이 더 깔끔하게 작동했습니다. Gutentags 사용을 위해서는 프로젝트 루트에 .gutctags 파일을 생성하고 Ctags 실행 옵션을 넣어주야 합니다.
  • 자동 완성 플로그인으로 phpactor를 사용하고 있는데 이 플로그인의 단점은 composer를 사용하는 프로젝트에서 자동 완성 기능을 제대로 작동하게 하기 위해서는 vi를 프로젝트 루트 디렉토리에서 실행해야 합니다. 따라서 NERDTree와 같은 플로그인을 사용하는 것이 필수입니다.
  • 코드에 문제가 있을 경우 표시해주는 neomake의 경우 창이 작은 상태에서는 내용이 긴 에러를 파악하는데 어려움이 있습니다. 검색을 해본 결과로는 현재 플로그인 구조로는 어쩔 수 없는 문제로 보여 창을 전체 화면으로 하고 사용할 수 밖에 없습니다. 코드 오류 표시기로 PHP_CodeSniffer를 사용하고 있는데 코드 표준으로 PSR(기본값은 PEAR)을 지정할 수 있기 때문입니다. 코드 표준으로 PSR12로 지정하기 위해서는 init.vim에 다음을 추가해줍니다. let g:neomake_php_phpcs_args_standard = 'PSR12'
  • Vim의 버퍼와 탭 사용에 대해 참고할만한 글이 있어 소개합니다. ‘Vim의 탭은 그렇게 쓰는 게 아니다. 버퍼와 탭의 사용법’. 간단히 요약한다면 ‘Vim의 탭은 일반 비주얼 에디터의 탭과는 다른 개념이다. Vim에서는 탭 대신 버퍼를 사용해야 한다.’입니다.