요즘 며칠간 프로그래밍용 텍스트 에디터를 바꿔타기 위한 삽질을 좀 해 왔다. 그간 주력으로 사용했던 에디터는 윈도우즈 98인가 2000 시절부터 사용해 오던 EditPlus 2 였다. 그런데 요즘 점차 리눅스 사용도 잦아지고, 웹 스크래핑 등을 하면서 UTF-8 코드 체계를 기본으로 지원하는 에디터의 필요성 등으로 슬슬 에디터를 바꿔야 될 상황이 되었다. 사실 최근 몇년간 Geany 에디터의 사용을 늘리기 시작해 왔었는데, 인터넷 검색을 해 보니까 최근에 인기있는 현대적인 코딩용 에디터들이 꽤 있는 것을 알게 되었다. 예를 들면 Sublime Text, Atom, 그리고 얼마전 MS 에서 무료로 내놓은 Visual Studio Code 같은 것들이다.
Sublime text 를 조금 사용해 보니 엄청나게 빠른 동작속도와 몇가지 장점들이 나의 관심을 많이 끌게 되었다. 그래서 우선은 Sublime, Atom, VS Code 세가지를 집중적으로 비교해 본 결과 Atom 과 VS Code 는 Sublime 에 비해 특별히 더 큰 장점을 별로 찾지 못해서 탈락.
다음으론 Geany, gVIM, Sublime Text 와 Editplus 3 (이것도 사실 옛 버전이긴 한데 그간 구해만 놓고 Editplus 2를 그냥 사용하느라 위의 버전임에도 사용하질 않고 있었다) 간의 경합.
일단 Editplus 는 윈도우즈 상에서만 돌아간다는 점으로 탈락. (그냥 윈도우즈 상에서 한글 텍스트 등을 일반 TTF 폰트로 보면서 쉽게 폰트 변경을 하고자 할때 쓰는 정도의 용도로 남음)
Sublime Text 는 패키지를 설치하지 못하는 특수한 회사 환경과 리눅스에서 한글 입력에 애로사항이 있는 것 때문에 보기에는 좋아 보이는데도 결과적으로 탈락.
VIM 은 아주 예전부터 프로그래밍을 하는 입장에서 꼭 한번 익숙해지고 싶었던 에디터였기에 몇번이나 사용을 위한 연습을 해 본적이 있는 에디터이다. 헌데 거의 20여년간 익숙해진 일반적인 키 사용법과 너무 다른, 그리고 나이가 들어 쉽지 않은 수많은 커맨드의 몸에 익히는 과정이 험난한데다가, 여러가지 기능을 사용하기 위해 이것 저것 패키지들을 갖다 붙이는 작업이 역시 불편함이 많았다. 결과적으로 앞으로도 쉬엄 쉬엄 연습해가면서 천천히 한번 쯤 더 도전해 볼 에디터로 남겨두고 마지막 후보인 Geany 의 장점들을 조금 더 확실히 확인해 보았다.
우선 이 에디터의 발음이 좀 헷갈리는데 찾아보니 답이 있다. 제~니 아님 지~니 (Genie 랑 같은 발음) 정도가 맞는 듯. 기니 는 아니다.
Geany 발음
https://www.Geany.org/Documentation/FAQ#QQuestions16
다음으로 이 에디터를 최종으로 선정하게 된 조건인 내가 주로 원하는 기능들의 구현 여부이다.
1) 가볍고 빠른 반응속도 : 무조건 빨라야 한다. 무거운 IDE 들 처럼 실행 한번 하는데 시간 걸리면 일단 제외. 왜냐하면 윈도우즈 상에서 비주얼한 UI 까지 포함된 (준)상용 소프트웨어 개발을 제외하고는 나의 경우 몇가지 언어들(C/C++, Java, Python, some of windows based Basic interpreters, Perl 도 필요하면 약간)로 당장 필요한 간단한 프로그램을 만들어서 일 처리를 효율적으로 마무리하는 것이 주된 프로그래밍 목적이기 때문이다. 최근에는 파이썬을 좀 많이 쓰는 편인데 나의 용도 정도에 PyCharm 은 개발 환경으로는 좋았지만 너무 무겁다. 심지어 몇년 전에는 자바로 된 stock charting 및 분석 프로그램을 개발했을 때 6000 라인정도의 코드들에 swing 을 이용한 UI 까지 포함한 프로그램을 하면서도 Eclipse 안쓰고 EditPlus 로 다 해치운 적이 있다. ( http://smores.tistory.com/57 )
2) 기본 편집 기능이 익숙한 키 조합 사용 (copy, cut, paste - Ctrl+C/X/V 식으로) : 윈도우즈에서 오랜 시간 프로그래밍을 하면서 손에 익은 조합을 쉽게 포기하기 그렇다. 사실 왠만한 GUI 기반 에디터는 이 기능이 거의 표준으로 되어 있다. 헌데 VIM 만은 예외. 물론 mswin.vim 으로 커버가 되긴 하지만, 여전히 normal mode, command mode 를 오가면서 작업하는 과정에서 실수를 많이 하게 된다.
3) 컬럼 블록 설정 가능 : 개인적으로 에디터를 프로그램 코딩 뿐 아니라 여러가지 텍스트 데이터를 가공하는데 많이 쓰면서 컬럼 블록 설정기능은 반드시 있어야 하는 기능이다. Geany 역시 이 기능이 기본으로 잘 지원된다.
4) 다양한 인코딩 (ANSI, UTF-8, EUC-KR, JOHAP?), 라인 Ending(DOS, UNIX, MAC) 대응 가능 : 리눅스를 자주 쓰게 되고, 가끔 Mac 도 만질 기회가 있기에 라인 엔딩 처리가 자유로운 에티터가 필요. 그리고 파이썬으로 웹 스크래핑 등을 하게 되면서 특히 한국 사이트의 경우 코드 문제가 골치거리가 되는 경우가 많다. Geany 의 경우 기본으로 위에 언급한 것 (조합형 포함?) 다 된다.
5) 에디터 화면의 컬러 theme, syntax coloring : 노안이 오면서 눈이 침침해서 적당한 컬러와 폰트의 사용이 절실하다. Geany 의 경우도 타 에디터 못지 않게 잘 지원한다. syntax coloring 역시 상당히 마음에 드는 수준.
6) auto completion, 함수 커맨트 기능 : EditPlus 2 에서는 꿈도 못꾸던, Visual Studio 에서나 즐기던 기능인데 Geany 는 이 가벼운 에디터가 기본적으로 이런 것도 다 해낸다. VIM 은 이를 위해 패키지 설치 등을 하는 불편함이 있다.
7) 에디터 내에서 바로 compiler, interpreter 호출 및 코드 실행 가능 : EditPlus 를 오래 쓰던 이유중 하나. Geany 는 내가 쓰는 대부분의 언어에 대해 기본으로 compile, build, run 다 연결해 주고, 조금 다른 방식을 원할때에도 매우 쉽게 수정이 가능하다.
8) code folding/unfolding : 이것 역시 옛 EditPlus 2 에서는 지원하지 않던 기능 (최신 버전은 되지만...)
9) 함수, 변수 심볼 리스트 보여주기 : Visual Studio 의 그것만큼은 아니라도 내 수준에선 충분히 감지덕지할 정도로 잘 지원된다.
10) 화면 split (동일 파일 두 화면으로 놓고 다른 위치를 보면서 코딩이나 copy/paste 작업 가능토록) : VIM, Sublime Text 에서 지원되는 것에 대해 부러웠었는데 Geany 도 알고보니 기본 플러그인으로 Activate 만 하면 되는 것이었다.
11) 잘 정리된 자체 오프라인 HELP : 기본으로 HELP 는 오프라인으로 되길 원한다. Geany 의 경우 매우 깔끔하게 정리된 매뉴얼 및 단축키 HELP 메뉴가 오프라인으로 잘 나온다.
그러고 보니 Geany는 내가 생각하고 원하는 기능 뭐 하나 빠짐없이 다 지원하는, 나에게 있어서는 거의 슈퍼급 에디터 이다. 그것도 기능을 위해 별도로 패키지나 애드온 등을 구해서 설치하거나 하는 과정조차 필요없이 다 된다. (컬러 테마만 예외. 하지만 그 설치도 무척 쉽다. 그냥 테마 파일들 - 텍스트파일 하나당 테마 하나다 - 구해서 올바른 폴더에 넣기만 하는 것으로 끝난다)
VIM 도 흥미롭지만 아마도 당분간 꽤 오랜 기간 Geany 를 애용하게 될 것 같다.
Geany manual
http://www.Geany.org/manual/current/
Geany keyboard shortcuts
https://wiki.Geany.org/howtos/sorted_keyboard_shortcuts
Geany color schemes
https://github.com/codebrainz/Geany-themes
'IT > 소프트웨어' 카테고리의 다른 글
sublime text 3 sublimeREPL 수동으로 설치하기 (0) | 2016.09.17 |
---|---|
sublime text 3 package control 설치법 (0) | 2016.09.17 |
geany - some useful shortcuts (0) | 2016.09.16 |
gvim - 기본 세팅 (0) | 2016.09.16 |
gvim redraw failure (0) | 2016.09.15 |