이멕스를 IDE로 사용하기


169

현재 C 또는 C ++로 코딩 할 때 Emacs의 워크 플로에는 세 개의 창이 포함됩니다. 오른쪽에서 가장 큰 파일은 내가 작업하고있는 파일을 포함합니다. 왼쪽은 두 가지로 나뉘어져 있으며, 맨 아래는 컴파일하거나 명령을 입력하는 데 사용되는 쉘이며 맨 위는 종종 작업하는 동안 참조하려는 일종의 문서 또는 README 파일입니다. 이제는 꽤 전문적인 Emacs 사용자가 있다는 것을 알고 있으며, 완전한 IDE로 사용하려는 경우 다른 Emacs가 기능적으로 유용한 지 궁금합니다. 특히 대부분의 IDE는 일반적으로 이러한 기능을 수행합니다.

  • 소스 코드 편집기
  • 컴파일러
  • 디버깅
  • 문서 조회
  • 버전 관리
  • 클래스 조회 및 객체 관리자와 같은 OO 기능

이 중 몇 가지에 대해 Emacs가 이러한 기능에 어떻게 적합한 지 분명하지만 나머지는 어떻습니까? 또한 특정 언어에 중점을 두어야한다면 C ++이어야한다고 말하고 싶습니다.

편집 : 한 사용자는 '나머지는 어떻습니까?'라고 말할 때 더 구체적이어야한다고 지적했습니다. 대부분 효율적인 버전 관리와 문서 조회에 대해 궁금했습니다. 예를 들어, SLIME에서는 Lisp 함수에서 빠른 하이퍼 스펙 조회를 수행하는 것이 매우 쉽습니다. C ++ STL 문서에서 무언가를 찾는 빠른 방법이 있습니까 (예를 들어 hash_map 의 정확한 구문을 잊어 버린 경우 )?


5
질문과 모든 답변에는 기본 IDE 포인트가 완전히 누락되었습니다. 그러나 먼저 저를 잘못 생각하지 마십시오 : Emacs가 제공 할 수있는 것 근처에있는 단일 IDE (일부 희귀 한 Lisp / Schema와는 별개)가 없다고 생각합니다. 그러나이 현대의 IDE는 다음과 같이 물건을 수행합니다 (심지어 부분이 아닌 컴파일 가능한하는 AST에) 가능성 코딩 오류의 인스턴트 강조. IntelliJ IDEA는 다음을 수행합니다. @NotNull 을 사용 하면 위반 가능성에 대해 실시간으로 경고합니다. 그런 다음 전체 "의도에 의한 코딩"이 있습니다 . Emacs에서는 작동하지 않습니다.
SyntaxT3rr0r

18
좋은 IDE가 실제로 빛을 발할 수있는 또 다른 영역은 상황에 맞는 코드 완성입니다 (다시 한번, 컴파일 할 수없는 공정한 소스 파일에서도). 상황에 맞는 코드 완성 은 재미 있지 않은 것처럼 히피 확장이 가능 합니다. 단순히 Emacs를 수치스럽게 만듭니다. 다시 한번 IDE "텍스트 편집기"가 Emacs와 비교할 때 싸고, 절름발이이며, 어리 석고, 한심한 쓰레기 조각이라는 것이 매우 슬프다. 그러나 좋은 IDE는 Emacs가 기본적으로 어디에도없는 리팩토링, 상황 코드 완성, 실시간 경고 등과 같은 많은 영역에서 빛을 발합니다. IDE 중간에 이맥스를 줘. 나는 그 날을 갈망하고 있습니다.
SyntaxT3rr0r

코드 축소는 어떻습니까?
AlwaysLearning

나는 아마도 여기 주석은 프로그래머가 작성하지 않았을 것이다. 나는 Emacs가 어떻게 그렇게 할 수없고 읽을 수 없지만 다른 IDE도 할 수없는 방법을 읽었습니다. 다음과 같이 들립니다. 프로그래머, 프로그래밍 언어를 사용하여 문제를 해결하는 사람; 일부 프로그램에는 기능이 없어서 더 나쁘다는 문제가 있지만 해당 기능을 만들고 싶지 않습니다. 사람들처럼 왜 처음부터 프로그래머가 되겠 어 ?? !!
red777

답변:


76

"나머지"의 의미에 대해 구체적이어야합니다. 내가 알고있는 객체 인스펙터를 제외하고, 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 모두 염두에 두십시오)

