Skip to content

Latest commit

 

History

History
156 lines (107 loc) · 5.08 KB

README.zh.md

File metadata and controls

156 lines (107 loc) · 5.08 KB

使用

English | 中文

Debug 技巧。例如禁用所有插件。

LSP

本项目使用 nvim-lspconfignull-ls 来配置 LSP 客户端,管理 LSP 与 Nvim 的连接。 使用 mason.nvimmason-installer 来管理 LSP,DAP, Linter, Formatter 以及 null-ls 的第三方包。

  • nvim-lspconfig: 封装了一系列 LSP 客户端配置,能够开箱即用。详见官方文档

  • null-ls: 是一个虚拟 LSP 客户端,可以将 eslint、prettier 这类非 LSP 的普通命令行转化为 LSP。详见 null-ls 官方配置文档

  • mason.nvim: 管理 LSP,DAP, Linter, Formatter 以及 null-ls 的第三方包。

  • mason-installer: 自动安装 mason 包。

  • 执行 :Mason 或者按 <Alt-m> 查看 LSP 安装情况。

  • 执行 :LspInfo 查看当前文件使用的 LSP。

  • 执行 :NullLsInfo 查看当前文件使用的 LSP。

本项目默认只安装了 Lua LSP 和 Formatter。你可以参考 mason-installer 插件配置ADoyle 的 init.lua 来定制自己的。

代码格式化

本项目基于 LSP 来格式化代码。 使用 lsp-format 代替 nvim 内置的 vim.lsp.buf.format,提供更灵活的自定义配置。详见 lsp-format 选项

你可以指定多个 Formatter 同时格式化代码。你也可以根据 filetype 调整 Formatter 的调用顺序。

Formatter 配置在 lsp.formatnullLS.sources。 默认先使用定义在 nullLS.sources 的 Formatter,后使用定义在 lsp.format 的 Formatter。Formatter 执行顺序按定义顺序.

Telescope 插件

本项目实现了很多有用的 Telescope 插件,详见 ad-telescope-extensions.nvimlua/one/plugins/telescope/extensions.lua

可使用 <space>; 快捷键查询所有 Telescope 插件。

窗口选择器

window-picker.png

按下 <C-w><C-w> 打开选择器浏览所有 Tab 和窗口。 按下 <CR> 跳转到对应的窗口或者 Tab。

浮动命令栏

该功能默认未开启,因为还不稳定。 你可以依照下面的代码启用。

require('one').setup {
  plugins = {
    { 'noice', disable = false },
  },
}

它会隐藏命令栏。当 :, /, ? 按下会弹出窗口。

cmdline.png

未加载的插件

为了减少安装和加载插件的时间,有些插件虽然可用但默认禁用了。 你可以按需开启它们。

require('one').setup {
  plugins = function(load, config)
    -- Load the builtin plugins
    return {
      load('profiling'),
      load('funny', { disable = true }), -- You can pass options to override the default options of plugin.
      load('noice'),
    }
  end
}

未加载的插件列表在这

扩展你自己的插件、高亮、命令等配置

local my = {}

my.highlights = function(config)
  local c = config.colors
  return { CmpGhostText = { fg = c.grey4, bg = c.darkBlue } }
end

my.commands = {
  Hello = ':echo world'
}

require('one').setup {
  plugins = { my },
}

全局变量

你可以在运行时操作 one.nvim 的属性。

    ╭─────────────────────╮
    │ 𝕍 one.CM        CMD │
    │ 𝕍 one.FT        CMD │
    │ 𝕍 one.PM        CMD │
    │ 𝕍 one.cmp       CMD │
    │ 𝕍 one.util      CMD │
    │ 𝕍 one.setup     CMD │
    │ 𝕍 one.consts    CMD │
    │ 𝕍 one.telescope CMD │
    ╰─────────────────────╯
:lua one.

它默认分配到全局变量 one。(看配置项 config.global = 'one') 可以改成其他变量名,随你喜欢。或者设置 falsenil,不创建该全局变量。

这很酷,不是吗?

启动时间

require('one').setup {
  plugins = {
    { 'profiling', disable = false }, -- 该插件默认禁用
  }
}

启动 profiling 插件,nvim 启动后调用 :StartupTime。将会输出启动阶段的用时。