{"id":23652192,"url":"https://github.com/lionyxml/emacs-kick","last_synced_at":"2025-10-11T17:33:00.303Z","repository":{"id":268167709,"uuid":"867310079","full_name":"LionyxML/emacs-kick","owner":"LionyxML","description":"A feature rich Emacs (kickstarter) config for (neo)vi(m)mers","archived":false,"fork":false,"pushed_at":"2025-10-06T23:02:33.000Z","size":3242,"stargazers_count":286,"open_issues_count":0,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-10-07T01:05:45.193Z","etag":null,"topics":["emacs","kickstart","kickstarter","neovim"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LionyxML.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-03T20:25:32.000Z","updated_at":"2025-10-06T23:02:03.000Z","dependencies_parsed_at":"2024-12-14T21:23:58.717Z","dependency_job_id":"0cee63dc-44a3-4d3e-9b38-254a54be83e6","html_url":"https://github.com/LionyxML/emacs-kick","commit_stats":null,"previous_names":["lionyxml/emacs-kick"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/LionyxML/emacs-kick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LionyxML%2Femacs-kick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LionyxML%2Femacs-kick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LionyxML%2Femacs-kick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LionyxML%2Femacs-kick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LionyxML","download_url":"https://codeload.github.com/LionyxML/emacs-kick/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LionyxML%2Femacs-kick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008112,"owners_count":26084396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emacs","kickstart","kickstarter","neovim"],"created_at":"2024-12-28T16:52:37.845Z","updated_at":"2025-10-11T17:33:00.298Z","avatar_url":"https://github.com/LionyxML.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"doc/emacs-kick-logo.png\" alt=\"Project Logo\" width=\"300\"/\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Emacs-30%2B-green.svg\" alt=\"Emacs 30+\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-GPLv2-green\" alt=\"GPLv2 License\"/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  A feature rich Emacs (kickstarter) config for (neo)vi(m)mers\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"#minimum-requirements\"\u003e\u003cstrong\u003eRequirements\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"#installation-instructions\"\u003e\u003cstrong\u003eInstallation\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"#available-commands\"\u003e\u003cstrong\u003eAvailable Commands\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"#contributing\"\u003e\u003cstrong\u003eContributing\u003c/strong\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n# Emacs-Kick(starter) for Vim/Neovim Users\n\nWelcome to `Emacs-Kick`, a feature-rich Emacs configuration designed\nfor users familiar with `Vim`, `Neovim`, and `Vi`. With this\nsetup, you don't need to leave behind your favorite terminal or tools\nlike `yazi`, `starship`, `lazygit`, and `lazydocker` just to\ngive Emacs a try.\n\nUse Emacs the same way you'd use `Neovim`, seamlessly integrating it\ninto your workflow inside terminal multiplexers like `tmux` or\n`Zellij`, while also enjoying modern features such as `treesitter`\nand `LSP`, no hassle.\n\n![Demo](doc/demo01.png)\n\n**Emacs-Kick** isn’t a full-fledged distribution but rather a\n**starting point** for building your own Emacs configuration. It’s\ndesigned to be especially accessible for Vim/Neovim users, letting you\nexplore the power of Emacs without committing to its entire ecosystem.\n\nYou can take advantage of Emacs’ features without needing to master\nevery Emacs-specific workflow right away. And if you find yourself\nenjoying it, you can:\n\n- Run it in a GUI for a richer experience\n- Customize and expand your configuration as much as you want\n- Experiment with frameworks like Doom Emacs or Spacemacs\n- Tinker with vanilla Emacs to build a setup entirely your own\n  OR...\n- Just keep using it on TUI, it is all up to you!\n\nWith `Emacs-Kick`, the goal is to empower you to explore Emacs at your\nown pace. The sky's the limit! 🌟\n\n## Minimum Requirements\n\n- Emacs version **\u003e=30.1**\n- You can verify your installed Emacs version by running:\n\n```bash\nemacs --version\n```\n\n**Note**: floating windows on TUI are only supported from Emacs \u003e=31 (current\ndevelopment version on Emacs master branch).\n\n\n### macOS Warning\n\nOn macOS, `Emacs-Kick` may fail to function correctly due to missing or\nincompatible system utilities. To avoid common issues, make sure the\nfollowing tools are installed via Homebrew:\n\n```bash\nbrew install coreutils git\n```\n\nThis provides:\n\n- `gls`: The GNU version of `ls`, required by Dired to avoid errors\n  like:\n\n  ```\n  Listing directory failed but 'access-file' worked.\n  ```\n\n- `git`: macOS system usually has an older version of Git, this\n  typically refers to the version installed through Apple's Command\n  Line Tools (part of Xcode). Installing from Homebrew ensures a\n  modern version of git is installed and will avoid problems with\n  `magit`.\n\n\n## Installation Instructions\n\n1. **Clone the repository**:\n\n**Note**: If you already have an existing Emacs configuration in\n`~/.emacs.d`, please back it up before proceeding. You can do this\nby renaming the directory:\n\n```bash\nmv ~/.emacs.d ~/.emacs.d.backup\n```\n\nIf you have any additional configurations from other Emacs\ninstallations, please clean them up. This includes directories and\nfiles such as `~/.emacs.d`, `~/.emacs`, `~/.emacs~`,\n`~/.config/emacs`, `~/.config/doom`, `~/.config/cache/emacs` and\nany other related files.\n\nAfter deleting/backing up, clone the repository:\n\n```bash\ngit clone https://github.com/LionyxML/emacs-kick.git ~/.emacs.d\n```\n\n2. **Run the setup**:\n\nAfter cloning, install the configuration by running:\n\n```bash\nemacs -nw --eval=\"(ek/first-install)\"\n```\n\nAlternatively, you can run the provided script `ek-reinstall.sh`\nfrom inside `~/.emacs.d/`, which will achieve the same result:\n\n```bash\ncd ~/.emacs.d/ \u0026\u0026 ./ek-reinstall.sh\n```\n\nBoth methods will install all necessary packages and apply the\nconfiguration.\n\n**NOTE**: During the initial setup, you'll be prompted to install Tree-sitter\ngrammars and download some fonts. This configuration uses **Nerd Fonts** by\ndefault, so installing them now is highly recommended for the best experience.\n\n**VERY IMPORTANT**: On first launch, Emacs will also **native compile some\nexternal packages**, which may take a little time. Additionally, the first time\nyou perform certain actions, like opening the tree explorer, Emacs may compile\nrelated components in the background. This is completely normal and only\nhappens once per feature. You might notice a brief moment of sluggish\nperformance during this initial compilation.\n\n3. **Set terminal mode by default**:\n\n**Note on Emacs TUI/GUI**: Emacs automatically adapts to either\ngraphical or terminal mode depending on the environment. But if\nyou're in a graphical session and prefer terminal mode, just use:\n\n```bash\nemacs -nw\n```\n\nTo ensure Emacs always opens in terminal mode, add the following to\nyour `.bashrc` or `.zshrc`:\n\n```bash\nalias emacs='emacs -nw'\n```\n\nThen, reload your shell configuration with:\n\n```bash\nsource ~/.bashrc  # for bash\nsource ~/.zshrc   # for zsh\n```\n\n4. **Start Emacs**:\n\nOnce set up, start Emacs with:\n\n```bash\nemacs\n```\n\n**Usage Tips**:\n\n- **Leader Key**: The leader key is set to `SPC` (spacebar),\n  `which-key` is there to help you discover keybindings.\n- **Help Commands**:\n- `SPC h i` opens the Emacs info documentation (`M-x info`).\n- `SPC h v` allows you to explore available variables.\n- `SPC h f` lets you explore functions.\n- `SPC h k` displays keybindings.\n\n**Troubleshooting**:\n\n- If you encounter any issues during installation, check the\n  `*Messages*` buffer for more information. You can switch between\n  buffers with `SPC SPC`, and navigate options using `C-p` and `C-n`.\n\n## Available Commands\n\n| Keybinding     | Action                                    |\n| -------------- | ----------------------------------------- |\n| `SPC`          | Leader key                                |\n| `TAB`          | Call completion                           |\n| `C-d`          | Scroll down                               |\n| `C-u`          | Scroll up                                 |\n| `\u003cleader\u003e s f` | Find file                                 |\n| `\u003cleader\u003e s g` | Grep                                      |\n| `\u003cleader\u003e s G` | Git grep                                  |\n| `\u003cleader\u003e s r` | Ripgrep                                   |\n| `\u003cleader\u003e s h` | Consult info                              |\n| `\u003cleader\u003e /`   | Consult line                              |\n| `\u003cleader\u003e x x` | Consult Flymake                           |\n| `] d`          | Next Flymake error                        |\n| `[ d`          | Previous Flymake error                    |\n| `\u003cleader\u003e x d` | Dired                                     |\n| `\u003cleader\u003e x j` | Dired jump                                |\n| `\u003cleader\u003e x f` | Find file                                 |\n| `] c`          | Next diff hunk                            |\n| `[ c`          | Previous diff hunk                        |\n| `\u003cleader\u003e e e` | Toggle NeoTree                            |\n| `\u003cleader\u003e g g` | Open Magit status                         |\n| `\u003cleader\u003e g l` | Show current log                          |\n| `\u003cleader\u003e g d` | Show diff for current file                |\n| `\u003cleader\u003e g D` | Show diff for hunk                        |\n| `\u003cleader\u003e g b` | Annotate buffer with version control info |\n| `] b`          | Switch to next buffer                     |\n| `[ b`          | Switch to previous buffer                 |\n| `\u003cleader\u003e b i` | Consult buffer list                       |\n| `\u003cleader\u003e b b` | Open Ibuffer                              |\n| `\u003cleader\u003e b d` | Kill current buffer                       |\n| `\u003cleader\u003e b k` | Kill current buffer                       |\n| `\u003cleader\u003e b x` | Kill current buffer                       |\n| `\u003cleader\u003e b s` | Save buffer                               |\n| `\u003cleader\u003e b l` | Consult buffer                            |\n| `\u003cleader\u003eSPC`  | Consult buffer                            |\n| `\u003cleader\u003e p b` | Consult project buffer                    |\n| `\u003cleader\u003e p p` | Switch project                            |\n| `\u003cleader\u003e p f` | Find file in project                      |\n| `\u003cleader\u003e p g` | Find regexp in project                    |\n| `\u003cleader\u003e p k` | Kill project buffers                      |\n| `\u003cleader\u003e p D` | Dired for project                         |\n| `P`            | Yank from kill ring                       |\n| `\u003cleader\u003e P`   | Yank from kill ring                       |\n| `\u003cleader\u003e .`   | Embark act                                |\n| `\u003cleader\u003e u`   | Undo tree visualize                       |\n| `\u003cleader\u003e h m` | Describe current mode                     |\n| `\u003cleader\u003e h f` | Describe function                         |\n| `\u003cleader\u003e h v` | Describe variable                         |\n| `\u003cleader\u003e h k` | Describe key                              |\n| `] t`          | Go to next tab                            |\n| `[ t`          | Go to previous tab                        |\n| `\u003cleader\u003e m p` | Format with Prettier                      |\n| `\u003cleader\u003e c a` | Execute code action                       |\n| `\u003cleader\u003e r n` | Rename symbol                             |\n| `gI`           | Find implementation                       |\n| `\u003cleader\u003e l f` | Format buffer via LSP                     |\n| `K`            | Show hover documentation                  |\n| `gcc`          | Comment/uncomment current line            |\n| `gc`           | Comment/uncomment selected region         |\n| `gd`           | Goto definitions                          |\n| `gr`           | Goto references                           |\n\n...and a lot more, discoverable with which-key :)\n\n## Contributing\n\nThis package is intentionally designed with a specific vision in mind,\nreflecting my own opinions and preferences. While contributions are\nwelcome, please understand that this configuration is quite\nopinionated.\n\nIf you have suggestions or requests, they will be considered\ncarefully, but I cannot make any promises regarding implementation or\nacceptance. Your input is valuable, and I appreciate any help or\nfeedback to improve the project.\n\nTo contribute, feel free to open an issue or submit a pull\nrequest. Let's make this configuration even better together!\n\n## About PRs\n\nAlways welcome, not a promise to accept though (see above). Please\ndirect your PRs to the `development` branch of this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flionyxml%2Femacs-kick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flionyxml%2Femacs-kick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flionyxml%2Femacs-kick/lists"}