https://github.com/travel-cli/hikko
Convenient and stable configuration for Neovim with a convenient manager for plugins, which I have been using for quite a long time. The configuration is suitable for those who write in Python, Rust, Javascript, Vue / React
https://github.com/travel-cli/hikko
config javascript linux lua mac neovim python rust typescript vim
Last synced: 7 months ago
JSON representation
Convenient and stable configuration for Neovim with a convenient manager for plugins, which I have been using for quite a long time. The configuration is suitable for those who write in Python, Rust, Javascript, Vue / React
- Host: GitHub
- URL: https://github.com/travel-cli/hikko
- Owner: Travel-CLI
- License: mit
- Created: 2022-09-29T13:40:16.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-02-25T12:40:31.000Z (almost 3 years ago)
- Last Synced: 2025-03-29T23:11:09.226Z (10 months ago)
- Topics: config, javascript, linux, lua, mac, neovim, python, rust, typescript, vim
- Language: Lua
- Homepage:
- Size: 61.5 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Universal neovim configuration for JavaScript, Python, TypeScript and Rust.
> **Hikikomori** (Japanese: ひきこもり or 引きこもり, lit. "pulling inward, being confined"), also known as acute social withdrawal, is total withdrawal from society and seeking extreme degrees of social isolation and confinement. Hikikomori refers to both the phenomenon in general and the recluses themselves. Hikikomori have been described as loners or "modern-day hermits". Estimates suggest that half a million Japanese youths have become social recluses, as well as more than half a million middle-aged individuals.
>
> [Wikipedia](https://en.wikipedia.org/wiki/Hikikomori)
## Features
- Automatic installation of package manager (`packer`)
- Automatic installation of lsp for:
- Python
- Rust
- TypeScript
- Vue
- Eslint
- Prettier
- JavaScript
- Lua
- Neovim Lua
- Minimal UI overdrive
- No remapped standard hotkeys
- Smart formatting (via formatters or with standard method)
- No default plugins (like NetRW) and other shit
- Module installer
## Installation
```bash
# Exporting default nvim folder
export NVIM_DIR="$HOME/.config/nvim";
# Making backup of your old configuration
[[ -d $NVIM_DIR ]] && mv NVIM_DIR "NVIM_DIR-old";
# Cloning new config
git clone https://github.com/crackidocky/hikko\
$HOME/.config/nvim;
# Downloading packer (plugin manager)
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
```
After you enter the Neovim, just enter:
```vim
:PackerSync
```
## Supported Languages
# How does plugin manager works
In directory `lua/plugins/`, you have a lot of files inside which are configurations for plugins. At the end of each file, we return a function, that takes a `use` callback. `use` is a special function provided by [packer](https://github.com/wbthomason/packer.nvim) in order to use the plugin.
If we go to directory `lua/utils/`, then we will see a file called `installer.lua`, in which each file from directory `lua/plugins/` is imported. In the `installer.lua` file, we declare an empty hash table, and also indicate that it will have a certain `M.use` field, which is equal to `nil` for now. Each property inside `M` is a function that will expose the code we need, but for now we don't have a `use` callback.
Now if we go to the `lua/manager.lua` file, we will see that we are using the standard boilerplate for the packer - we are declaring a function inside which `use` will finally become available to us.
We assign `use` to the `M.use` field, and then we start calling the properties we need from the `M` table, which will later expand into the code that is needed to declare to Packer that the plugin is used.