Abstract, The NeoVim configuration to achieve the power of Modern IDE
Project based config loading
( you can define configs in.__nvim__.lua
file in the root of your working project so that you don't have to change config everytime you work on new/seperate project )Your own custom configs and Mappings
(if you don't like Abstract's default config/mapping, you can change/override it on override_defalut.lua OR~/.__nvim__.lua
file )Separate config file for each plugins
each plugin has their own config file which is defined in lua/plugins directoryEasily Disable plugin
Abstract's using packer as plugin manager. conmmenting outconfig
option from plugin options in packer config file will disable that pluginEasy Installation
install Abstract with single command
Abstract can be installed by just runing a script.
- neovim >= v0.7
single command to install Abstract
python <(curl -s https://raw.githubusercontent.com/Abstract-IDE/Abstract/main/setup.py)
or if you want to install it by cloning
git clone https://github.com/Abstract-IDE/Abstract
cd Abstract
python setup.py
pass --delete 1
as an argument if you don't want to keep .git
, README.md
, LICENSE
and setup.py
file.
Example:
python <(curl -s https://raw.githubusercontent.com/Abstract-IDE/Abstract/main/setup.py) --delete 1
NOTE1:
it could take some time depending on you connection (it's going to install plugins and some LSs).
So, be patient and follow the output throw by setup.py script
NOTE2:
only some LSs are going to be installed. for more, install with mason.nvim
for example: to install C/C++'s LS :MasonInstall clangd
every one has their own favourite configs and keybindings. Abstract try its best to provide likable configs and mapping.
so in case you don't like to use mapping or configs by Abstract, you can change it in override_defalut.lua file.
├── extra/
│ └── snippets/ / custom defined snippets
│ ...
├── init.lua / load/source configs | heart of Abstract
├── lua/
│ ├── autocmd.lua / auto command configs
│ ├── configs.lua / configs that's don't depends on plugins
│ ├── mappings.lua / mappings that don't depends on plugins
│ ├── packer_nvim.lua / manage plugins
│ ├── customs/
│ │ ├── override_defalut.lua / configs to override defined config
│ │ └── abstractline.lua / i am working on it. btw it's a status line
│ └── plugins/ / dir containing configs for plugins. each plugin has it's own config and can be locaed through init.lua file
│ ...
├── plugin/ / auto-created by plugin manager
└── setup.py / python-script to install/update Abstract
you can change Leader key
in init.lua file
Keys | Functions |
---|---|
; |
leader key |
tm |
show all mappings (it will show mapping in telescope) |
<C-p> |
Find files from current file's project |
<C-f> |
show all files from current working directory |
tt |
Launch Telescope without any argument |
<Leader>q |
close buffer |
<C-s> |
save file |
<C-h> |
scroll window horizontally (left) |
<C-l> |
scroll window horizontally (right) |
?? |
clear Search Results |
<M-q> |
(M=Alt) close all other windows but leave current buffers open. |
K |
move selected line(s) up |
J |
move selected line(s) down |
Distributed under the MIT License.
- add installer(setup.py) support for Windows OS
- write a decent documentation
- there is no known bugs yet. Please open the issue if you find one.
- Neovim -- for awesome EDITOR
- shaankhan -- for readme
- Neovim-Subreddit -- for awesome supporting community
- LunarVim -- for some reference
- Manytools.org -- for ascii-banner
- Plugin Authors -- without you, neovim is incomplete
- and YOU