ββββββββββββ ββββ ββββββ βββββββββββββββ ββββββββ βββββββ βββ βββββββ
βββββββββββββ βββββββββββββββββββββββββββββ ββββββββββββββββββββ βββββββββ
ββββββ ββββββββββββββββββββββ ββββββββ βββββββββββ ββββββ βββ βββ
ββββββ ββββββββββββββββββββββ ββββββββ βββββββββββ ββββββ βββ βββ
βββββββββββ βββ ββββββ βββββββββββββββββββ ββββββββββββββββββββββββββββββββββ
βββββββββββ ββββββ βββ βββββββββββββββ ββββββββ βββββββ ββββββββ βββββββ
Loading time : 0.172725 seconds
Packages : 0
Emacs Solo is a configuration for when I wanna go back to the roots
and test my self using Emacs with only built-in
goodies.
It is minimalist and powerful. A place I visit once in a while.
Also, check out the full demo of Emacs Solo
in action, as seen on
the System Crafters channel. In this video, David Wilson explores and
learns from the configuration, showing how different settings and
approaches are applied to create a more efficient and personalized
Emacs setup.
Emacs Solo always requires the latest stable release of Emacs, which
is currently: 30.1
However, some bleeding-edge features may be tested as well. For those,
youβll need to compile Emacs from the master branch. I do my best to
mark these features with the Emacs 31
tag.
ripgrep
(rg)This provides quicker project grep and xref navigation.
If you opt to use regular
grep
, reset the customization of variablegrep-command
.
gls
MacOS comes with an implementation of
ls
that misses some nice switches from the gnu implementation (gls
on homebrew). If you opt to use MacOS defaulls
you might need to change thedired-listing-switches
variable.
curl
Only needed if youβd like to upload text/images directly to 0x0.st site from Emacs Solo, by using either
emacs-solo/0x0-upload-text
oremacs-solo/0x0-upload-file
.
mpv
Only needed if youβd like to play videos directly from news in
newsticker
.
rsync
Only needed if youβd like to use
emacs-solo/dired-rsync-copy
.
ollama
Only needed if youβd like to use
emacs-solo/ollama-run-model
.
Clone this repository into a directory of your liking and run Emacs with:
emacs --init-directory=YOUR_DIR
You can also simply copy init.el and early-init.el into any folder issue the same command as above
And thatβs it, happy hacking! π
Iβm happy to share this configuration with a catchy name, and Iβd be genuinely delighted if you find it useful. π
However, this is not intended to be a distribution. This means I may not cover every userβs needs, nor will I accept every contribution that pushes it in that direction. I use this configuration daily for both personal and professional work, and like any custom setup, it reflects my own preferences.
For example, this config does not include Python-specific settings, whether for Eglot or Tree-sitter. Since this is a real working setup and Iβm not currently using Python, its absence might seem like an oversight.
If youβd like to add your own modifications while staying up to date
with Emacs Solo, simply create a private.el
file in the same directory
as init.el
. A hook is already in place to load this private file after
Emacs initializes.
Of course, you can also fork it! (please do π)
A FAQ like session of common questions of how to do X with only Emacs Solo.
The usual answer is M-b to go back to the beginning of the word. C-M-SPC to expand the selection to the end of the word and M-w.
Custom Emacs Solo Solution: Use the isearch way to search a word (it has better completion than C-M-SPC), like M-s M-. you can now just M-w.
Original problem: I usually consult-outline, then embark-collect and wgrep...
You can start by using occur, or using isearch and than moving to occur.
Next start the edit mode of the occur buffer with e.
Make your changes, apply it with C-c C-c
From Emacs 30.1 onward you can also use the combo:
replace-regexp-as-diff
for replacements in a single buffer,
multi-replace-regexp-as-diff
for multiple buffers, and
dired-do-replace-regexp-as-diff
to perform replace-regexp-as-diff
Original problem: I usually consult-grep, then use embark collect and wgrep...
Open dired on the root folder of where you search will happen. Mark some files and or folders with m.
Use dired-do-query-replace-regexp
or in a dired buffer hit Q
.
Confirm it all or one by one, use ? to check the options.
From Emacs 30.1 onward you can also use the combo:
replace-regexp-as-diff
for replacements in a single buffer,
multi-replace-regexp-as-diff
for multiple buffers, and
dired-do-replace-regexp-as-diff
to perform replace-regexp-as-diff
You have two built-in options on Emacs.
M-x gnus
M-x newsticker-treeview
C-x v L
on a file inside your version controlled file. And over the
line you have the commit, press d
for diffing.
If you wanna diff a range, mark the lines starting with C-SPC
on the
first line of the range, and again C-SPC
in the last line of the range
(the content of what you want must be selected, if ther cursor is on
first column of the line it wonβt be included), now use d
to diff.
C-x v =
will open the diff panel for the current file, restrict it to
the hunk youβd like to revert with r
, revert the direction of the diff
with R
and apply the diff with C-c C-a
.
Emacs comes with viper
which is a vi
emulator. This means a lot of
modern editing capabilities are missing.
Take a look at use-package Emacs Solo-viper-extensions
, section of the
init.el
file. Emacs Solo extends viper mode to include a bunch of more
modern evil-like
bindings.
Just give it a try ;) M-x viper-mode
Use the powers of highlight-regexp
! Over a word you want to make
highlighted use M-s h .
You can repeat it to other words and Emacs will handle different colors for you.
To remove a highlight use M-s h u
and select the highlighted regexp on
the list.
Find out about more options regarding highlighting with M-s h ?
.
It is a common thing trying to close Emacs with C-x C-c
just to find
out one of your buffers has some modification and now Emacs asks if
youβd like to save, override, etc.
Emacs Solo provides the extra option d
, which will generate a diff of
the current file being asked to take action, so you can see if saving
is needed.
10.) Show/Hide (toggle) hidden files in Dired?
Use dired-omit-mode
, which you can toggle with C-x M-o
. Notice that
this mode uses the regular expression defined in the dired-omit-files
variable. Emacs Solo already customizes this to ignore files matching
^\\.
Ever felt the need of some multi-term
package on Emacs? Well, you
donβt really need it, at least not with the internal implementations
of terminals and eshell
.
Just use the C-u
unversal argument command before calling your
term/shell, like: C-u M-x eshell
or C-u C-x p e
or C-u M-x term
, and
so on.
Now you have another instance of your term to work with, repeat this pattern if you need more instances.