日本乱偷中文字幕,美女脱内衣18禁免费看,亚洲国产精品丝袜在线观看,18女人腿打开无遮挡,廖承宇chinese野战做受

neovim 從0開(kāi)始配置優(yōu)化

簡(jiǎn)介

neovim是從vim的一個(gè)分支fork出來(lái)的,從性能等方面來(lái)講都比vim強很多,所以從vim轉到neovim了。

本文涉及的neovim配置都在https://git.zeekling.cn/linux/nvim-config/src/branch/master里面。

快速使用方法:

git clone https://git.zeekling.cn/linux/nvim-config.git ~/.config/nvim
# 或者
git clone ssh://git@git.zeekling.cn:222/linux/nvim-config.git ~/.config/nvim

打開(kāi)nvim就可以自動(dòng)安裝插件了。

快捷鍵

快捷鍵 用途 分類(lèi)
<space>bp 跳轉到上一個(gè)buffer Buffer
<space>bp 跳轉到下一個(gè)buffer Buffer
<space>ds 在左邊顯示目錄數 Dir
<space>dc 關(guān)閉左邊的目錄樹(shù) Dir
<space>mks 預覽Markdown Markdown
<space>mkc 關(guān)閉預覽Markdown Markdown

幫助

快捷鍵記不住的時(shí)候可以按<space>彈出幫助的分類(lèi),按照分類(lèi)查找快捷鍵。

從0開(kāi)始配置

初始化插件管理器

init.lua為neovim的默認配置,一般在~/.config/nvim下面。在文件里面寫(xiě)如下面內容,關(guān)鍵的一行為:require("lazynvim-init"),表示需要加載插件lazynvim-init,用于初始化lazy插件管理器。

vim.g.mapleader = " "
vim.o.background = "light"
local vim = vim

require("lazynvim-init")

在新建~/.config/nvim/lua/lazynvim-init.lua文件,寫(xiě)入下面內容,核心內容是初始化lazy插件管理器。require("lazy").setup("plugins")主要是保證lazy插件加載~/.config/nvim/lua/plugins 下面的lua文件作為插件的配置。

vim.wo.number = true
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
	vim.fn.system({
		"git",
		"clone",
		"--filter=blob:none",
		"git@github.com:folke/lazy.nvim.git",
		"--branch=stable", -- latest stable release
		lazypath,
	})
end
-- 
-- 2. 將 lazypath 設置為運行時(shí)路徑
	-- rtp(runtime path)
	-- nvim進(jìn)行路徑搜索的時(shí)候,除已有的路徑,還會(huì )從prepend的路徑中查找
-- 否則,下面 require("lazy") 是找不到的
vim.opt.rtp:prepend(lazypath)

-- 3. 加載lazy.nvim模塊
require("lazy").setup("plugins")

插件配置

必選插件

~/.config/nvim/lua/plugins/plugin-base.lua文件里面配置了個(gè)人認為必選的插件。

return {
  {
    "nathom/filetype.nvim",
    lazy = true,
    event = "User FileOpened",
    config = function()
        require("filetype").setup({
            overrides = {
                extensions = {
                    h = "cpp",
                },
            }
        })
    end
  },
  {
    "HiPhish/nvim-ts-rainbow2",
    -- Bracket pair rainbow colorize
    lazy = true,
    event = { "User FileOpened" },
  },
  {
    "romgrk/nvim-treesitter-context",
    lazy = true,
    event = { "User FileOpened" },
    config = function()
        require("treesitter-context").setup({
            enable = true,
            throttle = true,
            max_lines = 0,
            patterns = {
                default = {
                    "class",
                    "function",
                    "method",
                },
            },
        })
    end,
  },
  {
    "windwp/nvim-spectre",
    lazy = true,
    cmd = { "Spectre" },
    config = function()
        require("spectre").setup()
    end,
  },
  {
    "andymass/vim-matchup",
    -- Highlight, jump between pairs like if..else
    lazy = true,
    event = { "User FileOpened" },
    config = function()
        vim.g.matchup_matchparen_offscreen = { method = "popup" }
        lvim.builtin.treesitter.matchup.enable = true
    end,
  },
  {
    "rcarriga/nvim-notify",
    lazy = true,
    event = "VeryLazy",
    config = function()
        local notify = require("notify")
        notify.setup({
            -- "fade", "slide", "fade_in_slide_out", "static"
            stages = "static",
            on_open = nil,
            on_close = nil,
            timeout = 3000,
            fps = 1,
            render = "default",
            background_colour = "Normal",
            max_width = math.floor(vim.api.nvim_win_get_width(0) / 2),
            max_height = math.floor(vim.api.nvim_win_get_height(0) / 4),
            -- minimum_width = 50,
            -- ERROR > WARN > INFO > DEBUG > TRACE
            level = "TRACE",
        })

        vim.notify = notify
    end,
  },
  {
    "folke/noice.nvim",
    enabled = ENABLE_NOICE,
    lazy = true,
    event = { "BufRead", "BufNewFile" },
    dependencies = { "rcarriga/nvim-notify", "MunifTanjim/nui.nvim" },
    config = function()
        require("noice").setup({
            lsp = {
                progress = {
                    enabled = false,
                },
            },
            presets = {
                bottom_search = false,
                command_palette = true,
                long_message_to_split = true,
                inc_rename = false,
                lsp_doc_border = true,
            },
            messages = {
                enabled = true,
                view = "notify",
                view_error = "notify",
                view_warn = "notify",
                view_history = "messages",
                view_search = "virtualtext",
            },
            health = {
                checker = false,
            },
        })
    end,
  },
  { "lukas-reineke/cmp-under-comparator", lazy = true },
  {
    "ray-x/cmp-treesitter",
    lazy = true,
  },
  {
    'nvim-lualine/lualine.nvim',
    config = function()
       require('lualine').setup()
    end
  },
  {
    "nvim-neo-tree/neo-tree.nvim",
    branch = "v3.x",
    dependencies = {
      "nvim-lua/plenary.nvim",
      "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
      "MunifTanjim/nui.nvim",
      -- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
    }
  },
  { 
   "tiagovla/scope.nvim",
   lazy = false
  },
  {
        "akinsho/bufferline.nvim",
        tag = "v3.*",
        config = function()
            vim.g.termguicolors = true
 
            require("bufferline").setup()
        end,
    },
    {
      'nvimdev/dashboard-nvim',
      event = 'VimEnter',
      config = function()
        require('dashboard').setup {
         -- config
       }
      end,
     dependencies = { {'nvim-tree/nvim-web-devicons'}}
  },
  {
    "azabiong/vim-highlighter",
  },
  {"stevearc/dressing.nvim", opts = {}}

}

