Neovim-如何使用编辑器的神

  1. Neovim的下载
  2. Neovim键位配置和操作
  3. Code Runner配置
  4. Remote Sync配置

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/"

其中后面的路径跟的是你的项目在远程目录下的位置.