ProgramingTip

Emacs 또는 Vim 대 Eclipse가 제공하는 효율성은 무엇입니까?

bestdevel 2020. 10. 20. 07:57
반응형

Emacs 또는 Vim 대 Eclipse가 제공하는 효율성은 무엇입니까?


저는 약 5 년 전에 코딩을 시작했습니다. 나는 프로그래밍 커뮤니티에서 상당한 오명을 붙인 Java와 Eclipse를 통해 소개되었습니다. 제가 현재 인턴을하고있는 회사의 많은 사람들이 emacs 나 vim을 선호합니다. 기본 텍스트 편집기가 일반적으로 IDE보다 빠르고 쉬운 지 알 수 없지만 빌드와 같은 일부 작업은 명령 줄에서 더 빠른 경향이 점에 감사합니다.

이런 경우, 아니면 이런 방식으로 프로그램하는 것이 더 이상일 수 있습니까?

시연 할 몇 가지 사용 사례를 제공 할 수 있습니까? Eclipse를 옹호한다면 리팩토링과 자동 완성이 매우 편리한 도구라고 말하고 싶습니다.

Gav


Eclipse와 같은 IDE에서 시작했지만 약 2 년 전에 Vim으로 전환했습니다.

텍스트 모드 편집기를 사용하려는 이유 :

  • 거의 모든 언어에 대해 IDE로 사용할 수 있습니다 (한 번 배우고 모든 것에 사용).
  • 자동 완성, 리팩토링 및 더 많은 복잡한 작업과 같은 모든 멋진 작업을 수행 할 수 있고 확장 할 수 있습니다.
  • 거의 모든 곳에서 작동하며 SSH 셸을 통해 사용할 수 있습니다.
  • 실행하는 데 GB의 램이 필요하지 않습니다.

정말 인내한다면 이런 에디터에서 작업하는 것이 결국 더 빨라질 기억 '으로 뿌리 내리게 될 것입니다. 즉, 프로세스에 대해 생각하는 속도를 늦추지 코딩 할 수 있습니다.


Vim / Emacs

  • 매우 빠르고 효율적인 코드 작성
  • 낮은 메모리 공간
  • 명령 줄에 대한 빠른 액세스
  • 스크립팅 / 플러그인을 무한한 가능성
  • 키보드를 떠날 필요가 없습니다.

  • 다양한 언어를 위한 완전한 기능의 IDE
  • 훌륭한 리팩토링 지원

그들 모두

  • 크로스 플랫폼
  • 풍부한 기능
  • 플러그인을 통해 확장 가능

일반적으로 vimIDE를 통해 많은 양의 코드를 작성 하고 작업을 수행합니다. IDE는 익숙하지 않은 소스 코드를보고 학습 할 수있는 훌륭한 도구이기 때문에 코드 기반에 대한 함은 확실히 중요한 요소입니다.


"Eclipse for Java"인수는 "Eclipse for [Java가 아닌 것]"와 다른 인수입니다. Eclipse는 Java에 적합합니다.

vi는 드라이버 나 스위스 군용 칼과 같고 Eclipse는 큰 CNC 콤보 밀과 믹서 스프레더와 가변합니다. 당신은 일치를 정확히 비교하지 않고 단지 둘 다 사용합니다.

또한, 당신은 거의 알지 못하지만 Eclipse가 이해하는 거대한 내부에서 작업하고 있습니까? 예를 들어 Eclipse 자체에서 작업 할 수 있습니다. 여기서 Eclipse는 완벽한 가시성, 전체 언어 지원을 제공하며 토스트 프롬프트와 문서 링크가 필요합니다.

그러나 SQL 데이터베이스를 변환하기 위해 100 줄 Ruby 프로그램을 입력하는 경우 Eclipse는 많은 것을 고려할 가치를 추가하지 않습니다.

