
Spacemacs – Emacs advanced kit focused on Evil - weavie
https://github.com/syl20bnr/spacemacs#introduction
======
cranium
I switched a few months ago and I must say I'm really impressed: there is
(nearly) no Vim feature I miss!

Out-of-the-box features/packages I like:

\- Default powerline is cool

\- "guide-key" package: as you may know, Emacs is based on successions of key
bindings to call a function, guide-key tells you what key binding you can do
next. Example: "SPC p" is the prefix for most "projectile" (project explorer
package) commands, so guide-key shows you what keys you can press and its
associated function/subgroup. I think it's the best way to learn your key
bindings!

\- (from vanilla Emacs, enhanced with Helm) M-x: call a function. While it
doesn't seem impressive, EVERY ACTION is a function in Emacs! You can call
"evil-next-line" (even if it's now really useful) or "set-default-font", and
with Helm you can search in real time what you want. If I want to create a
table in org-mode: "M-x org cre" brings "org-create-table". No need to
remember the function full name!

\- org-mode: Think of it as an editor for all non-code tasks. I personally do
my graded homeworks in it and then exporting these in latex/pdf. "C-c C-e l o"
<\- export file in latex, generate pdf and open. Really quick to do!

Final words: happy to have switched to Emacs, I don't really miss my Vim
environment because there are a lot of alternatives out of the box in
Spacemacs (thanks to the good integration of Evil).

BTW, I still use Vim to do quick edits in the terminal, solely because Emacs
takes more time to boot :)

~~~
atjoslin
Run `emacs -nw --daemon` to start a background emacs server.

Now, you can do `emacsclient -nw <file>` to boot up with almost no startup
time. I have vi aliased to this, and `emacs -nw --daemon` opened by launchctl.

A gotcha: If you change your emacs config and need to restart, be sure to
`pkill emacs` to get rid of the daemon.

~~~
manish_gill
The one thing I hate about emacs client (and I was bitching about it on #emacs
the other day as well) is that in OS X, a windowed client will just "hang"
when exited. It will still be visible in the cmd-tab list, and thus isn't
truly exited. Hence, if I want to remove that annoying non-running client, I
basically have to kill the daemon and restart. This is particularly annoying
when I'm editing configuration.

