vim 배운 걸 후회하지는 않으십니까?

마잇의 이미지

처음에 리눅스 설치 하고 보는 책 마다 vi에 대한 소개가 있고 인터넷 뒤져 봐도 편집하는 부분은 vi에 대한 소개가 많고 해서 vi를 반 강제적으로 배우게 되었습니다. 한국 사람들이 다수가 선호하는 취향에 대해 솔깃하는 문화가 많다 보니 저도 예외는 아니었습니다. "이게 국민 에디터?", "쿨한 공대 오빠는 vi를...?"

당시 저에게 vi 무게는 이런 느낌이었습니다.

"제가 요즘 리눅스에 대한 책을 하나 쓰고 있습니다"
"아, 그러세요? 어떤 주제로..."
"하이 퍼포먼스 컴퓨팅과 분산 컴퓨팅의 합의점을 찾아 주부들의 일상 생활에 도움이 될만한 점을 전달할려고 합니다"
"아~ 좋은 시도네요. 기대 되는데요?"
"아, 예 감사합니다. 이거 간단하게 목차만 정리된건데 한 번 봐주시겠어요?"
"야 이거 주제 선정 좋네요. 음... 하이 퍼포먼스와 전자렌지. 흥미롭네요"
"세탁물의 분산 처리와 메시지 패싱 야 이거 정말 획을 긋겠는데요?"
"근데... 음... 보자... vi에 대한 소개는 3.1 정도에 들어가겠군요?"
"아 vi요? 글쎼요 넣어야 하나 생각중이긴 한데 주제에서 조금 벗어나는 것 같기도 하고"
"그래도 vi는..."

if book.contents =~ /linux/
then describe 'vi'
else describe 'vi'

emacs 사용자들께서는 불끈 하셔서 사모님을 괴롭히실지도 모르겠지만... (미안합니다) 발끈 하셔서 뭐라고 하실지도 모르겠지만 뭐 어쨌든 개인적인 경험으로는 vi에 대한 소개를 많이 접했었기에 vi에 친숙해지기 시작했습니다.

그러나 vi에 대한 모든것을 알기도 전 vi의 후계자들에 대해 알게 되었습니다. vi를 계승한 후계자는 많다. 그러나 무협지에 따르면 하늘 아래 지존은 하나일 수 밖에 없는 것.

그래서 또 vim을 배웠습니다. vi와 vim의 관계는 합집합의 관계에 가깝기 때문에 따로 배운다는 개념은 사실 미미하고 결국 vi와 vim을 동시에 배운 것이죠. 사실 vim으로 오래 썼지만 vi가 제공하는 것도 충분히 활용하지 않는 상태 입니다. 인터넷에서 존나 쌈빡한 기능을 보고 와~ 이런게 있었어? ':h 이런거'[1] 해보면 그냥... vi에서도 되던 거였죠.

[1] :h 이런거 -> '이런거'에 대한 도움말을 보기 위한 vim의 기능 입니다. vim의 도움말 기능은 매우 잘 되어 있어서 '이런거'에 뭐를 입력해야 하는 지 알면 뭐든 다 알 수 있습니다. 끝내줍니다. 다만 초보 vim 사용자는 절대 '이런거'에 입력할 적당한 단어를 찾지 못하여 클라우드와 빅 데이터 사이를 해매다 혼절 합니다. 이렇게 혼절해 있을 때 가끔 vim 고수[2]가 지나가며 얘기 합니다. :h '이거쳐봐임마'

[2] vim 고수 -> 얼마 전 구글 해본 사람

아마 이렇게 vi가 사랑 받는데에는 어디에든 깔려 있다는 접근성이 크게 한 몫을 했을 겁니다. "니가 어떤 환경에 있던 이 글을 읽고 있다면 그곳에 vi가 있을 것이야"

그러나 요새 배포본들은 데스크탑 버전이든 서버 버전이든 기본 설치 상태에서는 vim의 최소 기능 버전이 설치 됩니다. 오리지널 vi와 vim을 차별화 시켜주는 추가 기능들이 다 빠진 상태 입니다. 이 상태에서 다른 에디터를 쓰는 것보다는 vi를 쓰는 것이 훨씬 낫지만 결국 vim을 설치해야 됩니다. undo가 여러번 안되요. 한 번만 되요. 아 무서.

여기까지는 개인적인 잡설 이었습니다. 어떻게 vim에 팔려 가서 노예가 되었는지에 대한.

왜 vim을 배운 것을 후회하는가