vi를 설정하는 것도 중요합니다. 말할 것은 호소하지 않을 것입니다. 자동 들여 쓰기, 표시 일치, 탭 처리 및 기타 다양한 옵션을 설정해야합니다. 태그 파일을 쉽게 생성 할 수 있습니다. Google은 몇 줄의 셸 코드와 sed (1)를 사용하여 태그기를 찾거나 처음부터 새로 생성 수 있습니다.

나는 리팩토링을 기준으로 생각하지 않습니다. 그것은 당신이 한 시간에 한 번, 심지어 하루에 한 번하는 일이 아닙니다. 물론, 리팩토링이 필요할 때 큰 IDE를 실행하십시오. 아, 그리고 제외를 제외하고는 자동화 된 리팩토링을 기대하지 않고 있습니다.

마지막으로 많은 일을 할 수있는 IDE가 있습니다. 그룹화 된 정규식 전역 대체는 일반화 된 리팩터링 엔진입니다. vi gestalt를 이해하려는 비용 라인 ( ":") 모드를 배워야합니다. 간단히 말해, 에디터 안에 sed (1)을 넣는 것이 있습니다.


그것은 모두 당신이 원 / 기대하는 것과 사용 모델이 무엇인지에 달려 있습니다.

Java IDE를 보유하고있는 Eclipse를 이길 수 없습니다. 그것은 Java 사람들에 의해 Java로 작성되었습니다.

명령 줄에서 신속하게 파일을 편집 할 수있는 도구를 소유하고 Emacs 또는 vi가 모두 적합합니다.

원하는 모든 작업 (메일 보내기 / 읽기, 프로젝트 관리, 할 일 목록, 준비, 디버그 등)을 할 수 있기 때문에 떠날 필요가없는 도구를 보유하고 있기 때문에 Emacs가 더 좋습니다. "실력있는".

원하는 것을 찾으십시오. 더 나은 Eclipse를 제공 ​​vi와 Emacs가 제공하지 않을 것입니다. Eclipse를 고수하십시오.

작고 민첩한 편집기를 보유하고 있습니다.

거기에서 확장 가능한 편집기를 찾고있는 Emacs가 그 방법입니다.

어떤 도구를 사용하든 몰입 할 수 있습니다 . 모든 기능을 배우고 필요에 맞게 확장하십시오. 한계까지 사용하고 사용합니다.


Emacs는 강력한 IDE가 될 수 있습니다. Emacs에서 Eclipse로 갔기 때문에 다시는 가지 않을 것입니다. Eclipse는 Emacs에서 얻을 수없는 많은 기능을 제공합니다.

Mylyn 및 내가 사용중인 데이터 및 파일의 범위가 지정된 뷰인 UI, CVS UI가 모두 내장되어 있고 가져오고 있습니다. 나는 마우스를 조금 사용하여 얻을 것입니다.


먼저 첫 번째 것들. VIM은 Eclipse보다 프로그래밍에 더 많은 생산적입니다. VIM에서 귀하의 개인 생산성은 지독 할 수 있습니다 이건 사실이다.

VIM은 무술입니다. 처음 사용할 때 부자연 스럽습니다. 그리고 당신은 그것을 사용하지 않습니다. 많은 생산적이 되려면 수년간의 연습이 필요합니다. 처음에는 약간의 세부 사항을 마스터하는 데 집중합니다. 텍스트가 손가락 끝에서 화면으로 쉽게 흘러 갈 때까지 마스터하는 모든 비트를 천천히 합산합니다. 동료가 숨을 내쉬기 전에 한숨을 쉬게 만드는 복잡한 편집 작업이 손에서 튀어 나올 것입니다. VIM을 사용할 수있는 사람은 거의 없습니다. 생산성을 수있는 사람이 적습니다. 그리고 평생 동안 마스터를 만나지 실패 수도 있습니다. 그러나 존재한다는 사실은 소문이 있습니다.