편집 : 코드 탐색과 관련된 문서 조회에 대한 내 대답을 알았습니다. 여기에 더 많은 정보가 있습니다 :

구글 검색은 의심 할 여지없이 더 많은 예를 보여줄 것입니다.

두 번째 링크에서 알 수 있듯이 다른 문서에서 기능 및 기타 검색 기능은 지원되지 않더라도 수행 할 수 있습니다.


3
이것이 "Mx compile"이 아니어야합니까?
Svante

1
저는 GNU 글로벌이 요즘 CScope보다 우수하다고 생각합니다 : gnu.org/software/global
Jürgen Hötzel

@ Jürgen Hötzel : 한동안 적극적으로 Emacs를 사용하지 않았습니다. 당시 저는 IIScope 인 CScope와 함께 GNU global을 사용했습니다. 글로벌이 CScope를 능가했다면 놀라지 않을 것입니다.
벤 콜린스


29

emacs를위한 "전통적인"IDE 스타일 환경으로 Emacs Code Browser 를 추천해야합니다 .

편집 : 이제는 emacs의 표준 VCS 인터페이스보다 Magit을 강력하게 권장 합니다.


당신은 게시물을 편집 할 수 있어야합니다, 당신은 충분한 담당자 iirc을 가지고있는 것처럼 보입니다.
baudtack

19

쉘 창에서 make 명령을 실행하는 대신 Mx 컴파일을 시도 했습니까? make 명령을 실행하고 오류를 표시하며 많은 경우 출력에 파일 이름과 줄 번호가 포함되어 있으면 오류를 일으킨 코드 줄로 매우 쉽게 이동할 수 있습니다.

IDE 팬이라면 emacs의 스피드 바 패키지 (Mx 스피드 바)를보고 싶을 수도 있습니다. 그리고 아직 태그 테이블을 사용하여 코드를 탐색하는 방법에 대해 알아보십시오.


15

한 번 발견 된 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가 사용자 정의 작업을 수행하도록하는 것이 실제로 유용합니다.


10

내 사이트 에서 emacs & version control integration에 대한 자세한 설명을 찾을 수 있습니다 . 또한 C / C ++, Java, Perl, Lisp / Scheme, Erlang 등 여러 언어에서 Emacs를 개발 환경으로 사용하는 방법에 대한 기사를 작성 중입니다.


8

버전 관리의 경우 사용하는 버전 관리 시스템에 따라 사용할 수있는 항목이 몇 가지 있습니다. 그러나 일부 기능은 모든 기능에 공통적입니다.

vc.el 은 파일 수준에서 버전 제어를 처리하는 기본 제공 방법입니다. 대부분의 버전 제어 시스템을위한 백엔드가 있습니다. 예를 들어, Subversion 백엔드는 Emacs와 함께 제공되며 git 백엔드 및 다른 소스에서 사용 가능한 다른 것들이 있습니다.

가장 유용한 명령은 Cx vv (vc-next-action)이며 방문하는 파일에 대해 적절한 다음 조치를 수행합니다. 이는 리포지토리에서 업데이트하거나 변경 사항을 커밋하는 것을 의미 할 수 있습니다. vc.el은 Cx Cq 를 리 바인드 하여 RCS와 같은 필요한 시스템을 사용하는 경우 파일을 체크인 및 체크 아웃합니다.

다른 매우 유용한 명령은 Cx vlCx v =로 , 사용중인 파일의 로그 및 현재 diff를 보여줍니다.

그러나 실제 생산성을 위해서는 간단한 것 이외의 단일 파일 vc.el 명령을 사용하지 않아야합니다. 전체 트리의 상태에 대한 개요를 제공하고 더 많은 기능을 제공 할 수 있고 여러 파일에 걸쳐 일관된 커밋을 생성하는 기능은 말할 수없는 여러 패키지가 있습니다.

이들 중 대부분은 CVS 의 원래 pcl-cvs / pcvs 에 크게 영향을 받거나 기반으로합니다 . Subversion psvn.eldsvn.el 과 함께 제공되는 두 가지도 있습니다 . 자식 등을위한 패키지가 있습니다.


8

좋아, 여기의 모든 사람들은 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에서 찾을 수 있습니다.

http://www.emacswiki.org/emacs/EmacsAsDaemon

http://www.emacswiki.org/emacs/EmacsClient