And in many cases, using just the terminal isn't enough because there are
quite a few quirks when using emacs in the terminal, the most recent one I
found was that <shift><tab> is interpreted as M-[.

I wish there was some way to fix this. :(

~~~
psibi
I think the hanging thing can be solved by invoking emacsclient in the
following way: `emacsclient -n`.

~~~
michaelsbradley
-n serves a different purpose (the command returns immediately). Even when using that flag, there will be an Emacs icon in the cmd-tab list and the dock after the client is closed.

------
samatman
I like this development. I feel that we have three editors (really types
thereof) for a reason.

The Sublime/TM/Notepad++ crowd cares about OS-native integration. I use
Sublime frequently because after a solid decade+ living in OSX land, my
fingers know how what to do, and neither vim nor emacs respect that without
considerable massaging.

Vim fans want to use an elegant command syntax. I watch vim users code and
always make a point to learn how to vim, eventually. The only reason I don't,
is because I haven't.

Emacs users want/need the programmable, extensible runtime. Emacs is a
programming language; particularly in Lisp development, Emacs often contains
programs that are basic/standard parts of the toolchain and not found in other
editors. I use Emacs because I like it, but more importantly, because I have
to.

Combining the elegant syntax of Vim with the extensibility of Emacs, as well
as some out-of-the-box support for the basic OS-native commands, is a very
good start.

~~~
patejam
FWIW, I use Sublime/Jetbrain products for most of my programming and I always
turn on vim keybindings. It isn't 100% the same as actual vim, but it is still
faster than a mouse for me.

~~~
expando
ideavim is easily the best vim emulation I had ever used until I tried
spacemacs/evil. Ideavim blew the eclipse vim modes out of the water

~~~
colordrops
And they fixed some annoying inconsistencies with recent releases. It's pretty
good now. Makes developing Java in an IDE tolerable.

------
atjoslin
I used Vim my whole career. But I always hated all the little bugs.

Then I found Spacemacs a couple weeks ago and switched. I had an equivalent
environment set up in a few days.

Now I'm moving forward with the ability to do almost anything I want, and all
of Vim's warts gone.

Vim really is a shitty editor with an awesome UI on top.

Emacs is a completely configurable, actually good editor. Now with Vim's
awesome UI.

~~~
zxcvcxz
Vim is shit so you installed a vim emulator?

~~~
tuhdo
He said that the Vim UI is good (aka the modal editing) but everything else is
crap. So, Evil gives that interface and better platform.

------
_cipher_
When I saw this thread, the initial thought I had was "pff, another emacs
thread about vim users".

But this is absolutely perfect (either for transition, or for someone like me
that just wants to try a transition but does not know where to start).

Thanks for sharing. Beautiful work. :)

------
Phlogistique
I tried to use it to switch to Emacs, and was disappointed like each time I
try to switch to Emacs.

Among the problems and warts:

\- The Spacemacs doc is on their repo, not in Emacs! (except if you manually
fire a buffer with SPC f f ~/.emacs.d/doc/DOCUMENTATION.md)

\- Emacs has an interactive interface for editing configuration variables. You
will arrive to this interface from the Emacs doc, but it does not have
Spacemacs-like keybindings and I'm not even sure it's supposed to work with
Spacemacs

\- I could not find the doc for ex/vim commands. I suspect there is no
equivalent to ":h :foo"

\- In vim, it is possible from any mode to get back to the normal mode by
typing 'ESC'. In Emacs, C-g aborts a keybinding. However those two are not
unified by Spacemacs.

\- I use vim with several buffers. However launching "emacsclient -t foo.txt
bar.txt" will open them sequentially, and I can not use :n / :N to go back and
forth.

\- The fact that there are several interactive interfaces for switching
buffers and/or opening files is confusing. Typing a file-name in helm-mini
creates a "fundamental" buffer that is not a file. I lost some work because of
this.

If there were just one or two of these warts and inconveniences, I would get
use to them or fix them, but right now there are a little too much. That said,
the premise is really attractive, so I can only hope these problems will get
fixed over the years so that I can go back to it someday.

~~~
tuhdo
> \- The Spacemacs doc is on their repo, not in Emacs! (except if you manually
> fire a buffer with SPC f f ~/.emacs.d/doc/DOCUMENTATION.md)

You can explore the doc for each layer by "SPC f e h". You can even jump to
source from there.

> \- Emacs has an interactive interface for editing configuration variables.
> You will arrive to this interface from the Emacs doc, but it does not have
> Spacemacs-like keybindings and I'm not even sure it's supposed to work with
> Spacemacs

Everything that works in stock Emacs should work in Spacemacs. Stock Emacs key
bindings are always there. Spacemacs stuff, as its name implies, is in the SPC
key.

> \- I could not find the doc for ex/vim commands. I suspect there is no
> equivalent to ":h :foo"

I think it should exist. Maybe you need to ask the gitter chatroom. Stuffs
like s/foo/bar works for me. However, even NeoVim wants to remove it:
[https://github.com/neovim/neovim/issues/1089](https://github.com/neovim/neovim/issues/1089)

> \- In vim, it is possible from any mode to get back to the normal mode by
> typing 'ESC'. In Emacs, C-g aborts a keybinding. However those two are not
> unified by Spacemacs.

You do it with evil-escape: [https://github.com/syl20bnr/evil-
escape](https://github.com/syl20bnr/evil-escape), which is built-in Spacemacs
by default and press "fd to escape everything. You can change it to anything
you want.

> \- I use vim with several buffers. However launching "emacsclient -t foo.txt
> bar.txt" will open them sequentially, and I can not use :n / :N to go back
> and forth.

The next version you can use "SPC b n" and "SPC b p" to go back and forth.
However, you can use "SPC b s" to switch between buffers and press "C-c o" to
open another window side by side. To split window, use "SPC b -" to create a
window below and "SCP b /" to create a window right. Jump to each window based
on the number on its modeline, i.e. "SPC 1" jumps to window 1, "SPC 2" to jump
to window 2.

> \- The fact that there are several interactive interfaces for switching
> buffers and/or opening files is confusing. Typing a file-name in helm-mini
> creates a "fundamental" buffer that is not a file. I lost some work because
> of this.

It's a feature. It means that when you switch to a non-existent buffer, you
can press RET to create it. It's quite handy to create a scartch buffer of a
specific major mode. If you want to open a file, don't use a command that open
buffer but a command that open files. I believe in Vim I can create empty
buffers.

~~~
Phlogistique
> You can explore the doc for each layer by "SPC f e h". You can even jump to
> source from there.

But does it offer an access to the main docs? When I type "spacemacs" in there
I get an empty README.md.

> Everything that works in stock Emacs should work in Spacemacs. Stock Emacs
> key bindings are always there

Yep, but I'm not an Emacs user so I do not know them!

> I think it should exist.

Well, you can try :h for yourself...

> However, even NeoVim wants to remove it:
> [https://github.com/neovim/neovim/issues/1089](https://github.com/neovim/neovim/issues/1089)

They are talking about removing Ex mode, not ex commands!

> I believe in Vim I can create empty buffers.

I don't believe in Vim you get an easy way to create a buffer that has a name
that is not a filename...

------
Xephyrous
I've been using spacemacs off and on for a few months, (although never as my
primary editor). I really like their out-of-the-box config, and it's much
easier and better than my previous copypasted amalgamation of an init.el file.
I have a few qualms with it though.

\- It completely takes over emacs. Your modifications now go in ~/.spacemacs.
Don't touch ~/.emacs.d/ Want to install something from melpa? Make a spacemacs
configuration layer. That aspect feels like a strong step away from the emacs
ethos where you're on the same footing as the editor authors. I don't like the
inversion of control.

\- It's unstable. Fairly often I'll update and something will fail, leaving me
helplessly with emacs keybindings. Thankfully, a revert is easy.

\- The last one is a problem with evil in general, you'll still occasionally
find yourself in emacs mode, where hjlk and more importantly ":q" don't work

~~~
tuhdo
Well it's still in Beta though but I must say it's still excellent. This is
from an Emacs user, currently using holy-mode (basically another way of saying
Emacs mode in Spacemacs terminology and it's actually a mode configured for
Emacs users).

------
thorwavimwawa
So.... who wants this? Vim users like vim as it is, warts and all. Emacs users
already use emacs and typically don't want to learn vim.

~~~
emidln
I'm attracted to it as a clojure developer. This seems to offer a superior
nrepl integration and a debugger.

That said, vim with neobundle, unite, fireplace, rainbow parens, vim-sexp,
vim-repeat, vim-surround, and one of the many tmux integrations makes for a
good enough clojure dev experience.

~~~
tuhdo
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.ht...](http://danmidwood.com/content/2014/11/21/animated-paredit.html)

For Clojure, in Emacs you got a debugger than can step expression by
expression: [http://endlessparentheses.com/cider-debug-a-visual-
interacti...](http://endlessparentheses.com/cider-debug-a-visual-interactive-
debugger-for-clojure.html)

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/la...](https://github.com/syl20bnr/spacemacs/tree/master/contrib/lang/clojure#features)

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/srefa...](https://github.com/tuhdo/semantic-
refactor/blob/master/srefactor-demos/demos.org)

\- Lisp Code reformatting: [https://github.com/tuhdo/semantic-
refactor/blob/master/srefa...](https://github.com/tuhdo/semantic-
refactor/blob/master/srefactor-demos/demos-elisp.org)). 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-
projectil...](http://tuhdo.github.io/static/helm-projectile/helm-projectile-
switch-project.gif)

