AndyStewart's Emacs, include configs and extensions.
Best way to study this project is try every keybinding in init-key.el ;)
- Download lazycat-emacs source code:
git clone https://github.com/manateelazycat/lazycat-emacs.git
- Fetch all submodules in lazycat-emacs:
git submodule update --init --recursive
git submodule foreach git reset --hard
git submodule foreach git checkout $(git remote show origin | awk '/HEAD 分支|HEAD branch/ {split($0, a, ":"); print a[2]}')
- Download emacs git code
$ git clone --depth 1 git://git.savannah.gnu.org/emacs.git
- Install compile dependencies
$ brew install autoconf automake texinfo gnutls pkg-config libxml2 --debug --verbose
- Compile emacs git
$ cd ./emacs && ./autogen.sh
$ export LDFLAGS="-L/usr/local/opt/libxml2/lib"
$ export CPPFLAGS="-I/usr/local/opt/libxml2/include"
$ export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
$ ./configure && make && make install
-
Install in launcher:
open -R nextstep/Emacs.app
and dragging Emacs to the Applications folder.
-
Add config in ~/.emacs
(defun add-subdirs-to-load-path (dir)
"Recursive add directories to `load-path'."
(let ((default-directory (file-name-as-directory dir)))
(add-to-list 'load-path dir)
(normal-top-level-add-subdirs-to-load-path)))
(add-subdirs-to-load-path "~/lazycat-emacs/site-lisp/")
(require 'init)
- Install emacs git version:
sudo pacman -S emacs-git
or compile from source code:
proxy-ns git pull ; ./configure --without-xim ; make -j32; sudo make install ; sudo sed -i 's/Exec=emacs/Exec=proxy-ns emacs/g' /usr/local/share/applications/emacs.desktop ; sudo rm /usr/local/share/applications/emacsclient.desktop
Use --without-xim
option to avoid input method active in Emacs, emacs-rime is better solution.
- Install Font:
sudo pacman -S wqy-microhei
-
Install dependency for from EAF
-
Build my config symlink to emacs directory:
sudo ln -s /home/username/lazycat-emacs/site-lisp /usr/share/emacs/lazycat
- Copy site-start.el in emacs directory to start my config:
sudo cp /home/username/lazycat-emacs/site-start.el /usr/share/emacs/site-lisp/
Emacs29 native-comp branch will freeze if I put config in /usr/share/emacs/site-lisp/
, we need put config in ~/.emacs instead to avoid Emacs29 freeze.
When I want upgrade extensions to newest version, I will use below command:
git submodule foreach git pull --rebase
- When you occur
No avaliable parser for this buffer
, please usetreesit-install-language-grammar
install grammar for current buffer.
In 2005, Emacs didn't have much advanced features, and it took me more than a decade to continuously improve Emacs.
Many extensions code that i wrote has been tossed, but I hope to still back up these unused code, I hope some of the those old code snippets can help other Elisp hackers
You can find those old extensions and configuration files at lazycat-emacs-time-machine
Lazycat Emacs is licensed under GPLv3.