다른 에디터에 적응하기가 너무 힘듭니다. 다들 아시다시피 에디터, 정확히 말하면 에디터와 IDE 어디 중간쯤 되는 이런 소프트웨어는 정말 다양하고 끊임없이 새로운 시도가 계속되는 영역중에 하나 입니다. 소프트웨어를 만드는 개발자들이 매일 같이 쓰는 것이라 더 그럴 수도 있겠다는 생각을 합니다. 요리사들은 칼 만들 생각 절대 안 할텐데요 ㅋㅋ.

sublime text가 그랬고 최근에는 lighttable이 그랬고, 참 멋진 에디터들인데, 사용해보고 싶은데, vim에 길들여져서, 가장 간단한 움직임조차 어색하고, 적응하자면 너무 많은 시간이 걸릴 것 같고 이런 상황이 너무 아쉽습니다.

어지간한 에디터나 IDE들은 vi 모드를 지원하기는 합니다만 막상 쓰면 내가 쓰는 10개 vim 기능 중에 9개는 되는데 1개는 안되는 이런 애매한 상황이 많습니다.

사실 그냥 vim에서 되는 것이면 다른 에디터를 쓸 이유도 없고 다른 에디터에서 되는 기능이 vim에서 안되는 경우도 거의 없습니다.

다만 요새 좀 묵직한 플러그인들을 자꾸 쓰다 보면 vim이 좀 심각하게 굼뜨게 반응하는 경우가 많습니다. 화면을 빠르게 스크롤 할 때나 자동완성 추천 창이 뜰 때 기타 등등. 원인은 정확하게 분석은 안해봤습니다.

대략 같은 기능을 다른 에디터에서 켜 두고 작업해보면 차이가 좀 심할 만큼 vim이 둔하게 반응하는 경우가 많아서 고민 입니다.

이상 둔한 vim 반응에 화나서 emacs 깔고 evil 해보다 sublime도 깔아보고 결국 다 때려치고 다시 vim하고 있는 KLDP 회원이었습니다.

희망사항 : sublime이나 lighttable 둘 다 뭐랄까 개발자들이 현대적인 UX(UI)에 대해 많은 고민을 한다고 해야 할까요. vim이나 emacs나 처음 실행해 보면 "도움말을 다 읽기 전까진 나를 범접할 수 없을 것이야!" 이런 느낌인데 그 반대로 옆에 붙어서 "아이구 이런것도 되는데 좀 써보세요" 이런 느낌? 제가 우연히 fish라는 쉘을 써보고 지금도 쭉 쓰는 중인데 fish 개발자가 쓴 문서 중에 "The law of discoverability" 항목이 있습니다. vim이나 emacs나 3D 그래픽이라는게 있기도 전에 작성된 소프트웨어들이다 보니 데스크탑 환경 자체가 3D로 돌아가는 요새의 방식에 계속 적응해나가기 힘든 부분이 있을지도 모르지만 최근에 나온 소프트웨어에 뒤지지 않는 혁신을 볼 수 있었으면 좋겠습니다.

mirheekl의 이미지

칼을 적재적소에 잘 사용하기로 유명한 베어 그릴스는 이미 자기가 설계한 칼을 내놓았습니다. 음악가들 역시 자기가 직접 설계한 악기를 내놓기도 하고, 농구선수가 농구화 제작에 직접 참여하기도 합니다. 물론 이름만 빌려주는 경우도 많긴 하지만 직접 설계하는 경우도 분명 흔히 이루어지는 일입니다. 특정 분야의 전문가가 자기 자신이 사용하는 툴을 설계하는 건 전혀 낯선 일이 아닙니다. 요리사쪽도 모르긴 해도 분명 누군가는 자기가 직접 설계한 칼을 쓰고 있을 겁니다.

--

마잇의 이미지

에디터 하나씩은 가지고들 계신 건가요?


--
마잇

mirheekl의 이미지

제 글은 그냥 요리사들 역시 칼을 만들고픈 욕구가 없지 않을 것이라는 얘기일 뿐입니다. 다른 분야와 마찬가지로.

--

마잇의 이미지

맞는 말씀이네요. 현실적인 여건만 맞다면 그러할 것 같습니다.


--
마잇

qiiiiiiiip의 이미지

vi의 최대 장점은 그 기능의 편리함/다양성/화려함보다는, 일단 가볍다는 것이죠.
vim이 그 장점을 잃어버리면 (improved) vi가 아닌거죠.

다른 에디터에 비해서 체감할만큼 느리다면,
어딘가 설정이 한참 잘못된 듯..