Files
nix-config/home/base/desktop/neovim/README.md
T
2023-07-11 02:22:00 +08:00

123 lines
3.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Neovim
Based on [nvimdev/dope](https://github.com/nvimdev/dope)
Fast speed and modernity.
## Structure
```
├── init.lua
├── lua
│   ├── core
│   │   ├── cli.lua
│   │   ├── helper.lua
│   │   ├── init.lua
│   │   ├── keymap.lua
│   │   ├── options.lua
│   │   └── pack.lua
│   ├── keymap
│   │   ├── config.lua
│   │   └── init.lua
│   └── modules
│   ├── completion
│   │   ├── config.lua
│   │   └── package.lua
│   ├── editor
│   │   ├── config.lua
│   │   └── package.lua
│   ├── tools
│   │   ├── config.lua
│   │   └── package.lua
│   └── ui
│   ├── config.lua
│   └── package.lua
├── snippets
│   ├── lua.json
│   ├── lua.lua
│   └── package.json
```
- `core` heart of dope it include the api of dope
- `modlues` plugin module and config in this folder
- `snippets` vscode snippets json file
## Usage
- Click button `Use this template` It will generate a new repo based on dope on your GitHub
### Cli tool
`bin/dope` is a cli tool for dope config. run `./bin/dope help` check more detail
you can use `/bin/dope debug ui,editor` for debug modues. when you get trouble
this is useful for your debug, this command mean disable `ui editor` modules.Then
the plugins in `ui,editor` modules not load.
## How to install plugins
dope use [lazy.nvim](https://github.com/folk/lazy.nvim) as package management plugin. register a plugin in `package.lua` by using dope api `require('core.pack').package`. more usage check the
lazy.nvim doc and you can some examples in package.lua file.
### How to create module
create a fold inside `modlues` folder and `package.lua` file you must created inside your module.
dope will auto read this file at startup.
### How to config keymap
In dope there are some apis that make it easy to set keymap. All apis are defined in `core/keymap.lua`.
```lua
keymap.(n/i/c/v/x/t)map -- function to generate keymap by vim.keymap.set
keymap.new_opts -- generate opts into vim.keymap.set
-- function type that work with keymap.new_opts
keymap.silent keymap.noremap keymap.expr keymap.nowait keymap.remap
keymap.cmd -- just return string with <Cmd> and <CR>
keymap.cu -- work like cmd but for visual map
```
Use these apis to config your keymap in `keymap` folder. In this folder `keymap/init.lua` is necessary but if you
have many vim mode remap you can config them in `keymap/other-file.lua` in dope is `config.lua` just an
example file. Then config plugins keymap in `keymap/init.lua`. the example of api usage
````lua
-- generate keymap in noremal mode
nmap {
-- packer
{'<Leader>pu',cmd('Lazy update'),opts(noremap,silent,'Lazy update')},
{"<C-h>",'<C-w>h',opts(noremap)},
}
also you can pass a table not include sub table to `map` like
```lua
nmap {'key','rhs',opts(noremap,silent)}
````
use `:h vim.keymap.set` to know more about.
## Tips
- Improve key repeat
```
mac os need restart
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain InitialKeyRepeat -int 10
linux
xset r rate 210 40
```
## Donate
[![](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://paypal.me/bobbyhub)
If you'd like to support my work financially, buy me a drink through [paypal](https://paypal.me/bobbyhub)
## License MIT