Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

altermo/nelisp

Emacs LISP interpreter inside Neovim

altermo/nelisp.json
{
"createdAt": "2024-10-14T15:03:07Z",
"defaultBranch": "main",
"description": "Emacs LISP interpreter inside Neovim",
"fullName": "altermo/nelisp",
"homepage": "",
"language": "C",
"name": "nelisp",
"pushedAt": "2026-01-06T22:24:57Z",
"stargazersCount": 46,
"topics": [],
"updatedAt": "2026-04-06T18:40:41Z",
"url": "https://github.com/altermo/nelisp"
}

The Neovim Emacs LISP interpreter.

[!NOTE] This is a work in progress.

-- Remember to run `make` once.
-- The `nelisp.c` module is a wrapper around `nelisp.so` using `package.loadlib`.
-- Run `make` to generate a meta file for completions.
local c = require'nelisp.c'
-- Emacs doesn't really give this path a name, so I call it emacs's runtime path.
-- It is the parent directory of the `data-directory` and the parent directory of root load path.
-- Typically, either `/usr/share/emacs/30.1/`(or local variant) or the git repo's root.
c.init({runtime_path = EMACS_RUNTIME_PATH})
c.eval[[
(message "Hello World!")
]]
  • Being able to run emacs plugins such as magit and org-mode
  • Performant(fast) loading of elisp-stdlib (100-200ms)
  • Rewrite in C (old-lua-branch)
  • Implement all functions(/other features) to be able to load all of loadup.el without errors
  • Implement dumping
  • Implement a bridge between nelisp and neovim
  • Implement the rest of the functions(/other features); make all emacs test pass