Using Emacs as an IDE

后端 未结 18 1735
清酒与你
清酒与你 2020-11-29 14:29

Currently my workflow with Emacs when I am coding in C or C++ involves three windows. The largest on the right contains the file I am working with. The left is split into

相关标签:
18条回答
  • 2020-11-29 15:00

    I agree that you should learn about M-x compile (bind that and M-x next-error to a short key sequence).

    Learn about the bindings for version control (e.g. vc-diff, vc-next-action, etc.)

    Look into registers. You not only can remember locations in buffers but whole window configurations (C-x r w -- window-configuration-to-register).

    0 讨论(0)
  • 2020-11-29 15:00

    I know this is a very old post. But this question is valid for emacs beginners.

    IMO the best way to use emacs as an ide is to use a language server protocol with emacs. You can find all the information about language servers in the linked website.

    For a quick setup, i would urge you to go to this page eglot . IMO eglot does it's job pretty well. It integrates well with auto completions packages like company. Provides find reference, and more.

    Also for a debugger, you may need specific debuggers for specific languages. You can use gdb from within emacs. Just type M-x gdb .

    For compiling your code, it's best to use shell-commands. I am working on this project eproj. It's gonna take a while to complete it. But all it does is maps shell command to project type. And builds you project via shell. It does the same to execute command. I may need help completing this project. It's not ready for use, but if you know a bit of elisp you can go through the code.

    That aside, it's always best to use the emacs compile command.

    For version control, I haven't yet seen any other package which can match the power of magit. It's specific to git. Also for git there is another package git-timemachine, which i find very useful.

    Object lookup and class lookup is provided by language server protocol.

    A project tree can be used for ide like interface with treemacs.

    There is also a project Interaction Library called projectile.

    For auto completion, I find company-mode very useful.

    Truly emacs can be made to do anything.

    0 讨论(0)
  • 2020-11-29 15:00

    On documentation lookup: that depends on your programming language(s).

    C libraries and system calls are typically documented in man pages. For that you can use M-x man. Some things may be documented better in info pages; use M-x info.

    For elisp itself, use C-h f. For python, use >>> help(<function, class, module>) in the interpreter.

    I find that most other languages offer documentation in html form. For that, try an embedded browser (I use w3m). Set your BROWSER environment variable to a wrapper script around emacsclient -e "(w3m-goto-url-new-session \"$@\")" (on *nix), in case something might open a browser and you want it opened inside emacs.

    0 讨论(0)
  • 2020-11-29 15:03

    In the Unix or X windows style, I don't know that there is an integrated IDE that works for everything.

    For interacting with debuggers, just one component of an IDE, consider realgud. The other thing it has that I find useful are parsers for location messages, so that if you have a call stack trace and want to edit at a particular place in the callstack, this front-end interface will can do that.

    By far this program could use improvement. But then it could also use people working on it to improve it.

    Disclaimer: I work on realgud

    0 讨论(0)
  • I have to recommend Emacs Code Browser as a more "traditional" IDE style environment for emacs.

    EDIT: I also now recommend Magit highly over the standard VCS interface in emacs.

    0 讨论(0)
  • 2020-11-29 15:06

    You might also find tabbar useful. It emulates the only behavior I missed when moving from Eclipse to Emacs. Bound to "," and "." for moving to the previous and next tab bar, it relives you from switching the buffer by Ctrl-x b all the time.

    Unfortunately, the mentioned web page does not provide the correct version to download. Most Ubuntu versions, however, deliver it in their emacs-goodies packages.

    0 讨论(0)
提交回复
热议问题