Vi vs emacs ?? 장단점이 뭔가요???

hongdan의 이미지

안녕하세요... 요즘 아는 분의 추천을 받고 재미삼아 fitnesse를 만져보고있었는데요.

C++이랑 연동을 하려고 slim을 만지다보니깐 아무래도 리눅스가 편할거 같아서 리눅스에 발을 들여놓게되었습니다.

그런데 이게 보니깐 코딩을 작성해야되는데 vim 나 emacs 가 뭔가 경쟁적인 관계인거 같더군요.

이 둘 중에 어떤 것에 손을 대는게 좋을까요?? 하나 파보고 다른데 나가는 성격보단 하나 잡고 매달리는 성격인지라 흠... 후회없는 선택을 하고 싶어서요.

이 두가지 차이점과 장단점 좀 알려주시면 안될까요?ㅋㅋㅋㅋ 추천도 해주시구요 ㅋ

shint의 이미지

물론. 만들어 보고 싶다는 관심이겠죠??

vim이나 emacs. 어떤것도 좋습니다.
저는 vi 조금 다루는것밖에 몰라서요.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

hongdan의 이미지

이게 신기한게 케이스만 만들어서 돌리면 프로그램 테스트들을 자동으로 해주더군요.
네이버에서 ntaf 개발자센터를 들어가보시면 아마 자세한 정보들이 나올겁니다.

특히 자바 사용자시면 아마 편하실거 같아요 ㅋㅋ...

ipes4579의 이미지

저는 emacs를 쓰고 있습니다. 주위에 vi를 아주 잘 사용하는 사람이 있어
한바탕 다퉈봤는데 결국엔 둘 다 거기서 거기란 결론이 났습니다 ㅋㅋ

emacs의 최대 단점을 꼽으라면.. 왼쪽 새끼손가락에 힘이 쭉 빠질때가 있다는거 아닐까요? 흠..

어쨌든, 만약 나중에 Lisp를 배울 생각이라면 emacs를 하시는 걸 추천하고,
아니고 어느 리눅스에서든, 심지어 임베디드에서도 강력한 에디팅을 하고 싶으시면 vi 하시는 걸 추천합니다.

hongdan의 이미지

안그래도 제어쪽에 관심이 좀 있었는데 오...vi가 낫겠군요 그런데 vim이랑 vi랑은 차이가 심한가요??

그런데... LISP도 쓰고 싶긴한데 ㅠㅠ vim을 자기 입맛대로 조작하는거도 가능한가요?

planetarium의 이미지

요즘은 사실상 vi라고 해도 vim을 의미하죠...
vim도 emacs보다는 아닐테지만 입맛대로 조작이 가능합니다. 단축키나 function을 만들어서...

leeted의 이미지

이 떡밥은 안물수가 없구나~
내가 이 떡밥을 얼마나 기다렸는데.
답은 emacs win.

puresupe의 이미지

controversial 한 주제가 간만에 올라왔군요 :) 전 VIM

happymovie222의 이미지

전 emacs 사용자입니다. vi에 대해서는 잘 모릅니다. vi와의 비교라기 보다는, Emacs의 장/단점을 언급하고 싶습니다.

Emacs의 가장 큰 장점은 유연성 같아요. 보통 IDE는, IDE 개발자가 IDE 코드의 일부로 작성, 컴파일 해서 binary에 포함된 코드를 수행함으로써 어떤 기능을 구현하는 것 같습니다. 반면 Emacs는 Lisp interpreting engine입니다. Lisp code를 수행해서 일을 처리합니다. 예컨대, 정규표현식을 찾는 기능이 대부분의 프로그래밍을 위한 편집기엔 있을 겁니다. 이게, 이를테면, 보통 IDE에는 find_reg_expr( const string& pattern, const string& target ) 과 같은 함수로 구현되겠지만, Emacs엔 Lisp으로 구현되어 interpreting됩니다. 한 번 고정된 IDE binary에 뭘 추가하는 건 쉽지 않아도, Emacs는 Lisp code를 써주면 곧장 기능이 추가될 수 있기 때문에, Emacs 컴포넌트들을 조작하는 임의의 기능이 구현 가능하다고 봐도 무리는 아닌 것 같습니다.

