3 ms·
Unite, fireplace, rainbow parens, vim-sexp and vim-surround are all available in Emacs with its own and better implementation. If you want Unite equivalent, ch
by tuhdo 11y ago
Unite, fireplace, rainbow parens, vim-sexp and vim-surround are all available in Emacs with its own and better implementation.
If you want Unite equivalent, check Helm which is created before Unite and is still actively maintained. See one of Helm package demo: http://tuhdo.github.io/helm-projectile.html http://tuhdo.github.io/helm-projectile.html. The same for rainbow-parentheses. Actually, Emacs got something better than rainbow-parentheses for visual aiding parentheses: https://github.com/syl20bnr/spacemacs/issues/1173 https://github.com/syl20bnr/spacemacs/issues/1173
For proper sexp manipulation, check this guide with great animations: http://danmidwood.com/content/2014/11/21/animated-paredit.html http://danmidwood.com/content/2014/11/21/animated-paredit.ht...
For Clojure, in Emacs you got a debugger than can step expression by expression: http://endlessparentheses.com/cider-debug-a-visual-interactive-debugger-for-clojure.html http://endlessparentheses.com/cider-debug-a-visual-interacti...
If you want to know features for Clojure that already configured in Spacemacs, check its Clojure documentation: https://github.com/syl20bnr/spacemacs/tree/master/contrib/lang/clojure#features https://github.com/syl20bnr/spacemacs/tree/master/contrib/la...
You got all IDE features like refactoring and jump to symbols
More demos:
Here are some nice features that Emacs and its 3rd packages provide:
- Powerful automatic indentation with aggressive-indent: https://github.com/Malabarba/aggressive-indent-mode(scroll https://github.com/Malabarba/aggressive-indent-mode(scroll down for demos). It does not only indent the current line, but the whole semantic context around your cursor.
- Live grep:http://tuhdo.github.io/static/live_grep.gif http://tuhdo.github.io/static/live_grep.gif
- C/C++ refactoring with built-in parser: https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos.org https://github.com/tuhdo/semantic-refactor/blob/master/srefa...
- Lisp Code reformatting: https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos-elisp.org https://github.com/tuhdo/semantic-refactor/blob/master/srefa...). As far as I know, there's none Lisp code reformatting outside of Emacs.
- Access to a list of project with a few key strokes: http://tuhdo.github.io/static/helm-projectile/helm-projectile-switch-project.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil...
- Quickly access any file in your project, as large as Linux kernel, instantly, regardless of where you are in the project, and within a few keystrokes: http://tuhdo.github.io/static/helm-projectile/helm-projectile-find-files-1.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil...)
- Jump to any file depends on context, even if the file path is in a plain ASCII text file: http://tuhdo.github.io/static/helm-projectile/helm-projectile-find-files-dwim-1.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil...
- Copy files from anywhere to anywhere: http://tuhdo.github.io/static/helm-projectile/helm-projectile-find-file-copy.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil...)
- Delete files anywhere; files are always at your finger tip to do whatever with them: http://tuhdo.github.io/static/helm-projectile/helm-projectile-find-file-delete.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil...
- Switch between other files with same names but different extensions: http://tuhdo.github.io/static/helm-projectile/helm-projectile-find-other-file.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil...). Work not only for C/C++ but other languages, and is customizable. You don't have to configure anything, like adding include paths for the command to search. Everything is automatic. Just use it as it is.
- Jump to tag definition, from its own parser or external parser like GNu Global: http://tuhdo.github.io/static/c-ide/helm-gtags-jump-dwim.gif http://tuhdo.github.io/static/c-ide/helm-gtags-jump-dwim.gif
- Jump up to parent: http://tuhdo.github.io/static/c-ide/senator-go-to-up-reference.gif http://tuhdo.github.io/static/c-ide/senator-go-to-up-referen...
- Do you like outline tree?: http://tuhdo.github.io/static/c-ide/sr-speedbar.gif http://tuhdo.github.io/static/c-ide/sr-speedbar.gif
- Interactive outline tree: http://tuhdo.github.io/static/c-ide/helm-semantic-or-imenu-with-struct.gif http://tuhdo.github.io/static/c-ide/helm-semantic-or-imenu-w...
- Easily move back and forth using the interactive outline tree: http://tuhdo.github.io/static/part3/helm-semantic-or-imenu-2.gif http://tuhdo.github.io/static/part3/helm-semantic-or-imenu-2...
- References retrieved from its Emacs internal parser: http://tuhdo.github.io/static/c-ide/semantic-symref.gif http://tuhdo.github.io/static/c-ide/semantic-symref.gif
- Beautiful compile output: http://tuhdo.github.io/static/c-ide/compilation-compile.gif http://tuhdo.github.io/static/c-ide/compilation-compile.gif
- Frontend support for GDB: http://tuhdo.github.io/static/c-ide/gdb-many-windows.gif http://tuhdo.github.io/static/c-ide/gdb-many-windows.gif
- Code completion: http://tuhdo.github.io/static/c-ide/semantic-boost-demo.gif http://tuhdo.github.io/static/c-ide/semantic-boost-demo.gif
- Open man page for symbol at cursor: http://tuhdo.github.io/static/part3/helm-man-woman.gif http://tuhdo.github.io/static/part3/helm-man-woman.gif
- Emacs open 39MB C file: http://tuhdo.github.io/static/performance.gif http://tuhdo.github.io/static/performance.gif
- Emac opens multi-gigabtye file: http://www.emacswiki.org/emacs/VLF http://www.emacswiki.org/emacs/VLF
Note that in the demos you may see me type in the commands. You can think of it like the start menu in Windows, but actually those commands can be executed quickly with a shortcut. I type in the commands for demonstration purpose to Emacs users.
Those demos are just tip of the iceberg.
- emidln 11y agoFirst off, thanks for your awesome tutorials! I actually switched to Spacemacs, for largely the reasons you mentioned (everything is there, but easier to extend and largely better). I was merely pointing out that vim with some plugins is good enough to get serious work done in Clojure, even though getting access to real refactoring libraries, a debugger, etc in my editor would be welcome. The one problem I have with Emacs is that vim-sexp is and was much much much much better than paredit. Treating forms as text objects and letting you use regular vim motions to select text objects before slurping/barfing/etc is a move forward. It wasn't exactly obvious to me how to duplicate this with Spacemacs/VIM, but I also had work to do so I just went with the Spacemacs paredit bindings.
- tuhdo 11y agoGreat that you are a Spacemacs user now and glad that you like my tutorials. So, could you be more specific about how vim-sexp works? If you want to visual select sexp from symbol and expanding outward, uses expand-region: https://github.com/magnars/expand-region.el https://github.com/magnars/expand-region.el. Same for string. Then you can use smartparens: https://github.com/Fuco1/smartparens https://github.com/Fuco1/smartparens to wrap around by simply pressing "(". It is all in Spacemacs now, and you can explore further with evil-lisp-state commands, bound to ", k".
- hammerandtongs 11y agoevil-surround is the more idiomatic way to do smartparens stuff. https://github.com/guns/vim-sexp https://github.com/guns/vim-sexp This is actually an open problem in evil/emacs at the moment. Would be nice to sort out.
- tuhdo 11y agoI'm pretty sure you can do the same thing with expand-region and smartparens combined and is more general than manipulating sexp.
- 11y ago