VIM은 집에서 손을 뻗을 수 있도록 설계되었습니다. 키보드에서 마우스로 손을 움직이면 사기가 죽습니다. 그것은 심한 모터 운동입니다. 팔을 움직이면 동기를 해치는 생리 학적 효과가 있습니다. VIM을 사용하면 누군가 손목을 키보드에 고정 할 수있는 파일 열기, 창 분할, 탭 열기, 프로젝트 빌드, 검색 / 맞추기, 글꼴 변경, 색상 변경 등의 모든 작업을 매우 빠른 속도로 수행 할 수 있습니다.

VIM은 모달입니다. 즉, 제어 + 시프트 + 키를 수행 할 필요가 없습니다. 이것은 장기적으로 손에 상처를줍니다. 대신 명령을 실행합니다. 모달 특성으로 인해 키 콤보가 필요하지 않습니다.

우리는 컴퓨터처럼 데이터를 메모리에 저장합니다. 우리의 기억은 한 번에 몇 가지 값만 보유 할 수 있습니다. 머릿속에 얼마나 많은 정수를 담을 수 있는지 확인하십시오. 우리는 많은 것들을 적어 놓음 이미 한계를 극복했습니다. 데이터가 메모리에서 떨어지면 우리가 기록한 내용을 쉽게 볼 수 있습니다. 당신의 시간이 육체적 운동을 소비하는 데, 당신은 두뇌에서 데이터를 처리하는 데고 소비되는 시간을 잃은 것입니다. 하나의 노력없이 마음이 화면에 흐르기를 원합니다. 많이 들리지는 않지만 VIM의 마음에있는 것을 화면으로 쉽게 개선 할 수 있습니다. 내가 말하려는 것을 말로 표현하기 어렵습니다.

VIM은 코드 완성을 지원합니다. 텍스트 및 조회 기반 모두. 여러 파일에서 텍스트를 찾을 수 있습니다. 원하는 것은 무엇이든 VIM에 담을 수 있습니다. 직접 만들거나 다른 사람이 요리 한 것을 사용하십시오.

VIM은 ctag를 사용하여 정의에 대한 goign을 지원합니다. 모든 참조를 사용할 수 있습니다. 다시 말하지만, 원하는 것은 VIM에서 변경할 수 있습니다.

VIM의 스크립팅은 엄청납니다. 수천 개의 색 구성표를 다운로드하거나 생성하고 즉시 색상을 사용할 수 있습니다. Microsoft Visual Studio에서 글꼴 또는 색상을 변경하려고 데이터를로드하는 동안 20 초 동안 중단됩니다. 색 구성표를 사용하면 풍경을 바꾸고 싶을 때마다 색상과 글꼴을 조정하는 데 30 분을 소비해야합니다. VIM에서 줄 간격을 0으로 설정하여 화면에 더 많은 코드 줄을 맞출 수 있습니다. 80 줄이 넘습니다. Visual Studio는 모든 줄에 2 픽셀의 간격을 사용할 수 없습니다 !!! 더 많은 라인을 더 많은 스크롤링 = 생산성 감소 = 더 많은 라인을 위해 작은 글꼴을 사용하도록 강요 = 눈의 피로.

분할 창은 VIM의 instnat에서 열립니다. 입력하는 위치에서 멀리 떨어져있는 (또는 다른 파일에있는) 코드의 한 섹션에있는 데이터를 확인해야 할 때 유용합니다. 창 크기를 조정하는 데 시간을 소비하거나 GUI 창이 서로 겹치고 뒤쳐지는 것에 대해 걱정할 필요가 없습니다. 화면 공간을 차지하지 않도록 관련없는 코드 창을 탭에서 열 수 있지만 빠른 전환이 가능합니다.

IDE로서의 VIM : http://www.youtube.com/watch?v=MQy2rVOf-z0&feature=fvwrel VIM의 복수 : http://www.youtube.com/watch?v=lQNFfhC4QI8


