codejar-emacs
v0.0.1
Published
This plugin provides Emacs-style keybindings for CodeJar, a minimalist code editor. It enhances the editing experience by adding familiar Emacs shortcuts for navigation and text manipulation.
Downloads
4
Readme
Emacs CodeJar keybindings
This plugin provides Emacs-style keybindings for CodeJar, a minimalist code editor. It enhances the editing experience by adding familiar Emacs shortcuts for navigation and text manipulation.
Installation
To use this plugin, include it along with CodeJar in your project. You can either download the files and host them locally or link to them if they're hosted online.
<script src="/path/to/codejar.js"></script>
<script src="/path/to/codejar.emacs.js"></script>
Usage
To activate Emacs keybindings in your CodeJar editor, initialize CodeJar and apply the Emacs keybindings as shown below:
import { CodeJar } from '/path/to/codejar.js';
import emacsKeybindings from '/path/to/codejar.emacs.js';
const highlight = (editor) => {
//highlight function
};
const editorElement = document.querySelector('.editor');
const jar = CodeJar(editorElement, highlight, {
keybindings: emacsKeybindings
});
// Example usage of CodeJar with Emacs keybindings
jar.onUpdate((code) => {
console.log('Code updated:', code);
});
Keybindings Included
The Emacs plugin includes support for the following keyboard actions:
- Navigation: Move cursor left, right, up, down, and by word.
- Text Manipulation: Delete characters or words, cut to the end of the line, and transpose characters.
- Miscellaneous: Save and close commands, among other typical Emacs operations.
Each function is mapped to familiar Emacs-style shortcuts, such as Ctrl-f
to move forward and Ctrl-b
to move backward.
Customization
You can extend or modify the keybindings by editing the emacsKeybindings
array in codejar.emacs.js
.
const emacsKeybindings = [
// Define or modify keybindings here
{
key: "s",
ctrl: true,
name: "Save FIle",
action: (editor, jar) => saveFile(editor, jar)
},
// Additional keybindings...
];
Known Issues
- This project is a POC, still early in development
- The browser don't let us use a few of the key combinations, like crtl+w or crtl+n.