My attempt to turn Emacs into VSCode
__ __
\ \ / / _ __ ___ __ _ ___ ___
\ \ / / | '_ ` _ \ / _` | / __| / __|
\ V / | | | | | | | (_| | | (__ \__ \
\_/ |_| |_| |_| \__,_| \___| |___/
Targeted Emacs version: 27.1 (Ubuntu Repo Target)
Fun fact: This was bootstrapped with VSCode. :D
First there was emacs, then there was evil mode, crazy mode after that.
I present to you: Lazy mode.
This version of Emacs is tailored as much as I can to behave like VSCode and Common Lisp development.
Here is a video on it: https://youtu.be/Q3ez5Aw_7nY
It is expected that you have SBCL installed and in your system path.
If you're unsure of this, try running sbcl
in your terminal/command prompt.
Make sure you have no .emacs.d
folder! If you do, back it up.
For first time startup, run this: (it's so treemacs doesn't open your home folder as a project on first startup)
git clone https://github.com/jordan4ibanez/Vmacs.git ~/.emacs.d/
cd ~/.emacs.d/
emacs
Or if you'd like to watch a video on how to install: https://youtu.be/88xj_45Dpzg
Vmacs will start to automatically install. Might take a minute.
Once it gets to the dashboard, let all the warnings with SLIME finish (wrongly documented/deprecated functions etc) and then close and open back up emacs.
After this, you can startup emacs like normal.
A small note: The first time you start it up it's going to take a minute to install all the packages.
If you don't want to ever check for updates, or maybe only once in a while, there is turn-on-automatic-package-updates
. I recommend once in a while because it slows down startup a lot.
It's enabled by default, though.
Side note: You have to click the REPL before it will start outputting debug info unfortunately.
figure out how to split vertically proportioned like vscode
figure out if there's a way to disable region getting removed on shift+tab
Doom-themes (The theme)
ergoemacs-mode (Gives sane key shortcuts)
all-the-icons (Icons)
centaur-tabs (Workspace tabs)
Treemacs (Tree layout on left side)
Dashboard (The dashboard)
CTRLF (The BEST search utility I could find!)
corfu.el (Autocomplete - Set to INSTANT by default)
kind-icon (gives nice icons to corfu.el)
diff-hl (Shows uncommitted lines in the gutter)
hl-todo (Shows colored todo fixme, and other things) NOTE: Document this!
real-auto-save (time based autosave)
markdown-mode (README.md support)
Currently testing: gcmh (tunes the garbage collector to only run when idle)
;; Lispy stuff!
SLY (Common Lisp SBCL REPL)
ParEdit OR Smartparens (Lisp parentheses balancer)
highlight-parentheses (Makes it easier to understand bracket scope)
rainbow-delimeters (Fancy rainbow brackets (disabled by default))
You can run the terminal with ansi-term
perhaps this can be linked to ctrl-~
Document the key bindings. They're in the code, put them somewhere legible.
You shouldn't kill the Messages buffer. It will contain useful debugging information. Besides, whenever some code sends a message, the buffer will get created again.
^ Going to test this.
You can make this go in a different file by modifying the custom-file variable.
^ Going to look into this
^
^
^ I would also like this