以上就是Neovim 我的最终配置

  • tabline 的效果要比 bufferline 的效果要好的多 我个人是这么认为的
  • 代码调转用的是 nvim-lsp-smag 搭配 lsp 和 lsp-config 使用可以和vscode 的跳转效果一致,支持 ctr+[鼠标左键]
  • 我从 archlinux 迁移到 centous stream 9 上 完全没有问题
  • 乱成了一锅粥的配置
local use = require("packer").use
require("packer").startup(function()use({"nvim-telescope/telescope.nvim",tag = "0.1.0",-- or                            , branch = '0.1.x',requires = { { "nvim-lua/plenary.nvim" }, { "BurntSushi/ripgrep" }, { "sharkdp/fd" } },})use({"glepnir/lspsaga.nvim",branch = "main",})use("weilbith/nvim-lsp-smag")use("jubnzv/virtual-types.nvim")use("wbthomason/packer.nvim")use("williamboman/nvim-lsp-installer")use("neovim/nvim-lspconfig")use("hrsh7th/nvim-cmp") -- Autocompletion pluginuse("hrsh7th/cmp-path") -- Autocompletion pluginuse("hrsh7th/cmp-buffer") -- Autocompletion pluginuse("hrsh7th/cmp-cmdline") -- Autocompletion pluginuse("hrsh7th/cmp-nvim-lsp") -- LSP source for nvim-cmpuse("saadparwaiz1/cmp_luasnip") -- Snippets source for nvim-cmpuse("L3MON4D3/LuaSnip") -- Snippets pluginuse("windwp/nvim-autopairs")use("shaunsingh/nord.nvim")-- Packeruse({ "sindrets/diffview.nvim", requires = "nvim-lua/plenary.nvim" })use({ "catppuccin/nvim", as = "catppuccin" })use({"nvim-treesitter/nvim-treesitter",requires = "p00f/nvim-ts-rainbow",})use("glepnir/dashboard-nvim")use("yamatsum/nvim-cursorline")use({"kyazdani42/nvim-tree.lua",requires = "kyazdani42/nvim-web-devicons",})use({"nvim-lualine/lualine.nvim",requires = { "kyazdani42/nvim-web-devicons", opt = true },})use({"akinsho/toggleterm.nvim",tag = "v2.*",config = function()require("toggleterm").setup()end,})use("karb94/neoscroll.nvim")use({ "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap" } })use({ "mhartington/formatter.nvim" })-- using packer.nvimuse({"kdheepak/tabline.nvim",config = function()require("tabline").setup({ enable = false })end,requires = { "hoob3rt/lualine.nvim", "kyazdani42/nvim-web-devicons" },})
end)require("nvim-lsp-installer").setup({automatic_installation = false, -- automatically detect which servers to install (based on which servers are set up via lspconfig)ui = {icons = {server_installed = "✓",server_pending = "➜",server_uninstalled = "✗",},},
})require("lspconfig").ocamllsp.setup({ on_attach = require("virtualtypes").on_attach })require("nvim-treesitter.configs").setup({highlight = {},-- ...rainbow = {enable = true,-- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin forextended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> booleanmax_file_lines = nil, -- Do not enable for files with more than n lines, int-- colors = {}, -- table of hex strings-- termcolors = {} -- table of colour name strings},
})local colors = {red = "#ca1243",grey = "#a0a1a7",black = "#383a42",white = "#f3f3f3",light_green = "#83a598",orange = "#fe8019",green = "#8ec07c",
}local theme = {normal = {a = { fg = colors.white, bg = colors.black },b = { fg = colors.white, bg = colors.grey },c = { fg = colors.black, bg = colors.white },z = { fg = colors.white, bg = colors.black },},insert = { a = { fg = colors.black, bg = colors.light_green } },visual = { a = { fg = colors.black, bg = colors.orange } },replace = { a = { fg = colors.black, bg = colors.green } },
}local empty = require("lualine.component"):extend()
function empty:draw(default_highlight)self.status = ""self.applied_separator = ""self:apply_highlights(default_highlight)self:apply_section_separators()return self.status
end-- Put proper separators and gaps between components in sections
local function process_sections(sections)for name, section in pairs(sections) dolocal left = name:sub(9, 10) < "x"for pos = 1, name ~= "lualine_z" and #section or #section - 1 dotable.insert(section, pos * 2, { empty, color = { fg = colors.white, bg = colors.white } })endfor id, comp in ipairs(section) doif type(comp) ~= "table" thencomp = { comp }section[id] = compendcomp.separator = left and { right = "" } or { left = "" }endendreturn sections
endlocal function search_result()if vim.v.hlsearch == 0 thenreturn ""endlocal last_search = vim.fn.getreg("/")if not last_search or last_search == "" thenreturn ""endlocal searchcount = vim.fn.searchcount({ maxcount = 9999 })return last_search .. "(" .. searchcount.current .. "/" .. searchcount.total .. ")"
endlocal function modified()if vim.bo.modified thenreturn "+"elseif vim.bo.modifiable == false or vim.bo.readonly == true thenreturn "-"endreturn ""
endrequire("lualine").setup({options = {theme = theme,component_separators = "",section_separators = { left = "", right = "" },},sections = process_sections({lualine_a = { "mode" },lualine_b = {"branch","diff",{"diagnostics",source = { "nvim" },sections = { "error" },diagnostics_color = { error = { bg = colors.red, fg = colors.white } },},{"diagnostics",source = { "nvim" },sections = { "warn" },diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },},{ "filename", file_status = false, path = 1 },{ modified, color = { bg = colors.red } },{"%w",cond = function()return vim.wo.previewwindowend,},{"%r",cond = function()return vim.bo.readonlyend,},{"%q",cond = function()return vim.bo.buftype == "quickfix"end,},},lualine_c = {},lualine_x = {},lualine_y = { search_result, "filetype" },lualine_z = { "%l:%c", "%p%%/%L" },}),inactive_sections = {lualine_c = { "%f %y %m" },lualine_x = {},},
})-- Utilities for creating configurations
local util = require("formatter.util")-- Provides the Format, FormatWrite, FormatLock, and FormatWriteLock commands
require("formatter").setup({-- Enable or disable logginglogging = true,-- Set the log levellog_level = vim.log.levels.WARN,-- All formatter configurations are opt-infiletype = {-- Formatter configurations for filetype "lua" go here-- and will be executed in orderlua = {-- "formatter.filetypes.lua" defines default configurations for the-- "lua" filetyperequire("formatter.filetypes.lua").stylua,-- You can also define your own configurationfunction()-- Supports conditional formattingif util.get_current_buffer_file_name() == "special.lua" thenreturn nilend-- Full specification of configurations is down below and in Vim help-- filesreturn {exe = "stylua",args = {"--search-parent-directories","--stdin-filepath",util.escape_path(util.get_current_buffer_file_path()),"--","-",},stdin = true,}end,},c = {require("formatter.filetypes.c").clangformat,function()if util.get_current_buffer_file_name() == "special.c" thenreturn nilendreturn {exe = "clang-format",stdin = true,}end,},py = {require("formatter.filetypes.python").pyright,function()if util.get_current_buffer_file_name() == "special.python" thenreturn nilendreturn {exe = "pyright",stdin = true,}end,},cc = {require("formatter.filetypes.c").clangformat,function()if util.get_current_buffer_file_name() == "special.c" thenreturn nilendreturn {exe = "clang-format",stdin = true,}end,},cpp = {require("formatter.filetypes.c").clangformat,function()if util.get_current_buffer_file_name() == "special.c" thenreturn nilendreturn {exe = "clang-format",stdin = true,}end,},rs = {require("formatter.filetypes.rust").rustfmt,function()if util.get_current_buffer_file_name() == "special.rust" thenreturn nilendreturn {exe = "rustfmt",stdin = true,}end,},cmake = {require("formatter.filetypes.cmake").cmakeformat,function()if util.get_current_buffer_file_name() == "special.cmakeformat" thenreturn nilendreturn {exe = "cmake-format",stdin = true,}end,},-- Use the special "*" filetype for defining formatter configurations on-- any filetype["*"] = {-- "formatter.filetypes.any" defines default configurations for any-- filetyperequire("formatter.filetypes.any").remove_trailing_whitespace,},},
})require("dapui").setup({icons = { expanded = "▾", collapsed = "▸" },mappings = {-- Use a table to apply multiple mappingsexpand = { "<CR>", "<2-LeftMouse>" },open = "o",remove = "d",edit = "e",repl = "r",toggle = "t",},-- Expand lines larger than the window-- Requires >= 0.7expand_lines = vim.fn.has("nvim-0.7"),-- Layouts define sections of the screen to place windows.-- The position can be "left", "right", "top" or "bottom".-- The size specifies the height/width depending on position. It can be an Int-- or a Float. Integer specifies height/width directly (i.e. 20 lines/columns) while-- Float value specifies percentage (i.e. 0.3 - 30% of available lines/columns)-- Elements are the elements shown in the layout (in order).-- Layouts are opened in order so that earlier layouts take priority in window sizing.layouts = {{elements = {-- Elements can be strings or table with id and size keys.{ id = "scopes", size = 0.25 },"breakpoints","stacks","watches",},size = 40, -- 40 columnsposition = "left",},{elements = {"repl","console",},size = 0.25, -- 25% of total linesposition = "bottom",},},floating = {max_height = nil, -- These can be integers or a float between 0 and 1.max_width = nil, -- Floats will be treated as percentage of your screen.border = "single", -- Border style. Can be "single", "double" or "rounded"mappings = {close = { "q", "<Esc>" },},},windows = { indent = 1 },render = {max_type_length = nil, -- Can be integer or nil.},
})require("toggleterm").setup({-- size can be a number or function which is passed the current terminalsize = function(term)if term.direction == "horizontal" thenreturn 15elseif term.direction == "vertical" thenreturn vim.o.columns * 0.40endend,on_open = function()-- Prevent infinite calls from freezing neovim.-- Only set these options specific to this terminal buffer.vim.api.nvim_set_option_value("foldmethod", "manual", { scope = "local" })vim.api.nvim_set_option_value("foldexpr", "0", { scope = "local" })end,open_mapping = false, -- [[<c-\>]],hide_numbers = true, -- hide the number column in toggleterm buffersshade_filetypes = {},shade_terminals = false,shading_factor = "1", -- the degree by which to darken to terminal colour, default: 1 for dark backgrounds, 3 for lightstart_in_insert = true,insert_mappings = true, -- whether or not the open mapping applies in insert modepersist_size = true,direction = "horizontal",close_on_exit = true, -- close the terminal window when the process exitsshell = vim.o.shell, -- change the default shell
})require("nvim-autopairs").setup({})require("neoscroll").setup()local kind_icons = {Text = "",Method = "m",Function = "",Constructor = "",Field = "",Variable = "",Class = "",Interface = "",Module = "",Property = "",Unit = "",Value = "",Enum = "",Keyword = "",Snippet = "",Color = "",File = "",Reference = "",Folder = "",EnumMember = "",Constant = "",Struct = "",Event = "",Operator = "",TypeParameter = "",
}local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)local lspconfig = require("lspconfig")-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
local servers = { "clangd", "pyright", "bashls", "cmake", "rust_analyzer", "sumneko_lua" }
for _, lsp in ipairs(servers) dolspconfig[lsp].setup({capabilities = capabilities,})
end-- lua lsp configlocal sumneko_root_path = "/root/.config/nvim/lua_lsp"
local sumneko_binary = sumneko_root_path .. "/bin/lua-language-server"
lspconfig["sumneko_lua"].setup({cmd = { sumneko_binary, "-E", sumneko_root_path .. "/bin/main.lua" },settings = {Lua = {runtime = {-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)version = "LuaJIT",-- Setup your lua pathpath = vim.split(package.path, ";"),},diagnostics = {-- Get the language server to recognize the `vim` globalglobals = { "vim" },},workspace = {-- Make the server aware of Neovim runtime fileslibrary = {[vim.fn.expand("$VIMRUNTIME/lua")] = true,[vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true,},},},},capabilities = capabilities,on_attach = custom_lsp_attach,
})-- luasnip setup
local luasnip = require("luasnip")-- nvim-cmp setup
local cmp = require("cmp")
cmp.setup({snippet = {expand = function(args)luasnip.lsp_expand(args.body)end,},mapping = cmp.mapping.preset.insert({["<C-d>"] = cmp.mapping.scroll_docs(-4),["<C-f>"] = cmp.mapping.scroll_docs(4),["<C-Space>"] = cmp.mapping.complete(),["<CR>"] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Replace,select = true,}),["<Tab>"] = cmp.mapping(function(fallback)if cmp.visible() thencmp.select_next_item()elseif luasnip.expand_or_jumpable() thenluasnip.expand_or_jump()elsefallback()endend, { "i", "s" }),["<S-Tab>"] = cmp.mapping(function(fallback)if cmp.visible() thencmp.select_prev_item()elseif luasnip.jumpable(-1) thenluasnip.jump(-1)elsefallback()endend, { "i", "s" }),}),formatting = {fields = { "kind", "abbr", "menu" },format = function(entry, vim_item)-- Kind iconsvim_item.kind = string.format("%s", kind_icons[vim_item.kind])vim_item.menu = ({nvim_lsp = "[LSP]",ultisnips = "[Snippet]",buffer = "[Buffer]",path = "[Path]",})[entry.source.name]return vim_itemend,},sources = {{ name = "nvim_lsp" },{ name = "luasnip" },{ name = "buffer" },{ name = "path" },},
})cmp.setup.cmdline("/", {completion = { autocomplete = false },sources = {{ name = "buffer" },},
})cmp.setup.cmdline(":", {completion = { autocomplete = false },sources = cmp.config.sources({{ name = "path" },}, {{ name = "cmdline" },}),
})require("nvim-treesitter.configs").setup({-- A list of parser names, or "all"ensure_installed = { "c", "lua", "python", "cmake", "cpp", "make", "bash", "rust" },-- Install parsers synchronously (only applied to `ensure_installed`)sync_install = true,-- Automatically install missing parsers when entering bufferauto_install = false,---- If you need to change the installation directory of the parsers (see -> Advanced Setup)-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!highlight = {enable = true,additional_vim_regex_highlighting = true,},rainbow = {enable = true,-- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin forextended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> booleanmax_file_lines = nil, -- Do not enable for files with more than n lines, int-- colors = {}, -- table of hex strings-- termcolors = {} -- table of colour name strings},
})vim.cmd([[set noswapfile]])
vim.cmd([[set expandtab]])
vim.cmd([[set tabstop=4]])
vim.cmd([[set mouse=a]])
vim.cmd([[set selection=exclusive]])
vim.cmd([[set selectmode=mouse,key]])
vim.cmd([[set nu]])require("nvim-tree").setup({})require("nvim-cursorline").setup({cursorline = {enable = true,timeout = 1000,number = false,},cursorword = {enable = true,min_length = 3,hl = { underline = true },},
})vim.cmd([[map <C-n> :ToggleTerm direction=float<CR>]])
vim.cmd([[
set guioptions-=e " Use showtabline in gui vim
set sessionoptions+=tabpages,globals " store tabpages and globals in session
]])
vim.cmd([[map <F6> :NvimTreeToggle<CR>]])
vim.g.catppuccin_flavour = "macchiato" -- latte, frappe, macchiato, mocha-- Themerequire("catppuccin").setup()
vim.cmd([[colorscheme catppuccin]])-- nord colorscheme
-- vim.cmd[[colorscheme nord]]-- Lua
local actions = require("diffview.actions")require("diffview").setup({diff_binaries = false, -- Show diffs for binariesenhanced_diff_hl = false, -- See ':h diffview-config-enhanced_diff_hl'git_cmd = { "git" }, -- The git executable followed by default args.use_icons = true, -- Requires nvim-web-deviconsicons = {-- Only applies when use_icons is true.folder_closed = "",folder_open = "",},signs = {fold_closed = "",fold_open = "",},file_panel = {listing_style = "tree", -- One of 'list' or 'tree'tree_options = {-- Only applies when listing_style is 'tree'flatten_dirs = true, -- Flatten dirs that only contain one single dirfolder_statuses = "only_folded", -- One of 'never', 'only_folded' or 'always'.},win_config = {-- See ':h diffview-config-win_config'position = "left",width = 35,},},file_history_panel = {log_options = {-- See ':h diffview-config-log_options'single_file = {diff_merges = "combined",},multi_file = {diff_merges = "first-parent",},},win_config = {-- See ':h diffview-config-win_config'position = "bottom",height = 16,},},commit_log_panel = {win_config = {}, -- See ':h diffview-config-win_config'},default_args = {-- Default args prepended to the arg-list for the listed commandsDiffviewOpen = {},DiffviewFileHistory = {},},hooks = {}, -- See ':h diffview-config-hooks'keymaps = {disable_defaults = false, -- Disable the default keymapsview = {-- The `view` bindings are active in the diff buffers, only when the current-- tabpage is a Diffview.["<tab>"] = actions.select_next_entry, -- Open the diff for the next file["<s-tab>"] = actions.select_prev_entry, -- Open the diff for the previous file["gf"] = actions.goto_file, -- Open the file in a new split in the previous tabpage["<C-w><C-f>"] = actions.goto_file_split, -- Open the file in a new split["<C-w>gf"] = actions.goto_file_tab, -- Open the file in a new tabpage["<leader>e"] = actions.focus_files, -- Bring focus to the files panel["<leader>b"] = actions.toggle_files, -- Toggle the files panel.},file_panel = {["j"] = actions.next_entry, -- Bring the cursor to the next file entry["<down>"] = actions.next_entry,["k"] = actions.prev_entry, -- Bring the cursor to the previous file entry.["<up>"] = actions.prev_entry,["<cr>"] = actions.select_entry, -- Open the diff for the selected entry.["o"] = actions.select_entry,["<2-LeftMouse>"] = actions.select_entry,["-"] = actions.toggle_stage_entry, -- Stage / unstage the selected entry.["S"] = actions.stage_all, -- Stage all entries.["U"] = actions.unstage_all, -- Unstage all entries.["X"] = actions.restore_entry, -- Restore entry to the state on the left side.["R"] = actions.refresh_files, -- Update stats and entries in the file list.["L"] = actions.open_commit_log, -- Open the commit log panel.["<c-b>"] = actions.scroll_view(-0.25), -- Scroll the view up["<c-f>"] = actions.scroll_view(0.25), -- Scroll the view down["<tab>"] = actions.select_next_entry,["<s-tab>"] = actions.select_prev_entry,["gf"] = actions.goto_file,["<C-w><C-f>"] = actions.goto_file_split,["<C-w>gf"] = actions.goto_file_tab,["i"] = actions.listing_style, -- Toggle between 'list' and 'tree' views["f"] = actions.toggle_flatten_dirs, -- Flatten empty subdirectories in tree listing style.["<leader>e"] = actions.focus_files,["<leader>b"] = actions.toggle_files,},file_history_panel = {["g!"] = actions.options, -- Open the option panel["<C-A-d>"] = actions.open_in_diffview, -- Open the entry under the cursor in a diffview["y"] = actions.copy_hash, -- Copy the commit hash of the entry under the cursor["L"] = actions.open_commit_log,["zR"] = actions.open_all_folds,["zM"] = actions.close_all_folds,["j"] = actions.next_entry,["<down>"] = actions.next_entry,["k"] = actions.prev_entry,["<up>"] = actions.prev_entry,["<cr>"] = actions.select_entry,["o"] = actions.select_entry,["<2-LeftMouse>"] = actions.select_entry,["<c-b>"] = actions.scroll_view(-0.25),["<c-f>"] = actions.scroll_view(0.25),["<tab>"] = actions.select_next_entry,["<s-tab>"] = actions.select_prev_entry,["gf"] = actions.goto_file,["<C-w><C-f>"] = actions.goto_file_split,["<C-w>gf"] = actions.goto_file_tab,["<leader>e"] = actions.focus_files,["<leader>b"] = actions.toggle_files,},option_panel = {["<tab>"] = actions.select_entry,["q"] = actions.close,},},
})vim.api.nvim_exec([[
augroup FormatAutogroupautocmd!autocmd BufWritePost *.rs,*.lua,*.c,*.cc,*.cpp,*.h,*.py FormatWrite
augroup END
]],true
)vim.cmd([[nmap <tab> :bn<cr>]])
vim.cmd([[nmap <C-S> :w<cr>]])
vim.cmd([[set showcmd]])
vim.cmd([[set cursorline]])local keymap = vim.keymap.set
keymap("n", "gh", "<cmd>Lspsaga lsp_finder<CR>", { silent = true })-- Code action
keymap("n", "<leader>ca", "<cmd>Lspsaga code_action<CR>", { silent = true })
keymap("v", "<leader>ca", "<cmd><C-U>Lspsaga range_code_action<CR>", { silent = true })-- Rename
keymap("n", "gr", "<cmd>Lspsaga rename<CR>", { silent = true })-- Definition preview
keymap("n", "gd", "<cmd>Lspsaga preview_definition<CR>", { silent = true })-- Show line diagnostics
keymap("n", "<leader>cd", "<cmd>Lspsaga show_line_diagnostics<CR>", { silent = true })-- Show cursor diagnostic
keymap("n", "<leader>cd", "<cmd>Lspsaga show_cursor_diagnostics<CR>", { silent = true })-- Diagnsotic jump can use `<c-o>` to jump back
keymap("n", "[e", "<cmd>Lspsaga diagnostic_jump_next<CR>", { silent = true })
keymap("n", "]e", "<cmd>Lspsaga diagnostic_jump_prev<CR>", { silent = true })-- Only jump to error
keymap("n", "[E", function()require("lspsaga.diagnostic").goto_prev({ severity = vim.diagnostic.severity.ERROR })
end, { silent = true })
keymap("n", "]E", function()require("lspsaga.diagnostic").goto_next({ severity = vim.diagnostic.severity.ERROR })
end, { silent = true })-- Outline
keymap("n", "<leader>o", "<cmd>LSoutlineToggle<CR>", { silent = true })-- Hover Doc
keymap("n", "K", "<cmd>Lspsaga hover_doc<CR>", { silent = true })-- Float terminal
keymap("n", "<A-d>", "<cmd>Lspsaga open_floaterm<CR>", { silent = true })
-- if you want pass somc cli command into terminal you can do like this
-- open lazygit in lspsaga float terminal
keymap("n", "<A-d>", "<cmd>Lspsaga open_floaterm lazygit<CR>", { silent = true })
-- close floaterm
keymap("t", "<A-d>", [[<C-\><C-n><cmd>Lspsaga close_floaterm<CR>]], { silent = true })local db = require("dashboard")
local home = os.getenv("HOME")
db.preview_command = "cat | lolcat -F 0.3"
db.preview_file_path = home .. "/.config/nvim/static/neovim.cat"
db.preview_file_height = 11
db.preview_file_width = 70
db.custom_center = {{icon = "  ",desc = "Find  File                              ",action = "Telescope find_files find_command=rg,--hidden,--files",shortcut = "SPC f f",},{icon = "  ",desc = "Find  word                              ",action = "Telescope live_grep",shortcut = "SPC f w",},
}require("lualine").setup({tabline = {lualine_a = {},lualine_b = {},lualine_c = { require("tabline").tabline_buffers },lualine_x = { require("tabline").tabline_tabs },lualine_y = {},lualine_z = {},},
})

