Neovim的下载
https://github.com/neovim/neovim/blob/master/INSTALL.md
- 注意: 如果要下载最新版的neovim, 注意在添加ppa的时候不要加stable的ppa, 要加unstable的ppa.
Neovim键位配置和操作
键位 | 操作 | 状态 |
---|---|---|
H, J, K, L |
快速上下左右移动 | Normal |
W, B |
快速跳转到行首与行尾 | Normal |
sh, sj, sk, sl |
上下左右分屏 | Normal |
zj, zl |
快速切换buffer | Normal |
ss |
关闭当前buffer, 并切换到之前的buffer | Normal |
方向键 | 调整分屏大小 | Normal |
<LEADER>q |
快速:q , 适用于快速关闭某个分屏 |
Normal |
<LEADER>h, j, k, l |
切换分屏聚焦 | Normal |
<LEADER>n |
搜索后取消高亮 | Normal |
<LEADER>m |
将某个分屏最大化, 再摁一下恢复 | Normal |
<LEADER>e |
打开文档树 | Normal |
l |
展开文档树/将文档树根目录切换到上一级目录 | 文档树 |
gh |
查看文件的hover info | 文档树 |
h |
关闭展开文档树 | 文档树 |
S |
切换文档树的根目录 | 文档树 |
ma |
创建文件/文件夹 | 文档树 |
mx |
将文件/文件夹移到回收站 | 文档树 |
mr |
重命名 | 文档树 |
mc |
复制 | 文档树 |
mp |
粘贴 | 文档树 |
md |
剪切 | 文档树 |
mC |
拷贝相对路径 | 文档树 |
mf |
文件过滤 | 文档树 |
mF |
退出文件过滤 | 文档树 |
sf |
使用ripgrep模糊查找文件, 退出可以摁两次<ESC> , 使用telescope的所有功能都可以这样退出. |
Normal |
sa |
使用ripgrep模糊查找文件内容 | Normal |
zc |
折叠代码 | Normal |
zo |
展开代码 | Normal |
<Enter> |
增量选择代码块 | Normal |
<backspace> |
逐级递减增量选择 | Normal |
gc |
快速注释 | Visual |
<LEADER>, |
格式化整个文件, 如果在Visual模式下选中也可以格式化一部分 | Normal, Visual |
<LEADER>c |
对整个文件进行lint | Normal |
<LEADER>t |
用一个float window打开终端, 使用exit退出 | Normal |
<LEADER>s |
打开符号表 | Normal |
<LEADER>d |
打开Diagnostic window | Normal |
<LEADER>i |
LSP rename | Normal |
<LEADER>f |
看看谁用了我当前的这个函数 | Normal |
gd |
跳转到定义 | Normal |
gh |
查看符号的hover info | Normal |
gx |
查看Code Action | Normal |
gr |
查看符号的所有reference | Normal |
<ctrl>+p |
跳转到Snippets的上一个参数 | Insert |
<ctrl>+n |
跳转到Snippets的下一个参数 | Insert |
<LEADER>z |
打开项目的task pane, 注意项目的配置文件在$PROJ_ROOT/.nvim/task.json 中. |
Normal |
<LEADER>p |
打开project manager | Normal |
<LEADER>r |
打开最近打开过的project | Normal |
<LEADER>o |
将项目的修改同步到远程, 同步配置文件在.nvim/rsync.toml 中. |
Normal |
Code Runner配置
在项目目录下创建env.sh
, 在其中设置PROJ_ROOT
环境变量, 指向你的项目根目录的路径.
每次进入后都要source env.sh
.
然后创建.nvim/tasks.json
, 文件模板如下:
{
"tasks": [
// 一个对象是一个任务
{
"name": "django runserver", // 任务名
"cmd": "python manage.py runserver", // 任务命令
"cwd": "${config_dir}", // 任务在哪里执行
"env": {
"PATH": "${config_dir}/venv/bin:${PATH}"
}, // 任务的环境变量, 可以是代理
"tags": ["dev"]
},
{
"name": "frontend",
"cmd": "npm run serve",
"cwd": "${config_dir}/frontend",
"tags": ["dev"]
}
]
}
Remote Sync配置
在项目目录下创建.nvim/rsync.toml
, 文件内容是:
remote_path = "user@host:/home/user/path/"
其中后面的路径跟的是你的项目在远程目录下的位置.