저는 여러 언어로 코드를 편집하기 위해 수년 동안 vi를 사용해 왔으며 정말 마음에 듭니다. 그러나 Eclipse와 같은 IDE가 Java 개발에 더 적합하다는 것을 알았고 이제는 거의 전적으로 Eclipse에서 작업하는 경향이 있습니다. 나는 주로 Eclipse에서 잘 자동화되지 않은 특정 종류의 암기 편집을 다루는 대량 삽입 저작권 고지와 같은 몇 가지 전문적인 활동을 위해 때때로 vi를 사용하지 않습니다. 또한 Eclipse가 열릴 때까지 기다리지 않고 소스 파일을보고 싶을 때 Windows .java 파일 유형을 vi에 매핑했습니다.

Eclipse의 매력적인 기능은 다음과 같습니다.

  • 메소드 이름 완성
  • 오류 강조
  • 팝업 javadoc 주석
  • 리팩토링

나는 그것이 일반적으로 vi보다 훨씬 효율적이라는 것을 알기 때문에 그것을 시도하고 그것이 당신에게도 맞는지 확인해야합니다.


사람들 이 마우스를 사용하는 것보다 키보드 단축키를 더 효율적으로 인식 했다는 연구에 대해 읽었던 기억 이 있습니다. 사실 항상 그런 것은 아닙니다.

또 다른 심리적 효과는 우리가 이맥스가 배우고 열심히 때문에, 즉 비싼 것들에 가치를 부여한다는 것이다 있어야 더 나은 어떤 방법으로해야합니다.

나는 이러한 효과가 일부 사람들이 Emacs / Vi에 대해 갖는 극도의 애정을 설명 할 수 있다고 생각합니다.

그러나 Eclipse의 경우 매우 느리고 가끔 충돌이 발생할 수 있지만 일반적으로 IDE에는 해당되지 않습니다.

Eclipse, VS 및 Emacs를 정기적으로 사용합니다. TextMate도 사용하지만 더 이상 Mac이 없습니다. 내가하는 일, 특히 내 언어와 도구를 가장 잘 지원하는 시스템에 따라 다릅니다.

유용한 일을하는 것보다 에디터를 프로그래밍하는 데 훨씬 더 많은 시간을 보내는 사람들을 알고 있습니다. 그들 중 일부는 도전을 위해서만 그렇게한다고 스스로 인정하기도합니다. 다른 사람들은 Emacs / Vi가 스크립트가 가능하기 때문에 IDE보다 훨씬 더 많은 일을 할 수 있다고 주장합니다. 음, 대부분의 IDE (Eclipse 포함)도 스크립팅 할 수 있습니다. 그런 의미에서 거의 모든 편집자가 동등합니다 (하지만 일부 편집자는 다른 편집자보다 스크립팅이 더 쉽습니다).

IDE를 좋아한다면 계속 사용하는 것이 좋습니다. One True Editor 는 없습니다 .

편집하다:

이것은 Nick Bastin이 언급 한 기사 인 것 같습니다. 나는 그것이 확실한 출처와는 거리가 멀다는 데 동의합니다. 그러나 나는 여전히 지각 된 생산성과 실제 생산성이 동일하지 않다는 내 요점이 여전히 유효하다고 생각합니다.


언어에 따라 다릅니다.

Java 또는 .NET의 경우 IDE (Eclipse, Netbeans, Visual Studio ...)를 사용하십시오.

거의 모든 다른 언어 (C, C ++, ruby, python, haskell, lisp ...)의 경우 vi와 emacs가 제 생각에 더 좋습니다.


vim / emacs에서 제공하는 효율성은 대부분 키보드를 많이 사용함으로써 얻을 수 있습니다. 이 프로그램에서는 마우스를 멈추고 사용하지 않고 키보드에서 직접 대부분의 작업을 수행 할 수 있습니다.


실제 vim / emacs 편집기는 제공하는 단축키 측면에서 Eclipse 텍스트 편집기보다 훨씬 우수합니다. 그러나 리팩토링에 대해 전적으로 동의합니다.

대부분의 사람들은 Eclipse가 할 수있는 일종의 리팩토링 수준을 수행하기 위해 스크립트를 작성해야합니다. 나는 그것의 일부가 권리를 자랑하거나 사람들이 항상 똑같은 방식으로 그것을하는 것이라고 생각합니다.


