~
❯ nvim --version
NVIM v0.7.0
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthrough -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/builddir/build/BUILD/neovim-0.7.0/redhat-linux-build/config -I/builddir/build/BUILD/neovim-0.7.0/src -I/usr/include -I/usr/include/luajit-2.1 -I/builddir/build/BUILD/neovim-0.7.0/redhat-linux-build/src/nvim/auto -I/builddir/build/BUILD/neovim-0.7.0/redhat-linux-build/include
编译者 mockbuild@koji
Features: +acl +iconv +tui
See ":help feature-compile"
系统 vimrc 文件: "$VIM/sysinit.vim"
$VIM 预设值: "/usr/share/nvim"
Run :checkhealth for more info
-- package manger list
use({
"Shougo/ddc.vim",
requires = {
"vim-denops/denops.vim",
"Shougo/ddc-nvim-lsp",
"~/git/ddc-nvim-lsp-sort",
"Shougo/ddc-matcher_head",
"Shougo/ddc-sorter_rank",
"Shougo/ddc-around",
"matsui54/denops-popup-preview.vim",
"matsui54/denops-signature_help",
"Shougo/pum.vim",
"tani/ddc-fuzzy",
"hrsh7th/vim-vsnip-integ",
"hrsh7th/vim-vsnip",
"delphinus/ddc-treesitter",
"matsui54/ddc-buffer",
"ippachi/ddc-yank",
"LumaKernel/ddc-file",
"windwp/nvim-autopairs",
"tani/ddc-onp",
},
config = function()
require(_G.p("modules.ddc"))
end,
})
-- ddc.lua
vim.o.completeopt = "menu,noinsert"
vim.g.vsnip_snippet_dir = vim.fn["stdpath"]("config") .. "/vsnip"
-- font link: https://github.com/microsoft/vscode-codicons/raw/main/dist/codicon.ttf
vim.call("ddc#custom#patch_global", {
sources = { "file", "vsnip", "nvim-lsp", "around", "buffer", "yank" },
sourceOptions = {
["_"] = {
matchers = { "matcher_fuzzy" },
sorters = { "sorter_fuzzy", "sorter_lsp" },
converters = { "converter_fuzzy" },
-- matchers = { "matcher_head" },
-- sorters = { "sorter_rank", "sorter_onp", "sorter_lsp" },
},
["nvim-lsp"] = {
mark = "「LSP」",
maxCandidates = 15,
minAutoCompleteLength = 1,
forceCompletionPattern = [[\.|:|->]],
dup = true,
ignoreCase = true,
},
around = {
mark = "「AROUND」",
},
buffer = {
mark = "「BUFFER」",
-- limitBytes = 50,
},
vsnip = {
mark = "「VSNIP」",
},
file = {
mark = "「FILE」",
forceCompletionPattern = "\\S/\\S*",
},
yank = {
mark = "「YANK」",
},
},
sourceParams = {
["nvim-lsp"] = {
kindLabels = {
-- Text = " ",
-- Method = " ",
-- Function = " ",
-- Constructor = " ",
-- Field = " ",
-- Variable = " ",
-- Class = " ",
-- Interface = " ",
-- Module = " ",
-- Property = " ",
-- Unit = " ",
-- Value = " ",
-- Enum = " ",
-- Keyword = " ",
-- Snippet = " ",
-- Color = " ",
-- File = " ",
-- Reference = " ",
-- Folder = " ",
-- EnumMember = " ",
-- Constant = " ",
-- Struct = " ",
-- Event = " ",
-- Operator = " ",
-- TypeParameter = " ",
},
},
file = {
displayFile = " ",
displayDir = " ",
},
},
completionMenu = "pum.vim",
backspaceCompletion = true,
})
vim.call("popup_preview#enable")
vim.call("signature_help#enable")
vim.call("ddc#enable")
vim.call("pum#set_option", "setline_insert", false)
local npairs = require("nvim-autopairs")
npairs.setup({ map_bs = false, map_cr = false })
vim.keymap.set("i", "<tab>", function()
if vim.fn["pum#visible"]() ~= 0 then
vim.call("pum#map#insert_relative", 1)
return
elseif vim.fn["vsnip#available"](1) == 1 then
return "<Plug>(vsnip-expand-or-jump)"
else
return "<TAB>"
end
end, { expr = true, noremap = true })
vim.keymap.set("i", "<CR>", function()
if vim.fn["pum#visible"]() ~= 0 then
vim.call("pum#map#confirm")
return
else
-- return "<CR>"
return npairs.autopairs_cr()
end
end, { expr = true })
vim.cmd([[
inoremap <S-Tab> <Cmd>call pum#map#insert_relative(-1)<CR>
inoremap <C-n> <Cmd>call pum#map#select_relative(+1)<CR>
inoremap <C-p> <Cmd>call pum#map#select_relative(-1)<CR>
inoremap <C-y> <Cmd>call pum#map#confirm()<CR>
inoremap <C-e> <Cmd>call pum#map#cancel()<CR>
]])
vim.cmd([[autocmd User PumCompleteDone call vsnip_integ#on_complete_done(g:pum#completed_item)]])