Markdown

個(gè)人使用Markdown比較多,所以配置了Markdown的插件,在~/.config/nvim/lua/plugins/markdown.lua文件里面配置下面:

return {
    "iamcco/markdown-preview.nvim",
    cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
    ft = { "markdown" },
    build = function()
        vim.fn["mkdp#util#install"]()
    end,
    lazy = true;
}

自動(dòng)補全

在~/.config/nvim/lua/plugins/auto-complete.lua文件里面配置了自動(dòng)補全的配置:

return {
      {
        "hrsh7th/nvim-cmp",
        dependencies = {
            "hrsh7th/cmp-buffer",
            "hrsh7th/cmp-path",
            "hrsh7th/cmp-nvim-lsp",
            "L3MON4D3/LuaSnip",
            "saadparwaiz1/cmp_luasnip",
        },
        config = function()
            local cmp = require("cmp")
 
            cmp.setup({
                snippet = {
                    expand = function(args)
                        require("luasnip").lsp_expand(args.body)
                    end,
                },
                mapping = cmp.mapping.preset.insert({
                    ['<C-b>'] = cmp.mapping.scroll_docs(-4),
                    ['<C-f>'] = cmp.mapping.scroll_docs(4),
                    ['<C-Space>'] = cmp.mapping.complete(),
                    ['<C-e>'] = cmp.mapping.abort(),
                    ['<CR>'] = cmp.mapping.confirm({ select = true }),
                }),
                sources = cmp.config.sources({
                    { name = 'nvim_lsp' },
                    { name = 'luasnip' },
                }, {
                    { name = 'buffer' },
                    { name = "path" },
                }),
            })
        end,
    }, 
    {
      "neovim/nvim-lspconfig"
    }
}

快捷鍵以及提示

當插件過(guò)多之后,發(fā)現快捷鍵記不住,所以插件folke/which-key.nvim很有必要。配置如下:

return {
    {
        "folke/which-key.nvim",
        config = function()
            vim.o.timeout = true
            vim.o.timeoutlen = 300
 
            local wk = require("which-key")
            -- 快捷鍵在這里定義
	    wk.register({
               ["<leader>"] = {
	          b = {
                    name="Buffer",
	              p={"<cmd>BufferLineCyclePrev<cr>", "Go to pre buffer"},
	              n={"<cmd>BufferLineCycleNext<cr>", "Go to next buffer"},
	              d={"<cmd>bd<cr>", "delete current buffer"}
	          },
                 d = {
                   name="dirTree",
                   s={"<cmd>NvimTreeToggle<cr>", "show dir tree on left"},
                   c={"<cmd>NvimTreeClose<cr>", "hidden dir tree on left"}
	        },
	         m = {
                   name="Markdown",
	              k={
                        name="Markdown",
		        s={"<cmd>MarkdownPreview<cr>", "MarkdownPreview"},
		        c={"<cmd>MarkdownPreviewStop<cr>", "MarkdownPreviewStop"}
	              }
	         },
		 s = {
                   name="Search"
		 }
           }
        }, {silent = true, noremap = true})
        wk.setup()
        end,
    },
}

使用空格可以喚出幫助。

其他

其他配置可以參考:https://git.zeekling.cn/linux/nvim-config/src/branch/master/lua/plugins



標 題:《neovim 從0開(kāi)始配置優(yōu)化
作 者:zeekling
提 示:轉載請注明文章轉載自個(gè)人博客:浪浪山旁那個(gè)村

    評論
    2 評論
    2024-06-10 14:40 回復?

    Linux操作系統下面的一個(gè)比較好用的編輯器,簡(jiǎn)單編輯點(diǎn)東西還是挺方便的。

    2024-06-10 09:34 回復?

    這個(gè)主要功能是什么東西呀?

avatar

取消
日本乱偷中文字幕,美女脱内衣18禁免费看,亚洲国产精品丝袜在线观看,18女人腿打开无遮挡,廖承宇chinese野战做受