VIM 을 C++ 에서 사용하기에도 좋을까요?
저는 10년정도 VIM을 사용해왔습니다.
대단한 프로그램을 만든 적은 없고 회사일에 간단간단하게만 썼고 주로 C 언어를 위해 사용했었습니다.
그런데 최근에 C++로 조금 큰 소스코드를 보는데 VIM이 너무 불편하다고 느껴졌습니다.
컴파일러 버전별 C++ 표준 라이브러리의 헤더파일 경로 설정하기가 불편합니다. 물론 표준 라이브러리의 헤더파일을 보지는 않습니다만, C 언어는 그냥 되는 것인데 C++ 에서도 되었으면 하는데 일일이 설정하는 것이 불편합니다. 자동으로 경로설정이 되는 vimrc 설정을 찾아보았는데, 찾아는 지는데,.. 이렇게 찾아야 한다는 것이 힘이 듧니다. C 표준라이브러리 헤더파일은 ctrl+w -> f 키로 언제나 그냥 열리는데 C++은 이렇게 별도 설정을 해야 한다는 점에서 VIM 은 C++ 을 보는데 쓰기에는 안 맞는 것 같다는 첫 번째 느낌이 듧니다.
클래스의 맴버 함수의 정의부를 찾는 것이 힘듧니다. 예를 들어서 어떤 클래스의 Init() 이라는 함수의 정의를 보고 싶을 때 tags 와 cscope.out 파일을 만들고 소스코드에서 ctrl+] 를 눌러보면 모든 클래스의 Init() 함수가 다 나옵니다. 그 목록이 몇 페이지씩 되게 되면 그 중에서 해당 클래스를 골라야 하는데 이것이 너무 힘듧니다. C 언어에서도 구조체 멤버로 함수를 사용하면 비슷한 일이 생기겠지만 C++ 에서는 Init() 과 같이 같은 이름의 함수가 각 클래스마다 너무나 많아서 이 역시 VIM을 C++ 에서 사용하기에는 안 맞는 것 아닌가 하는 생각이 들게 됩니다.
예전에는 이런 것이 힘들다고 생각 안했었습니다. 유료프로그램 해적판을 쓰는 것 보다는 VIM을 쓰는 것이 낫다고 생각했지요. 그 유료 프로그램은 소스인사이트입니다. VIM을 윈도우와 리눅스 모두에서 사용하며 혼자만의 자부심(?) 이상하지만, 말도 안되지만, 무언가 나는 VIM 사용자라는 것을 자랑하고 싶은(?) ... 좀 쓸데 없는 생각들도 있던 것 같아요.
언젠가 서브라임텍스트가 나왔을 때 저에게 어떤 후배가 서브라임텍스트를 추천했었어요. 그런데 저는 서브라임텍스트는 눈에 들어오지 않더라구요..
그런데 요즘은 VSCode 를 다들 사용하시더라구요. 이 물건 한번 써보며 VIM 의 위의 단점들과 비교해서 너무나 편하게 느껴졌습니다. 특히 클래스 맴버함수가 어떤 객체로 포인팅 되어 사용하는 복잡한 구문에서도 한번에 정확한 클래스의 함수 정의부로 곧바로 이동하는 것을 보니 VIM 이 너무 불편하다 생각이 들었습니다. 게다가 VSCode는 MIT 라이센스이고, 모든 플랫폼을 지원하고요...
이제는 C 언어를 임베디드 환경에서 사용하는 것 이외에는 VIM 을 쓸 이유가 없는 것 같아요. 마찬가지로 소스인사이트도 이제 한물 가겠구나 생각이 들었습니다. VSCode 말고 Atom 도 있지요. 너무 좋은 프로그램들이 많아지는 것 같습니다.
VIM 의 위 단점들은 제가 잘 몰라서 못쓰는 것일 까요? 아니면 다른 분들도 VIM 에서 함수 정의부 찾을 때 저처럼 고생스럽게 하시나요? 앞으로 VIM 사용자는 더욱 줄어들지 않을까요?
vs code에 vim extension 을 설치해서
vs code에 vim extension 을 설치해서 사용해 보기도 했지만, 그리 효용성이 없어 거의 쓰지 않게 되더라구요.
점점 legacy 가 되어 가는 느낌입니다.
emacs 도 켠지 1년이 넘은 것 같네요.
대세라고 해야 하나요 - 에디터의 현대화!
제가 C 와 스크립팅만 개발할때는 emacs 나 VIM (주로 emacs) 를 쓰고 아무 불편을 못 느꼈습니다만, 부서를 이동해서 이제 소위 풀스텍자바디벨로퍼가 된 후는 vs code 와 젯브레인의 IntelliJ IDEA 를 씁니다. 처음엔 좀 불편했는데 익숙해 지니까 참 편하고 효율적이더군요.
이제 VIM 과 emacs 는 역사의 뒤안길로 사라지는거 아닌가 싶어, emacs 를 30 년 정도 사용하던것이라 좀 섭섭하기도 합니다.
사람은 (옛날 VIM/emacs 세대) 그대로인데 자꾸 바뀌니 따라가야지요, 헤헤..
여의도자바
저는 다 씁니다.. :)
저는 다 씁니다.. :)
코드 리뷰 혹은 코드 추적할 때는 Source Insight 씁니다. 전 돈주고 Source Insight 라이센스 샀어요. 사실 코드 그냥 읽으면서 공부할 때는 아직까지도 Source Insight 만한 툴을 못 찾았습니다. 코드 리뷰하다가 간단히 코드 수정할 때도 그냥 Source Insight에서 바로 수정합니다. 은근 에디팅 기능도 괜찮습니다. wine으로 설치하면 리눅스에서도 잘 동작합니다.
각잡고 코딩 좀 많이 할 땐 VScode 씁니다. 주로 C, C++을 짬뽕으로 섞어서 코딩하는데, 본문에서 말씀하신대로 여러면에서 VScode가 편합니다.
간단 간단하게 파일 한 개씩 열어서 코드 볼 때는 VIM 씁니다. 혹은 로그파일 분석할 때도 VIM 씁니다. 테스트 코드 작성하거나, Makefile 같은거 열어볼 때도 VIM 씁니다.
간단한 메모는 Notepad++로 합니다.
그래서 제 워크스테이션에는 Source Insight, VScode, VIM, Notepad++이 모두 실행 중입니다:)
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
혹시 vim 쌩으로 쓰시나요??
nvim이랑 packer로 플러그인 덕지덕지 붙이다가 요즘엔 완성형으로 만들어진 lunarvim 사용합니다.
왠만한 IDE에서 되는건 기본적으로 세팅되있고, 원하는 플러그인 붙여서 커스터마이징 하기도 좋고...