1
나는이 나중에 5 년 정도입니다 알지만, 너무 시간에 그것을 사용했다 : 당신이 설정 한 경우 EDITOR="emacsclient -t" VISUAL="emacsclient -c"당신이 sudo를 기반 편집 할 수 있습니다 sudo -e또는 sudoedit(일반적으로 감사 이유로) TRAMP를 사용하는 때때로 바람직하다. 당신은 또한으로는 emacsclient 호출 --alternate-editor= ( 필요 끝 부분에 공간을)하고 당신이 그것을 위해 기다릴 인 경우 시스템 시작에 데몬을 넣어 할 필요가 없습니다가 실행되어 있지 않은 경우 데몬, 시작합니다 첫 번째 시간을 당신 부팅 할 때마다 편집기를 실행하십시오.
Darael

7

Mx 컴파일에 대해 배워야한다는 것에 동의합니다 (Mx 다음 오류를 짧은 키 시퀀스에 바인딩).

버전 제어의 바인딩에 대해 학습합니다 (예 : vc-diff, vc-next-action 등).

레지스터를 살펴보십시오. 버퍼의 위치뿐만 아니라 전체 창 구성 (Cx rw-창 구성-등록)을 기억할 수 있습니다.


6

Emacs의 VC 기능을 탐색하기위한 시작점 (명백하지 않을 수도 있음)은 Mx vc-next-action 입니다.

파일 상태와 VC 백엔드에 따라 현재 파일에서 "다음 논리 버전 제어 작업"을 수행합니다. 따라서 파일이 버전 관리 상태가 아닌 경우 파일을 등록하고 파일이 변경된 경우 변경 사항이 제출됩니다.

익숙해지는 데 약간의 시간이 걸리지 만 매우 유용합니다.

기본 키 바인딩은 Cx vv입니다.


4

Microsoft TFS에 emacs 통합을위한 TFS.el 이 있습니다 . Codeplex.com을 실행하는 TFS를 포함한 모든 TFS에서 작동합니다.

