현재 C 또는 C ++로 코딩 할 때 Emacs의 워크 플로에는 세 개의 창이 포함됩니다. 오른쪽에서 가장 큰 파일은 내가 작업하고있는 파일을 포함합니다. 왼쪽은 두 가지로 나뉘어져 있으며, 맨 아래는 컴파일하거나 명령을 입력하는 데 사용되는 쉘이며 맨 위는 종종 작업하는 동안 참조하려는 일종의 문서 또는 README 파일입니다. 이제는 꽤 전문적인 Emacs 사용자가 있다는 것을 알고 있으며, 완전한 IDE로 사용하려는 경우 다른 Emacs가 기능적으로 유용한 지 궁금합니다. 특히 대부분의 IDE는 일반적으로 이러한 기능을 수행합니다.
- 소스 코드 편집기
- 컴파일러
- 디버깅
- 문서 조회
- 버전 관리
- 클래스 조회 및 객체 관리자와 같은 OO 기능
이 중 몇 가지에 대해 Emacs가 이러한 기능에 어떻게 적합한 지 분명하지만 나머지는 어떻습니까? 또한 특정 언어에 중점을 두어야한다면 C ++이어야한다고 말하고 싶습니다.
편집 : 한 사용자는 ‘나머지는 어떻습니까?’라고 말할 때 더 구체적이어야한다고 지적했습니다. 대부분 효율적인 버전 관리와 문서 조회에 대해 궁금했습니다. 예를 들어, SLIME에서는 Lisp 함수에서 빠른 하이퍼 스펙 조회를 수행하는 것이 매우 쉽습니다. C ++ STL 문서에서 무언가를 찾는 빠른 방법이 있습니까 (예를 들어 hash_map 의 정확한 구문을 잊어 버린 경우 )?
답변
“나머지”의 의미에 대해 구체적이어야합니다. 내가 알고있는 객체 인스펙터를 제외하고, emacs는 위의 모든 것을 아주 쉽게 수행한다 :
- 편집자 (명백한)
- 컴파일러-실행
M-x compile
하고 컴파일 명령을 입력하십시오. 거기에서M-x compile
기본값을 사용하고 사용할 수 있습니다 . Emacs는 C / C ++ 컴파일러 오류 (GCC에서 가장 잘 작동 함)를 캡처하고 경고 또는 오류가있는 행으로 이동하도록 도와줍니다. - 디버깅-마찬가지로 디버깅을 원할 때
M-x gdb
특수 바인딩을 사용하여 gdb 버퍼를 만듭니다. - 문서 조회-emacs는 코드 탐색을위한 뛰어난 CScope 바인딩을 제공합니다. 다른 문서 : Emacs에는 맨 페이지 리더가 있으며 그 밖의 모든 웹과 서적도 있습니다.
- 버전 관리-다양한 VCS 백엔드에 대한 많은 Emacs 바인딩이 있습니다 (CVS, SCCS, RCS, SVN, GIT 모두 염두에 두십시오)
편집 : 코드 탐색과 관련된 문서 조회에 대한 내 대답을 알았습니다. 여기에 더 많은 정보가 있습니다 :
구글 검색은 의심 할 여지없이 더 많은 예를 보여줄 것입니다.
두 번째 링크에서 알 수 있듯이 다른 문서에서 기능 및 기타 검색 기능은 지원되지 않더라도 수행 할 수 있습니다.
답변
emacs를위한 “전통적인”IDE 스타일 환경으로 Emacs Code Browser 를 추천해야합니다 .
편집 : 이제는 emacs의 표준 VCS 인터페이스보다 Magit을 강력하게 권장 합니다.
답변
쉘 창에서 make 명령을 실행하는 대신 Mx 컴파일을 시도 했습니까? make 명령을 실행하고 오류를 표시하며 많은 경우 출력에 파일 이름과 줄 번호가 포함되어 있으면 오류를 일으킨 코드 줄로 매우 쉽게 이동할 수 있습니다.
IDE 팬이라면 emacs의 스피드 바 패키지 (Mx 스피드 바)를보고 싶을 수도 있습니다. 그리고 아직 태그 테이블을 사용하여 코드를 탐색하는 방법에 대해 알아보십시오.
답변
한 번 발견 된 emacs 코너는 생각조차하지 않는 방식으로 생산성을 높여줍니다. 다른 사람들이 언급했듯이 태그를 사용하는 것은 소스 코드를 확대하는 환상적이고 빠른 방법이며 M- / (dabbrev-expand)를 사용하면 변수 이름을 완성 할 때 기대하는 것과 정확하게 일치합니다.
발생을 사용하면 버퍼에서 정규식이 모두 발생하는 버퍼를 얻는 데 유용합니다. 코드를 리팩토링하고 코드 조각이나 변수 사용을 찾거나 소스 파일에서 TODO 마커를 사용하고 모두 방문하려는 경우에 매우 유용합니다.
플러시 라인, 정렬 숫자 필드, replace-regexp 및 사각형 함수는 일부 도구에서 덤프를 가져 와서 elisp 프로그램 또는 쉼표로 구분 된 스프레드 시트와 같은 유용한 데이터로 변환하는 데 실제로 유용 할 수 있습니다.
emacs로 할 수있는 것과 같은 IDE에 관한 페이지를 썼습니다
http://justinsboringpage.blogspot.com/2007/09/11-visual-studio-tricks-in-emacs.html
elisp를 배우는 것은 일반적인 IDE가 할 수있는 것 이상으로 emacs가 할 수있는 다른 일을 스스로 해답 할 수있는 또 다른 좋은 방법입니다.
예를 들어 비난과 같은 Perforce 도우미 기능 작성에 대해 블로그를 작성했습니다 (자신이 직접 작성하면 원하는대로 정확하게 작동 할 수 있음을 의미 함).
http://justinsboringpage.blogspot.com/2009/01/who-changed-line-your-working-on-last.html
또한 현재 작업중 인 코딩 표준과 일치하는 시점에 함수에 대한 주석을 동적으로 작성하는 코드를 작성했습니다.
내 elisp 코드 중 특히 훌륭한 것은 없으며 대부분이 이미 라이브러리에 존재하지만 근무 시간 동안 emacs가 사용자 정의 작업을 수행하도록하는 것이 실제로 유용합니다.
답변
내 사이트 에서 emacs & version control integration에 대한 자세한 설명을 찾을 수 있습니다 . 또한 C / C ++, Java, Perl, Lisp / Scheme, Erlang 등 여러 언어에서 Emacs를 개발 환경으로 사용하는 방법에 대한 기사를 작성 중입니다.
답변
버전 관리의 경우 사용하는 버전 관리 시스템에 따라 사용할 수있는 항목이 몇 가지 있습니다. 그러나 일부 기능은 모든 기능에 공통적입니다.
vc.el 은 파일 수준에서 버전 제어를 처리하는 기본 제공 방법입니다. 대부분의 버전 제어 시스템을위한 백엔드가 있습니다. 예를 들어, Subversion 백엔드는 Emacs와 함께 제공되며 git 백엔드 및 다른 소스에서 사용 가능한 다른 것들이 있습니다.
가장 유용한 명령은 Cx vv (vc-next-action)이며 방문하는 파일에 대해 적절한 다음 조치를 수행합니다. 이는 리포지토리에서 업데이트하거나 변경 사항을 커밋하는 것을 의미 할 수 있습니다. vc.el은 Cx Cq 를 리 바인드 하여 RCS와 같은 필요한 시스템을 사용하는 경우 파일을 체크인 및 체크 아웃합니다.
다른 매우 유용한 명령은 Cx vl 및 Cx v =로 , 사용중인 파일의 로그 및 현재 diff를 보여줍니다.
그러나 실제 생산성을 위해서는 간단한 것 이외의 단일 파일 vc.el 명령을 사용하지 않아야합니다. 전체 트리의 상태에 대한 개요를 제공하고 더 많은 기능을 제공 할 수 있고 여러 파일에 걸쳐 일관된 커밋을 생성하는 기능은 말할 수없는 여러 패키지가 있습니다.
이들 중 대부분은 CVS 의 원래 pcl-cvs / pcvs 에 크게 영향을 받거나 기반으로합니다 . Subversion psvn.el 및 dsvn.el 과 함께 제공되는 두 가지도 있습니다 . 자식 등을위한 패키지가 있습니다.
답변
좋아, 여기의 모든 사람들은 emacs를 훌륭한 IDE로 만들기위한 완벽한 힌트를주고있다.
그러나 누구나 확장 기능을 사용하여 emacs를 커스터마이즈 할 때 (특히 형식 검사, 함수 정의 조회 등) emacs가 에디터에 매우 느리게로드된다는 점을 명심해야합니다.
이 문제를 해결하려면에서 emacs를 사용하는 것이 좋습니다 server mode
.
init 파일을 사용자 정의 할 필요가 없으므로 사용이 매우 간단합니다. 데몬 모드에서 emacs를 시작하면됩니다.
emacs --daemon
그러면 emacs 서버가 생성되며, 터미널이나 GUI에서 연결할 수 있습니다. 또한 쉽게 호출 할 수 있도록 별칭을 만드는 것이 좋습니다.
alias ec="emacsclient -t"
alias ecc="emacsclient -c &"
# some people also prefer this but no need to fight here;
alias vi="emacsclient -t"
이런 식으로, emacs는 gedit, promise보다 훨씬 빠르게 작동합니다.
여기서 가능한 한 가지 문제는 일반 사용자로부터 emacs 데몬을 실행하는 경우 emacs 서버를로 연결할 수 없습니다 root
.
따라서 루트 액세스 권한이있는 파일을 열어야하는 경우 사용하는 tramp
대신. 일반 사용자로 emacs 클라이언트를 실행하고 다음과 같은 파일을여십시오.
C-x C-f
/sudo:root@localhost/some/file/that/has/root/access/permissions
# on some linux distro it might be `/su:root@...`
이렇게하면 인생이 더 쉬워졌습니다.이 방법으로 무거운 맞춤형 파이썬 IDE를 밀리 초 안에 열 수 있습니다. 시스템 시작에 emacs –daemon을 추가하거나 emacsclient 용 데스크탑 파일을 생성 할 수도 있습니다. 그게 당신에게 달려 있습니다.
emacs 데몬 및 emacs 클라이언트에 대한 추가 정보는 wiki에서 찾을 수 있습니다.