dashboard 稍后修改, 会在github 上传 完整的文件,如果没啥大问题就不会在动了

最终的配置见github (https://github.com/HongDaYuGithub/neovim_config.git

环境安装比较麻烦 我找找国内的源 , 自动编译安装 有时间在搞 … …

鉴于初学编程的人,折腾 是最大的动力

Win 版本 周六周日,搞搞 一键部署

DashBoard

neovim 最终的配置相关推荐

  1. Neovim Python个人配置

    本文记录下Neovim安装配置过程,最终的显示效果如下: Neovim 安装 MacOS brew install neovim Linux sudo apt install neovim Pytho ...

  2. Linux搭建部落冲突,Neovim+Coc.nvim配置 目前个人最舒服终端编辑环境(PythonC++)

    1. 前言 目前最常用的环境还是linux的服务器,所以最终选择的是nvim作为自己的首要编辑器,毕竟没有写一些比较大型的项目.在经过多次的摸索后,我还是选择了Neovim + Coc.nvim,放弃 ...

  3. WSL下的NeoVim安装与配置

    1 python模块下载 sudo apt-get install python-dev python-pip python3-dev python3-pip 2 添加仓库并下载 sudo add-a ...

  4. NeoVim 安装及配置

    文章目录 NeoVim 安装使用 #1 环境 #1.1 安装neovim #1 开始 #1.1 NeoVim #1.2 插件 #1.2.1 插件管理工具`vim-plug` #1.2.2 主题 #1. ...

  5. NeoVIM安装与配置(Windos 10)

    文章目录 安装和配置 安装 配置 回到上次文件关闭时光标位置 问题 Next Step Ruby provider (optional) vim 替换操作 滚轮改变neovim-Qt字体大小 正则表达 ...

  6. Neovim 配置实战:从0到1打造自己的IDE]

    Neovim 配置实战:从0到1打造自己的IDE] (一)Neovim的安装与配置架构总览 本节是第一篇,我们要先介绍一下如何在 Windows 命令行环境下安装 Neovim,然后会对配置文件结构做 ...

  7. [ webpack4 ] 配置属于自己的打包系统教程(最终篇)—— 环境配置篇

    GitHub 完整配置文件地址: https://github.com/yhtx1997/w... 由于篇幅过长分三次发布,建议按顺序看 [ webpack4 ] 配置属于自己的打包系统教程(一)-- ...

  8. 从零配置专属neovim - 1.配置设计概述

    文章目录 前言 配置构想 配置存放及使用 配置目录说明 内容项说明 `~/.config/nvim/init.lua` `~/.config/nvim/lua` `~/.config/nvim/lua ...

  9. neovim配置(0.5+, lua)

    neovim 0.5版本之后支持了内置的LSP, treesitter语法高亮,以及使用lua脚本语言配置等,这意味着neovim变得更像一个IDE了, 于是我重新配置了一下自己的neovim, 全部 ...

最新文章

  1. linux c http下载 带确认 进度条
  2. 树——常用的数据结构
  3. block size in download header
  4. java7代码示例_Java中的七种排序方式代码示例
  5. Facebook在欧洲推出网络极端内容与仇恨言论打压行动
  6. 苹果CMSV10绿色毛毛虫主题模板
  7. 【Objective-C】08-self关键字
  8. python学习-3.一些常用模块用法
  9. 添加到当前最上层view
  10. 下载SAP hana镜像文件
  11. 8 9区别 endnote7_大家都了解EndnoteX9这款软件吗
  12. 关于炼丹,你是否知道这些细节?
  13. 碰撞的小球(100分)
  14. 用vue+element-ui快速写一个注册登录页面
  15. 52. 文件上传篇——Apache漏洞原理
  16. win10如何显示我的电脑在桌面
  17. 记一次蚂蚁金服面试经历
  18. 爱婴室主要股东再现减持:莫锐伟、王云亦是如此,业绩表现不理想
  19. Thales安全解决方案:怎么提高国家网络安全的关键步骤
  20. 「 LaTex 」写论文,插入Acknowledge

热门文章

  1. Gnuplot绘图入门1——sin(x)绘制与美化
  2. 【视频编解码-07】变换,量化与熵编码
  3. 免费的天气预报API--雅虎,中央气象台
  4. mui 移动端日历(月历、周历)
  5. 数形结合彻底解决2个球100层楼摔坏的问题
  6. 跨链项目总结-比原链
  7. 【图像处理】基于形态学的图像处理技术
  8. 设置Win7系统自动登录
  9. 公司注册地和实际经营地不一致有何影响?
  10. 纪录片《软件专利的荒谬性》