I would anytime go for emacs rather than eclipse. I also have to say that bare bone emacs, is not that great, but after some tweaking, you will never want to let it go. In particular I will tell you how helpful emacs was while writing my Master's thesis, that should make clear why Eclipse is inferior, just because it is less versatile.

저는 석사 논문을 C ++, Python 및 R 프로그래밍 언어로 썼습니다. 보완 적으로 논문을 작성해야했고 여기에 LaTeX를 사용했습니다. 게다가, 나는 많은 쉘 스크립트와 cmake 스크립트를 작성해야했습니다. 뭔지 맞춰봐? Emacs는 모든 것을 지원합니다. 특히 AuCTeX와 협력하여 LaTeX 문서를 제작하게되어 기뻤습니다. 그런 다음 Emacs는 R 작업을위한 훌륭한 ESS 모드를 제공합니다. 마찬가지로 파이썬을위한 기능을 제공합니다. C ++ 코드를 빌드하기위한 cmake 스크립트가 있으면 emacs를 사용하여 compile을 호출하기 만하면 끝났습니다. Eclipse는이 일을 모두 할 수 없으므로 다양한 프로그램을 사용하는 방법을 배워야합니다. 필기하기? 이를위한 조직 모드가 있으며 훌륭합니다!

그리고 내 프로그램에는 매우 강력한 컴퓨터가 필요했습니다 (노트북과는 다릅니다). 그래서 저는 emacs 내에서 모든 것을 원격으로 할 수 있습니다 !!!! tramp를 사용하여 R 코드의 원격 대화 형 평가, 원격 컴파일, C ++ 코드 실행 및 디버깅, 그리고 내가 사용했던 것과 동일한 좋은 로컬 emacs 창에서 모든 것을 수행하는 것을 발견했습니다. 대조적으로, 모든 것에 별도의 도구를 사용했던 제 친구들은 다른 컴퓨터에서 실행되는 소프트웨어를 개발하는 데 훨씬 더 느 렸습니다.

이와 같이 다른 이야기가 있지만, 이것은 Emacs로 할 수있는 일에 대한 좋은 아이디어를 줄 것입니다. 대체로, emacs (학습 곡선에도 불구하고)를 사용하기로 선택한 것이 내가 내린 가장 생산적인 결정이라고 생각합니다.

도움이 되었기를 바랍니다.


우리는 최근에이 논쟁을 일으켰습니다. 내 생각은 내가 없이는 할 수 없었던 하나의 기능이 Emacs의 자동 완성이라는 것입니다. Eclipse의 자동 완성은 구문 분석을 기반으로합니다. 코드가 구문 분석되고 코드를 입력하면 완성 옵션이 제공됩니다. Emacs의 자동 완성은 간단한 텍스트 분석을 기반으로합니다. 즉, 일반 텍스트, 주석, 문서-모든 곳에서 작동합니다. Emacs의 자동 완성은 IntelliSense가 성장할 때 원하는 것입니다.

최신 정보:

Eclipse는 Emacs와 유사한 Alt- /를 제공합니다. 그래도 얼마나 잘 작동하는지 잘 모르겠습니다.


IDE를 선호하는 유일한 곳은 디버깅입니다. 디버깅을 위해 vim 환경을 설정했지만 사용하기가 너무 힘들고 투박해서 디버깅이 필요할 때 IDE (Netbeans)로 전환했습니다. vim은 텍스트 편집에 적합하고 IDE는보다 복잡한 작업 (예 : 디버깅 및 일부 프로젝트 관리 관련 작업)에 적합합니다.


위의 게시물 중 일부와 마찬가지로 IDE (Eclipse)로 시작했습니다. 거기에서 나는 Emacs로 옮긴 다음 서식있는 텍스트 편집기 (TextMate)로 돌아갔습니다.

저에게있어서 효율성은 인터페이스 수준에서 편집기를 사용할 수있는 능력이었습니다. 내가 구축 한 다른 서비스 (또는 다른 서비스)를 의사 IDE 환경에 통합 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-eclipse

반응형