게다가 버퍼 상의 텍스트를 선택해서, 시스템의 아무 유틸리티에게 standard input 또는 command line argument로 준 다음, 그 stdout을 block에 대체하거나 새로운 윈도우에 붙여넣는 게 가능합니다. 텍스트 처리를 하는 기능-예컨대 "var 3 8 10 11"에서 switch/case 문을 생성하는-이 Emacs에 built in으로 주어져 있지도 않고 Lisp을 몰라도, 아무 언어로나 실행 파일을 만든 뒤, Emacs에서 그걸 모듈로 써도 되지요. Eclipse는 필드를 parsing해서 getter/setter 만들어주는 것 같던데, Emacs는 이런 기능이 기본 설치 시 포함되어 있지 않아도 Lisp 포함 아무 언어로나 만들어 붙여주면 되요.

Emacs가 vi보다 특히 불편한 점은 meta 키와 ctrl 키에 손이 많이 간다는 점 같습니다. 어느 정도는 바인딩을 해놓고 쓸 수 있지만, 손이 많이 가는 것 역시 사실이지요. 예컨대 Emacs에서 137라인 아래로 가려면, M-137 C-n 과 같이, vi에 비해 상대적으로 많은 타이핑을 해야 합니다.

neocoin의 이미지

emacs 를 쓰면 손이 오그라듭니다. vim 을 쓰면 손이 오그라들지 않습니다.

그래서 vim 한표.

익명 사용자의 이미지

필요한 기능 lisp으로 다 만들어가면서 할꺼면 emacs, 에디팅 생산성이 중요하면 vi. 개발을 하고 싶으면 며칠 배워야 쓸 수 있는 거 말고 쓰면서 자연스럽게 배울 수 있는 툴을 선택하는 것이 좋을 듯.

sungeuns의 이미지

emacs가 좀더 무거운만큼 기능이 많습니다.

다만 임베디드 같이 자원이 한정적인 데서 작업하려면 vi 필요합니다.

vi 기본 기능은 뭐 간단하니까, 기본적인거만 알아두고, emacs 랑 vi랑 써보면서 편한거 쓰면 됩니다~

only2sea의 이미지

emacs 씁니다만, emacs의 단점은

- 내부 LISP 인터프리터가 싱글 쓰레드라서 답답하고 한계가 있습니다.
- 캐릭터 단위의 개념을 못 버렸습니다. 그래서 그림 같은 것이 에디터에 들어가면 글자로 취급됩니다.
- 설정이 좀 더럽습니다. 이게 LISP 코드가 수행되면서 자꾸 side effect를 일으켜서 짜증이 납니다. 패키지 만드는 사람들이 코드를 못 짜서 그런 경우도 있구요... customize 패키지가 있지만 이걸로 다 해결되지도 않습니다.

snowall의 이미지

저는 geany 씁니다 :D

피할 수 있을때 즐겨라! http://melotopia.net/b

세벌의 이미지

고전적인 문젠데... 장단점은 인터넷에 찾아 보면 많이 나오고.... 저는 vi파. 처음엔 뭐 이런게 다 있나? 그랬지만 익숙해지면 정말 잘 만들었다는 생각이 듭디다. 대표적인 장점으로 커서 이동하기 위해 손가락을 멀리 움직일 필요 없다는 거!

niuzeta의 이미지

vim에 한표.
특히 랩탑을 쓸때 마우스에 손을 대지 않고 키보드만으로 할 수 있는게 참 편하더군요.

...And all in war with Time for love of you,
As he takes from you, I engraft you new.

-Sonnet XV
전산계획설계사 지망 영문학과생

planetarium의 이미지

emacs 써보셨나요?

niuzeta의 이미지


없습니다.
다시 읽어보니 제가 살짝 문맥에 오해가 있게끔 썼군요. 전술했듯이 '키보드만 쓸 수 있어서' vim을 애호한다고 했지 emacs와 비교해서 vim을 쓴다는 말이 아닙니다.
vim을 추천하는 건 써본 게 vim인데 그게 편하니 그거에 한 표 던졌습니다. 솔직히 vim이 편해서 다른 텍스트 에디터를 배우기가 귀찮군요. 흠...
확실히 vim vs emacs 스레드에 썼으니 문맥상 오해가 있을수밖에 없군요.

emacs에서도 키보드만으로 내비게이션이 가능한가 보지요?

...And all in war with Time for love of you,
As he takes from you, I engraft you new.

