1
5
Fork
You've already forked lem-config
1
My personal Lem configuration
  • Scheme 91.2%
  • Common Lisp 8%
  • Shell 0.8%
Find a file
2025年04月29日 23:15:10 +02:00
inits Update Lem personal functions 2025年04月25日 16:15:52 +02:00
lisp Update changes with my branch 2024年11月11日 21:06:23 +01:00
.gitignore Update changes with my branch 2024年11月11日 21:06:23 +01:00
init.lisp Update changes with my branch 2024年11月11日 21:06:23 +01:00
launch-magit.sh Add launch-magit file and command 2023年07月04日 09:37:13 +02:00
lem-site-init.asd Update changes with my branch 2024年11月11日 21:06:23 +01:00
LICENSE Add a license to the repository 2023年11月28日 16:38:06 +01:00
README.md Change README 2025年04月29日 23:15:10 +02:00

FALC (F Awesome Lem Configuration)

This is my personal Lem configuration, it's written for my needs, but feel free to copy/modify this source code (LICENSE for more info).

Features

  • File-base organise and easy to extend
  • vi-mode oriented (mixed with GNU Emacs commands here and there)
  • Some handy functions for more Lem introspection
  • lisp directory for external packages (that I don't want externally)

Structure

lisp directory

External packages that I use for commands on my lisp files.

inits directory

The files are organise in a simple way, each one contains some functions/configuration related to the name.

  • aa-init.lisp: First file to load, it add some symbols to the Lem package and add a simple define-keys macro.

  • elixir-mode.lisp: Elixir specific configuration, for now, only the lsp path.

  • general.lisp: Main file, it contains most of my keybindings and some specific Lem modes configuration.

  • js-mode.lisp: Javascript related configuration, for now, only the lsp specification.

  • lisp-mode.lisp: Common Lisp related configuration, some keybindings + custom functions.

  • magit.lisp : This file launch magit.el from the GNU Emacs daemon, for more information, read it :).

  • misc-commands.lisp: Some personal commands that doesn't belong to any specific category

  • scheme-mode.lisp: Scheme related configuration, it's mostly focus on Guile now.

  • vi-configuration.lisp: vi-mode keybindings customisation.

Useful commands

  • rgrep: It emulates the rgrep command from GNU Emacs, by default it uses The Silver Searcher

  • open-init-file: Opens the inits directory, handy to quickly navigate to a configuration file.

  • f/goto-key-definition: To check the code of a key combination.

  • pwd: It mimics the pwd functionality of the same name GNU Emacs command.

  • f/critic-reference: It launches the lisp-critic on the current point (it critiques the current function, basically.)

Tips

To add a personalize configuration, just add a file on the inits directory, it should load it at start.

On Linux, it loads quite fast because of the sbcl cache, that compile the configuration to .fasl .

To add a new library, add the library directory (with the same name as the .asd file) to the lisp directory, then add the library name to the lem-site-init.asd file, adding the keyword name of the library to the s-expression below :depends-on.

Highlights

I changed the default describe-symbol to be like the "old" Lem style one, with a simple buffer on top (https://codeberg.org/sasanidas/lem-config/src/branch/master/inits/lisp-mode.lisp#L59).

I unlocked the Lem package to add custom symbols (https://codeberg.org/sasanidas/lem-config/src/branch/master/inits/aa-init.lisp#L4), then I lock it again.

I modified the lem-sit-init.asd to add the lisp libraries even tho the title says that don't edit :) (there's shouldn't be any problem, check the code if you are worried)