\- 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-
projectil...](http://tuhdo.github.io/static/helm-projectile/helm-projectile-
find-files-1.gif))

\- 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-
projectil...](http://tuhdo.github.io/static/helm-projectile/helm-projectile-
find-files-dwim-1.gif)

\- Copy files from anywhere to anywhere: [http://tuhdo.github.io/static/helm-
projectile/helm-projectil...](http://tuhdo.github.io/static/helm-
projectile/helm-projectile-find-file-copy.gif))

\- Delete files anywhere; files are always at your finger tip to do whatever
with them: [http://tuhdo.github.io/static/helm-projectile/helm-
projectil...](http://tuhdo.github.io/static/helm-projectile/helm-projectile-
find-file-delete.gif)

\- Switch between other files with same names but different extensions:
[http://tuhdo.github.io/static/helm-projectile/helm-
projectil...](http://tuhdo.github.io/static/helm-projectile/helm-projectile-
find-other-file.gif)). 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-
referen...](http://tuhdo.github.io/static/c-ide/senator-go-to-up-
reference.gif)

\- 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-w...](http://tuhdo.github.io/static/c-ide/helm-semantic-or-
imenu-with-struct.gif)

\- Easily move back and forth using the interactive outline tree:
[http://tuhdo.github.io/static/part3/helm-semantic-or-
imenu-2...](http://tuhdo.github.io/static/part3/helm-semantic-or-imenu-2.gif)

\- 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
First 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
Great 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
evil-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
I'm pretty sure you can do the same thing with expand-region and smartparens
combined and is more general than manipulating sexp.

~~~
ane
There's also evil-lisp-state (which is essentially a modal interface to
smartparens), [https://github.com/syl20bnr/evil-lisp-
state](https://github.com/syl20bnr/evil-lisp-state), and evil-smartparens
([https://github.com/expez/evil-smartparens](https://github.com/expez/evil-
smartparens)) which makes the default motion operators work better with sexps.

------
krick
Just tried it and despite some people here claiming vim-style support is
really full I found it pretty unusable for me, the vim user. Which is a pity,
as I find vim lacking many features emacs has (or allows to implement easily),
but am struggling to switch.

My workflow starts from command-mode and is heavily dependent on it. It's far
more crucial than any hjkl stuff and whatever. The first thing I tried was
:tabnew. "Uknown command: `tabnew`." Then I tried to use :cd and while it has
such a command it works in some weird way which I couldn't figure out how to
use on the first attempt. I guess it actually has everything I need, but I
probably entered something wrong and suddenly ended up using scp, lol.

While editing some text file without any real purpose I surprisingly didn't
find anything that would be working in an unexpected way yet. Maybe it's worth
trying it out.

~~~
chrisgw
":" runs Emacs functions. Some commands from Vim have been added, but not all
of them. If a function with the same name as a Vim command already exists in
Emacs, it's not replaced. I'd imagine replacing the default Emacs functions
could break things in weird ways.

:cd runs the Emacs cd function which behaves differently than Vim's :cd.

To get the equivalent of :tabnew, you'd have to use :buffer [name] and give
the new buffer (Emacs's equivalent of tabs) a name.

~~~
krick
Oh, I see, thank you. As I understand buffer name isn't the same thing as file
path/name. So I can't really open file by pasting (Ctrl-r +) it path anyway,
can I? Also, I only understood how to switch between buffers using that
separate screen, not like "next/previous tab", and there isn't any panel that
would show which tabs are opened now. But I think that's solvable, at least.

~~~
chrisgw
You'd have to either use :find-file or :e (Ctrl-r +).

You can switch between buffers with :switch-to-buffer, :ido-switch-buffer, :b,
:bn, and :bp. It's not the same as tabs though.

------
SteveBash
I've tried to switch my workflow from vim + tmux + tmuxinator to spacemacs a
few months ago, and I must say that it easily could replace my Vim
environment, there was evil-surround, evil-nerd-commenter, etc. even neotree,
and plus I got org-mode, other really great packages and the power of emacs,
however I didn't find a replacement for the tmuxinator part, I need it since I
usually have projects with several shells in different windows and panes aside
from vim, so in the end that detained me from doing the switch and continued
with vim.

~~~
fanf2
Try emacs shell-mode. It's a bit weird but you might like having your shells
in your editor.

------
cies
I'm using this for a week now. Switched to it from Emacs Prelude (another
config kit), and before that Vim itself.

I use Vim a lot less now: still have a simple .vimrc laying around for just-
in-case.

------
mct
I get my hopes up when I see another vim emulation project, but after using it
for just a few minutes, I already found a few missing vim features I use every
day:

* Toggling if search results should be highlighted ( _:set hls_ , _:set nohls_ )

* Opening the filename under the cursor in a new window ( _^W f_ )

Completely emulating an entirely different editor is very, very difficult :-(

I applaud everyone contributing to these projects, and hope they continue to
improve! They've already come a _very_ long way from evil, and viper-mode.

~~~
tuhdo
> * Toggling if search results should be highlighted (:set hls, :set nohls)

After you search, you get persistent highlighting. To turn it off, "SPC s c".
All the toggling features are in "SPC t" group.

> * Opening the filename under the cursor in a new window (^W f)

`SPC f h` then press `C-c o`. The key bindings are consistent in other Helm
commands as well. It opens a window side by side. Nothing is misisng, sorry.
Spacemacs can even do things like [these]([http://tuhdo.github.io/helm-
projectile.html](http://tuhdo.github.io/helm-projectile.html)).

If you have any question, ask it on Spacemacs chatroom:
[https://gitter.im/syl20bnr/spacemacs](https://gitter.im/syl20bnr/spacemacs)

~~~
mct
You're right, _" missing"_ was a poor choice of words. I meant, _" vim
keybindings for these commands isn't supported"_.

They are keybindings my fingers reach for everyday without thinking about it,
similar to how I use _j_ , _k_ , _h_ , _l_ without thinking about it.

~~~
tuhdo
There's a reason it's called Spacemacs, not NeoVim and major features are
centered around the SPC leader key. There are certain things you must learn
from Emacs if you want to get the benefit of it, such as Emacs packages. To
make it easier to learn, there's a popup with keys and commands there. If you
press ?, it brings a cheatsheet like interactive window and you can narrow it
down by start typing and press `C-z` to open each command description. For
example, if you want to know what each command in `SPC f` does, pres `SPC f ?`
then press `C-z` on a command and you get a description on upper window.

------
ufo
A friend showed spacemacs to me a while ago but, as a vim user who knows
nothing about emacs, I got lost very quickly. I never knew if a problem I was
having was due to not knowing how to use emacs or to not knowing how to use
spacemacs.

Does anyone know any tips or references for total emacs newbies trying to jump
into spacemacs head first?

~~~
tuhdo
Here is your tutorial, from a Vimmer:
[http://ian.mccowan.space/2015/04/07/Spacemacs/](http://ian.mccowan.space/2015/04/07/Spacemacs/)

------
rhgraysonii
So I installed it. I know nothing about emacs, have followed setup etc. It
appears I definitely dont have Vi keybindings upon re-opening it after initial
install. Anyone care to help me out a bit? Really am intrigued but not sure
how to get started with that as a blocker.

~~~
mijoharas
You should do. I've been using it for a while and am a big fan of it so far.
If you've got any questions about how exactly to do something there's a quite
active gitter room[0].

There could be a problem with a new feature (from maybe yesterday?, the day
before?) that allows users to pick between emacs and vim keybindings.

[0]
[https://gitter.im/syl20bnr/spacemacs](https://gitter.im/syl20bnr/spacemacs)

------
PuercoPop
Any reason why the documentation is in md and not in info for easy navigation
from inside emacs?

~~~
tuhdo
So you can put it on the web for complete Emacs newbies to read rather than
forcing them to learn Info reading. However, Spacemacs does integrate info+
that makes Info reading much more pleasant, along with helm-info command that
I can say Emacs becomes the best info reader every.

~~~
technomancy
Info can be easily exported to HTML just like Markdown can.

------
Estragon
I tried this a few days ago, it seems like a cool concept, but I found the
whole thing a bit bewildering. Is there a tutorial for it like emacs's C-h t?

------
octref
As a Vim user I really want to give Emacs a try and this seems to be a great
starting point, but:

Does this support configs in my .vimrc?

Can I use Vim plugins in it?

~~~
pyre
> Does this support configs in my .vimrc?

Nope.

> Can I use Vim plugins in it?

Nope.

Evil Mode exposes Emacs using a Vim interface. It's doubtful that it will ever
run Vim plugins or read your .vimrc (particularly because it will not support
things like autocmd or VimL). There are many ports of Vim plugins to Emacs for
use with Evil. For example, evil-leader[1] brings support for leaders
(Spacemacs makes heavy use of this with <Space> as the leader, hence the
name). There are also many things in the Emacs world that Vim doesn't really
have, like flycheck[2] or a decent hex editor (I've used vim + xxd, but Emacs'
hex editor is nicer).

[1] [https://github.com/cofi/evil-leader](https://github.com/cofi/evil-leader)

[2]
[https://github.com/flycheck/flycheck](https://github.com/flycheck/flycheck)

EDIT: It's not a drop-in Vim replacement in the way that NeoVim is. It just
brings modal editing and your Vim muscle memory to working in Emacs.

------
DannoHung
I've tried a number of Vim replacements in the past that always omit really
key features like macros, searching, correct escape configuration (Ctrl-[ god
damnit!), g/s/v commands and any other number of things.

Is this one really, ACTUALLY a good vim substitute? Or do I have to relearn a
ton of stuff just to get to the same level of knowledge and comfort I have
with Vim?

~~~
eeZi
It's so good that some people call it a Vim re-implementation, not an
emulator.

