Qqwy

Qqwy

TypeCheck Core Team

How to learn Spacemacs as a vim/emacs newbie?

I have used Sublime Text for a long time now. (Before that, I used Notepad++ for an equally long time. When I was still using Windows.)

However, I have seen many people on this forum talk very enthusiastically about Spacemacs, and I really like the idea of being able to control all of my computer without touching my mouse. I love the idea of key bindings. These last three years, I have been depending on the terminal for more and more of my daily tasks.

Therefore, I decided that I wanted to learn how to use Spacemacs.
So, I installed it and tried to learn it. However:

  • The emacs starting tutorial is hard to follow, as spacemacs has rebound nearly all of even the most basic commands.
  • The evil-mode starting tutorial presumes that you have a background in vim, emacs or both.
  • When I try to perform some emacs command, it turns out I am actually in some weird vim-mode and the keypresses do not do what I think they should be doing.
  • None of my prior knowledge of keybindings (Ctrl+C to copy, Ctrl+X to cut, Ctrl+V to paste, Ctrl+Z to undo, Ctrl+Y to redo, Ctrl with arrow keys to move between words, Shift with arrow keys to select larger portions of text, etc) applies here.

So, in summary: Help!

I feel like this is a very powerful tool, but I have absolutely no idea how to get started.
What would be a good way to learn Spacemacs, as someone who knows their way around the terminal and Sublime Text, but has no clue about both Vim and Emacs?

Thank you :slight_smile:

~Wiebe-Marten/Qqwy

Most Liked

Oxyrus

Oxyrus

If you want to use it in evil mode, there is a game to learn the key bindings http://vim-adventures.com

Practice, it’s super cool to use only your keyboard :slight_smile:

jbr95

jbr95

Hi Qqwy! I’m in the same boat you were in when you posted in September 2016! I’m trying to decide how to get started with emacs/spacemacs, coming from Notepad++ and Sublime Text. My main motivation is based on being excited by what I’ve read of org-mode… can’t wait to try it! :slight_smile:

It looks like by October that you were happy with Spacemacs. I’m going to to this way, too.

My question is: upon first installation, you are asked whether to use full vim/evil mode (default) or the emacs/evil hybrid mode. Which did you use? What would you recommend, two and a half years later?

NobbZ

NobbZ

If you have no background on vim, choose the emacs mode on first install, this way you have only to learn emacs bindings, and you can ignore all that edit/read-mode stuff, that in my opinion often confuses. As I do read your history in editors, you are used to type, not to mode-switching.

After you have choosen the emacs-flavored spacemacs, you can safely follow the emacs tutorials.

And you will get used to the context-switching between emacs and the outer world, when it comes to bindings. You will totally not realize the popping “save as…” window of your browser when you want to search something, you just hit cancel without even noticing. It will feel some day as if C-s ESC C-f is the native keybinding for searching on the current website :wink:

You will also get used to all the other key bindings and you will be able to switch back and forth depending on the active application.

Where Next?

Popular in Questions Top

sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
JulienCorb
I am trying to implement my new.html.eex file to create new posts on my website. new.html.eex: <h1>Create Post</h1> <...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New

Other popular topics Top

lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
RisingFromAshes
I've read in another post that it may be possible with a router helper - but I couldn't find an appropriate one, and tbh, I'm still just ...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New

We're in Beta

About us Mission Statement