-Sonnet XV
전산계획설계사 지망 영문학과생

oppor의 이미지

emacs를 공부해보고자 노력을 꽤 하고는 있지만...

적어도 영어를 못하면 한국에서는 emacs 보다 vi가 배우기 쉬운게 사실입니다.

한글 자료도 vi가 훨씬 많구요.

일단 키 조합들이 vi가 더 외우기 쉽습니다.

책도 vi 책이 더 많군요. 많아 봤자 몇개 안되지만 emacs보다는 많습니다.
물론 한글로 된 책 얘기죠.

영어가 자연스럽다면 emacs도 좋을겁니다. 거기다 lisp까지 배운다면 금상첨화겠죠.

익명 사용자의 이미지

emacs에 한표 던져봅니다.

이유는 gdb쓸때 emacs는 breakpoint를 아주 직관적으로 쉽게 빵!! 찍을 수 있거든요. ^^
vim은 안됩니다.

뭐 breakpoint 찍을일 없는 문서(예를 들면 html)같은거 만들때는 vim도 좋습니다.

nonots의 이미지

vi 단점.. 웹브라우저 입력창에서
자꾸 esc 를 친다.
..
개발솔루션에서 vi 에디터 플러그인이 있는지 먼저 찾는다.


=== 건달의 경지를 꿈꾸며 ===

익명 사용자의 이미지

emacs를 단순 에디터로 봤다간 큰코 다칩니다.

리차드 스톨만이 이걸로 박사학위 논문 쓸 적에
emacs 자체를 일종의 "인공지능 머신" 으로 만들려고 했습니다.
emacs에서 인공지능 처리 언어인 LISP을 채택한 것도 그 이유구요.

장단점 언급하는건 아주 어려운 일이네요.
vim 하나 처음부터 끝까지 기능을 다 파는것도 어려운데
vim이랑 emacs의 장단점을 비교해달라니 ㄷㄷㄷ

skyer9의 이미지

vim 은 정상인이 사용하는 에디터...
emacs 는 엽기적인 개발자가 쓰는 툴...

정상적인 플러그인은 서로 서로 배끼고
엽기적인 플러그인은 vim 에서 안따라 하고..

레어틱한 emacs 이지만
이맥스는 강합니다 ㅋㅋㅋ

skyer9의 이미지

세계는 정상적인 사람이 아니라 엽기적인
사람에 의해 발전이 이루어졌다죠 ㅋㅋㅋㅋ

엽기적인 사람이 되어 보아요 ㅋㅋㅋㅋ

rocksea의 이미지

emacs는 기능을 떠나서 그냥 정이 안가더라구요;;

이건 뭐 지극히 제 주관적인 생각 입니다 ^^;;

Knowleage Creator.

withtw의 이미지

vi는 처음에 몇번 써본 경험만 있고 emacs는 한 5년 썼습니다.

우선 emacs를 쓴다면 Control키를 CapsLock와 바꾸는 것은 필수 입니다. Control키를
원래 자리에 두고 emacs를 쓰는 것은 고문이나 마찬가지구요.

emacs는 처음에는 좀 배우기 어렵지만 익숙해지고 여러가지 addon들로 커스터마이징 해
나가다 보면 그야 말로 가속도가 붙어서 emacs 없이 작업하는 것은 상상할수 없게 되고
기본 IDE로 개발하는 개발자들을 보면 안쓰러운 감정을 가지게 됩니다. 그런
개발자들을 보면 당장이라도 가서 emacs를 배우라고 외치고 싶지만 이게 또 처음에
능숙해지기가 수월치 않아서 마음속으로만 꾹 참고 말죠.

emacs가 무겁다는 의견이 있는데 emacs는 부팅때 한번 띄워놓고 쭉 쓰는
것입니다. vi처럼 가볍게 실행했다 닫았다 하는 개념이 아닙니다.

제 생각에 독학으로 배울경우 emacs로 원래의 생산성을 내기 위해서는 짧게는 1개월,
일반적으로는 3개월, 와 정말 emacs 환상적이야라고 느끼기에는 6~12개월 정도
걸린다고 생각합니다. 물론 그 기간이 어렵고 따분하기만 한 시간은 아닙니다. emacs의
기능을 하나씩 알아 갈때마다 흥미진진하니까 말이죠.