설정하는 기본 단계 :

  1. tfs.el을로드 경로에 배치하십시오.

  2. .emacs 파일에서 :

    (require 'tfs)
    (setq tfs/tf-exe  "c:\\vs2008\\common7\\ide\\tf.exe")
    (setq tfs/login "/login:domain\\userid,password")
          -or-
    (setq tfs/login (getenv "TFSLOGIN"))  ;; if you have this set
  3. 또한 .emacs 파일에서 tfs 명령에 대한 로컬 또는 글로벌 키 바인딩을 설정하십시오. 이렇게 :

    (global-set-key  "\C-xvo" 'tfs/checkout)
    (global-set-key  "\C-xvi" 'tfs/checkin)
    (global-set-key  "\C-xvp" 'tfs/properties)
    (global-set-key  "\C-xvr" 'tfs/rename)
    (global-set-key  "\C-xvg" 'tfs/get)
    (global-set-key  "\C-xvh" 'tfs/history)
    (global-set-key  "\C-xvu" 'tfs/undo)
    (global-set-key  "\C-xvd" 'tfs/diff)
    (global-set-key  "\C-xv-" 'tfs/delete)
    (global-set-key  "\C-xv+" 'tfs/add)
    (global-set-key  "\C-xvs" 'tfs/status)
    (global-set-key  "\C-xva" 'tfs/annotate)
    (global-set-key  "\C-xvw" 'tfs/workitem)

음 .. .emacs 파일에 암호를 일반 텍스트로 넣는 것을 진지하게 주장합니까?
TED

@TED-아니요, 단지 예시 일뿐입니다. 비밀은 elisp에서 읽은 다른 곳에 저장해야합니다.
Cheeso

3

컴파일, 다음 오류 및 이전 오류는 모두 Emacs에서 C ++ 개발을위한 매우 중요한 명령입니다 (grep 출력에서도 잘 작동합니다). 태그, 방문 태그 테이블 및 찾기 태그도 중요합니다. completion.el은 20 세기의 이름없는 해킹 중 하나이며 C ++ 해킹 속도를 크게 높일 수 있습니다. 아 그리고 ediff를 잊지 말자.

쉘을 방문하지 않고 버전 제어를 사용하는 방법을 아직 배우지 않았지만 이제는 커밋을 훨씬 더 자주 (git으로) 실행하고 있습니다.


3

탭 바가 유용 할 수도 있습니다 . Eclipse에서 Emacs로 이동할 때 놓친 유일한 동작을 에뮬레이트합니다. ","및 "."에 바인딩 이전 및 다음 탭 표시 줄로 이동하기 위해 항상 Ctrl-x b로 버퍼를 전환하지 않아도됩니다.

불행히도, 언급 된 웹 페이지는 다운로드 할 올바른 버전을 제공하지 않습니다. 그러나 대부분의 우분투 버전은 emacs-goodies 패키지로 제공합니다.


1
멋지다, 나는 새로운 버전의 tabbar를 얻는 방법을 찾고 있었다. 우분투에없는 사람들은 여기에서 찾을 수 있습니다. packages.ubuntu.com/karmic/emacs-goodies-el
Ibrahim

3

Windows에서 emacs를 사용합니다. 컴파일 모듈은 훌륭하지만 컴파일 명령 줄에 대해 더 똑똑하게 컴파일하고 싶었습니다. "파일 변수"를 사용하여을 지정할 수compile-command 는 있지만 그보다 조금 더 똑똑한 것을 원했습니다. 그래서 나는 도울 수있는 작은 기능을 썼습니다. 실행할 때 사용자에게 프롬프트를 표시하기 위해 사용할 컴파일 명령을 추측합니다 compile.

추측 함수는 vbproj 또는 csproj 또는 sln 파일을 찾고, 발견되면 msbuild를 제안합니다. 그런 다음 버퍼 파일 이름을보고 이에 따라 다른 것을 제안합니다. .wxs 파일은 WIX 프로젝트임을 의미하며 MSI를 빌드 할 가능성이 있으므로 추측 논리는 MSI에 대한 nmake 명령을 제안합니다. Javascript 모듈 인 경우 jslint-for-wsh.js를 실행하여 .js 파일을 보 푸라 게하는 것이 좋습니다. 폴백으로 nmake를 제안합니다.

내가 사용하는 코드는 다음과 같습니다.

(defun cheeso-guess-compile-command ()
  "set `compile-command' intelligently depending on the
current buffer, or the contents of the current directory."
  (interactive)
  (set (make-local-variable 'compile-command)
       (cond
        ((or (file-expand-wildcards "*.csproj" t)
             (file-expand-wildcards "*.vcproj" t)
             (file-expand-wildcards "*.vbproj" t)
             (file-expand-wildcards "*.shfbproj" t)
             (file-expand-wildcards "*.sln" t))
         "msbuild ")

        ;; sometimes, not sure why, the buffer-file-name is
        ;; not set.  Can use it only if set.
        (buffer-file-name
         (let ((filename (file-name-nondirectory buffer-file-name)))
           (cond

            ;; editing a .wxs (WIX Soluition) file
            ((string-equal (substring buffer-file-name -4) ".wxs")
             (concat "nmake "
                     ;; (substring buffer-file-name 0 -4) ;; includes full path
                     (file-name-sans-extension filename)
                     ".msi" ))

            ;; a javascript file - run jslint
            ((string-equal (substring buffer-file-name -3) ".js")
             (concat (getenv "windir")
                     "\\system32\\cscript.exe c:\\users\\cheeso\\bin\\jslint-for-wsh.js "
                     filename))

            ;; something else - do a typical .exe build
            (t
             (concat "nmake "
                     (file-name-sans-extension filename)
                     ".exe")))))
        (t
         "nmake "))))


(defun cheeso-invoke-compile-interactively ()
  "fn to wrap the `compile' function.  This simply
checks to see if `compile-command' has been previously set, and
if not, invokes `cheeso-guess-compile-command' to set the value.
Then it invokes the `compile' function, interactively."
  (interactive)
  (cond
   ((not (boundp 'cheeso-local-compile-command-has-been-set))
    (cheeso-guess-compile-command)
    (set (make-local-variable 'cheeso-local-compile-command-has-been-set) t)))
  ;; local compile command has now been set
  (call-interactively 'compile))

;; in lieu of binding to `compile', bind to my monkeypatched function
(global-set-key "\C-x\C-e"  'cheeso-invoke-compile-interactively)

컴파일 기능에 대한 "조언 전"으로 이것을 시도했지만 만족스럽게 작동하지 못했습니다. 그래서 새로운 함수를 정의하고 내가 사용했던 것과 동일한 키 스트로크 조합에 바인딩했습니다 compile.


EDIT 지금 "이 스마트-compile.el 더이 아이디어 하나의 단계를합니다."


2

설명서 조회 : 프로그래밍 언어에 따라 다릅니다.

C 라이브러리 및 시스템 호출은 일반적으로 매뉴얼 페이지에 문서화되어 있습니다. 이를 위해을 사용할 수 있습니다 M-x man. 일부 정보는 정보 페이지에 더 잘 문서화 될 수 있습니다. 사용하십시오 M-x info.

생략 자체를 사용하십시오 C-h f. 파이썬의 >>> help(<function, class, module>)경우 인터프리터에서 사용 하십시오.

대부분의 다른 언어는 html 형식의 문서를 제공합니다. 이를 위해 임베디드 브라우저를 사용해보십시오 (w3m 사용). 브라우저를 열거 나 emacs 내에서 열어야 할 경우를 대비 하여 BROWSER환경 변수를 emacsclient -e "(w3m-goto-url-new-session \"$@\")"* nix에서 래퍼 스크립트로 설정하십시오 .


2

나는 이것이 매우 오래된 게시물이라는 것을 알고 있습니다. 그러나이 질문은 이맥스 초보자에게 유효합니다.

IMO를 eide로 사용하는 가장 좋은 방법은 emacs와 함께 언어 서버 프로토콜 을 사용하는 것 입니다. 링크 된 웹 사이트에서 언어 서버에 대한 모든 정보를 찾을 수 있습니다.

빠른 설정을 위해이 페이지 (예 : eglot) 로 이동하십시오 . IMO eglot은 잘 작동합니다. 회사와 같은 자동 완성 패키지와 잘 통합됩니다. 찾기 참조 등을 제공합니다.

또한 디버거의 경우 특정 언어에 대한 특정 디버거가 필요할 수 있습니다. emacs 내에서 gdb를 사용할 수 있습니다. 그냥 입력하십시오 M-x gdb.

코드를 컴파일하려면 쉘 명령을 사용하는 것이 가장 좋습니다. 이 프로젝트 eproj 작업 입니다. 완료하는 데 시간이 걸릴 것입니다. 그러나 쉘 명령을 프로젝트 유형에 매핑하기 만하면됩니다. 그리고 쉘을 통해 프로젝트를 빌드합니다. 명령을 실행하는 것도 동일합니다. 이 프로젝트를 완료하는 데 도움이 필요할 수 있습니다. 사용할 준비가되지 않았지만 약간의 설명을 알고 있다면 코드를 살펴볼 수 있습니다.

따로, 항상 emacs compile 명령을 사용하는 것이 가장 좋습니다.

버전 제어의 경우 magit 의 힘과 일치하는 다른 패키지는 아직 보지 못했습니다 . git에만 해당됩니다. 또한 git에는 다른 패키지 git-timemachine이 있는데 매우 유용합니다.

객체 조회 및 클래스 조회는 언어 서버 프로토콜에 의해 제공됩니다.

프로젝트 트리는 treemacs와의 인터페이스와 같은 아이디어에 사용될 수 있습니다 .

projectile 이라는 프로젝트 인터랙션 라이브러리도 있습니다 .

자동 완성의 경우 회사 모드가 매우 유용합니다.

진정으로 이맥스는 무엇이든 할 수 있습니다.


1

최근 몇 년 동안 Clang은 Emacs C ++ 지원의 중요한 부분이되었습니다. Atila Neves는 CppCon 2015에 대해 이야기했습니다 : "C ++ IDE로서의 이멕스"

16 분짜리 대화로 다음 주제에 대한 솔루션을 보여줍니다.

  • 정의로 이동
  • 자동 완성
  • 즉각적인 구문 강조
  • 프로젝트에서 파일 찾기

슬라이드는 여기 에서 찾을 수 있습니다 .


0

유닉스 또는 X 윈도우 스타일에서 모든 것을 위해 작동하는 통합 IDE가 있다는 것을 모르겠습니다.

IDE의 한 구성 요소 인 디버거와 상호 작용하려면 다음을 고려하십시오. realgud를 하십시오 . 다른 유용한 점은 위치 메시지에 대한 파서이므로 호출 스택 추적이 있고 호출 스택의 특정 위치에서 편집하려는 경우이 프런트 엔드 인터페이스가이를 수행 할 수 있습니다.

지금까지이 프로그램은 개선을 사용할 수있었습니다. 그러나이를 개선하기 위해 노력하는 사람들을 사용할 수도 있습니다.

면책 조항 : 나는 realgud에서 일합니다.


0

lsp-mode를 시도하십시오. 이제 서버에 연결하는 emacs 내에서 다른 IDE 기능을 사용할 수 있습니다. 추가 정보 찾기 : lsp-mode

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.