- seoul256.vim: 一个基于首尔色彩的低对比度 Vim 颜色方案,适用于 256 色终端或 GVim。
- vim-easy-align: Vim 插件,用于对齐文本。
- vim-go: Vim 的 Go 语言插件,支持语法高亮、自动缩进等。
- coc.nvim: 集成了 LSP (Language Server Protocol) 的 Neovim/Vim 插件,提供代码自动补全、跳转定义等功能。
- fzf: 命令行模糊搜索工具,用于快速查找和选择。
- nerdtree: 一个文件树浏览器 Vim 插件,方便浏览项目文件结构。
- vim-fireplace: Clojure 语言的 Vim 插件。
- mason.nvim: 管理 Neovim LSP (Language Server Protocol) 语言服务器的工具。
- mason-lspconfig.nvim: 与 Mason 集成的 LSP 配置工具。
- nvim-lspconfig: Neovim 的 LSP 配置插件。
- plenary.nvim: 用于 Neovim 的插件库,提供多种工具函数。
- telescope.nvim: Neovim 的模糊搜索界面。
- telescope-fzf-native.nvim: 将 fzf 集成到 telescope.nvim 的插件。
- nvim-web-devicons: 为 Neovim 提供 Web 开发相关的图标。
- nvim-tree.lua: 树状视图的 Neovim 插件。
- vim-floaterm: 管理浮动窗口的 Vim 插件。
- fzf.vim: fzf 的 Vim 插件接口。
- nvim-treesitter: Neovim 的语法树解析插件,支持多种语言的语法高亮和代码分析。
- Neovide: 一个使用 Rust 编写的高性能 Neovim GUI 客户端。
- Python Language Server (pyright): 用于 Python 的语言服务器,提供代码分析和自动补全等功能。
inia.lua
local vim = vimlocal Plug = vim.fn['plug#']
vim.call('plug#begin', 'D:/program/MinGW/share/nvim-win64/nvim-data/plugged')-- Shorthand notation for GitHub; translates to https://github.com/junegunn/seoul256.vim.gitPlug('junegunn/seoul256.vim')
-- Any valid git URL is allowedPlug('https://github.com/junegunn/vim-easy-align.git')
-- Using a tagged release; wildcard allowed (requires git 1.9.2 or above)Plug('fatih/vim-go', { ['tag'] = '*' })
-- Using a non-default branchPlug('neoclide/coc.nvim', { ['branch'] = 'release' })
-- Use 'dir' option to install plugin in a non-default directoryPlug('junegunn/fzf', { ['dir'] = '~/.fzf' })
-- Post-update hook: run a shell command after installing or updating the pluginPlug('junegunn/fzf', { ['dir'] = '~/.fzf', ['do'] = './install --all' })
-- Post-update hook can be a lambda expressionPlug('junegunn/fzf', { ['do'] = function() vim.fn['fzf#install']()end })
-- If the vim plugin is in a subdirectory, use 'rtp' option to specify its pathPlug('nsf/gocode', { ['rtp'] = 'vim' })
-- On-demand loading: loaded when the specified command is executedPlug('preservim/nerdtree', { ['on'] = 'NERDTreeToggle' })
-- On-demand loading: loaded when a file with a specific file type is openedPlug('tpope/vim-fireplace', { ['for'] = 'clojure' })
-- Unmanaged plugin (manually installed and updated)Plug('~/my-prototype-plugin')
-- masonPlug 'williamboman/mason.nvim'Plug 'williamboman/mason-lspconfig.nvim'Plug 'neovim/nvim-lspconfig'
Plug 'nvim-lua/plenary.nvim'Plug 'nvim-telescope/telescope.nvim'Plug 'nvim-telescope/telescope-fzf-native.nvim'Plug 'nvim-tree/nvim-web-devicons'Plug 'nvim-tree/nvim-tree.lua'Plug 'preservim/nerdtree'Plug 'voldikss/vim-floaterm'Plug 'neoclide/coc.nvim'Plug 'junegunn/fzf'Plug 'junegunn/fzf.vim'Plug 'nvim-treesitter/nvim-treesitter'
vim.call('plug#end')
-- Color schemes should be loaded after plug#end().-- We prepend it with 'silent!' to ignore errors when it's not yet installed.-- vim.cmd('silent! colorscheme seoul256')
----------------------------------------------------------------------------------------------------------------
local lspconfig = require('lspconfig')
-- after local capabilities = ....-- start serverlspconfig.lua_ls.setup { on_attach = on_attach, flags = lsp_flags, capabilities = capabilities, settings = { Lua = { runtime = { version = 'LuaJIT', }, diagnostics = { globals = {"vim", "packer_bootstrap"}, }, workspace = { library = vim.api.nvim_get_runtime_file("", true), }, telemetry = { enable = false, }, }, },}
lspconfig.pyright.setup { on_attach = on_attach, flags = lsp_flags, capabilities = capabilities, settings = { python = { analysis = { autoSearchPaths = true, diagnosticMode = "workspace", useLibraryCodeForTypes = true, typeCheckingMode = "off", } } },}
----------------------------------------------------------------------------------------------------------------
------------------------------------------- mason begin --------------------------------------------------------require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗" } }})
require("mason-lspconfig").setup({ -- 确保安装,根据需要填写 ensure_installed = { "tsserver", "tailwindcss", "bashls", "cssls", "dockerls", "emmet_ls", "html", "jsonls", "pyright", "rust_analyzer", "taplo", "yamlls", "gopls", "clangd", "cmake" }})
local DEFAULT_SETTINGS = { -- A list of servers to automatically install if they're not already installed. Example: { "rust_analyzer@nightly", "lua_ls" } -- This setting has no relation with the `automatic_installation` setting. ---@type string[] ensure_installed = {},
-- Whether servers that are set up (via lspconfig) should be automatically installed if they're not already installed. -- This setting has no relation with the `ensure_installed` setting. -- Can either be: -- - false: Servers are not automatically installed. -- - true: All servers set up via lspconfig are automatically installed. -- - { exclude: string[] }: All servers set up via lspconfig, except the ones provided in the list, are automatically installed. -- Example: automatic_installation = { exclude = { "rust_analyzer", "solargraph" } } ---@type boolean automatic_installation = false,
-- See `:h mason-lspconfig.setup_handlers()` ---@type table<string, fun(server_name: string)>? handlers = nil,}------------------------------------------- mason end --------------------------------------------------------------------------------------------------------------------------------------------------------------------------if vim.g.neovide then -- 设置 Neovide 的全局字体 -- vim.o.guifont = "Source Code Pro:h14"
-- 行间距 -- vim.opt.linespace = 0
-- 缩放比例 -- vim.g.neovide_scale_factor = 1
-- 文本伽马和对比度 -- vim.g.neovide_text_gamma = 0.5 -- vim.g.neovide_text_contrast = 1.5
-- 顶部、底部、右侧、左侧的内边距 -- vim.g.neovide_padding_top = 0 -- vim.g.neovide_padding_bottom = 0 -- vim.g.neovide_padding_right = 0 -- vim.g.neovide_padding_left = 0
-- 窗口模糊效果(仅限 macOS) -- vim.g.neovide_window_blurred = true
-- 浮动窗口的模糊半径 -- vim.g.neovide_floating_blur_amount_x = 2.0 -- vim.g.neovide_floating_blur_amount_y = 2.0
-- 浮动窗口的阴影效果 -- vim.g.neovide_floating_shadow = true -- vim.g.neovide_floating_z_height = 10 -- vim.g.neovide_light_angle_degrees = 45 -- vim.g.neovide_light_radius = 5
-- 窗口透明度(内容和标题栏统一) vim.g.transparency = 0.8 vim.g.neovide_transparency = 0.8 vim.g.neovide_background_color = "#0c0c0c"
-- 显示边框(仅限 macOS) vim.g.neovide_show_border = true
-- 位置动画时长 -- vim.g.neovide_position_animation_length = 0.15
-- 滚动动画时长 -- vim.g.neovide_scroll_animation_length = 0.3
-- 滚动时远端行数动画 -- vim.g.neovide_scroll_animation_far_lines = 1
-- 输入时隐藏鼠标 -- vim.g.neovide_hide_mouse_when_typing = false
-- 下划线自动缩放 -- vim.g.neovide_underline_stroke_scale = 1.0
-- 主题设置 vim.g.neovide_theme = 'dark' -- light, dark, auto
-- 刷新率 -- vim.g.neovide_refresh_rate = 60
-- 空闲时的刷新率 -- vim.g.neovide_refresh_rate_idle = 5
-- 强制重绘 -- vim.g.neovide_no_idle = true
-- 退出时确认 -- vim.g.neovide_confirm_quit = true
-- 退出时脱离连接 -- vim.g.neovide_detach_on_quit = 'always_quit'
-- 全屏模式 vim.g.neovide_fullscreen = false
-- 记住之前的窗口大小 vim.g.neovide_remember_window_size = ture
-- 开启性能分析器 -- vim.g.neovide_profiler = false
-- macOS 选项键作为 Meta 键 -- vim.g.neovide_input_macos_option_key_is_meta = 'only_left'
-- 启用 IME 输入 -- vim.g.neovide_input_ime = true
-- 触控屏幕的死区 -- vim.g.neovide_touch_deadzone = 6.0
-- 触控屏幕的拖动超时时间 -- vim.g.neovide_touch_drag_timeout = 0.17
-- 光标动画时长 -- vim.g.neovide_cursor_animation_length = 0.13
-- 光标轨迹大小 -- vim.g.neovide_cursor_trail_size = 0.8
-- 光标抗锯齿 -- vim.g.neovide_cursor_antialiasing = true
-- 在插入模式中动画光标 -- vim.g.neovide_cursor_animate_in_insert_mode = true
-- 切换到命令行时动画光标 -- vim.g.neovide_cursor_animate_command_line = true
-- 未聚焦时光标轮廓宽度 -- vim.g.neovide_cursor_unfocused_outline_width = 0.125
-- 平滑光标闪烁动画 -- vim.g.neovide_cursor_smooth_blink = false
-- 光标粒子效果模式 vim.g.neovide_cursor_vfx_mode = "railgun" -- 可设置为 "torpedo", "pixiedust", "sonicboom", "ripple", "wireframe", 或空字符串 ""
-- 粒子透明度 -- vim.g.neovide_cursor_vfx_opacity = 200.0
-- 粒子生命周期 -- vim.g.neovide_cursor_vfx_particle_lifetime = 1.2
-- 粒子密度 -- vim.g.neovide_cursor_vfx_particle_density = 7.0
-- 粒子速度 -- vim.g.neovide_cursor_vfx_particle_speed = 10.0
-- 粒子相位(仅适用于 railgun 模式) -- vim.g.neovide_cursor_vfx_particle_phase = 1.5
-- 粒子卷曲(仅适用于 railgun 模式) -- vim.g.neovide_cursor_vfx_particle_curl = 1.0end
------------------------------------------------- nvim-tree begin ---------------------------------------------- nvim-tree begin-- disable netrw at the very start of your init.luavim.g.loaded_netrw = 1vim.g.loaded_netrwPlugin = 1
-- optionally enable 24-bit colourvim.opt.termguicolors = true
-- empty setup using defaultsrequire("nvim-tree").setup()
-- OR setup with some optionsrequire("nvim-tree").setup({ sort = { sorter = "case_sensitive", }, view = { width = 30, }, renderer = { group_empty = true, }, filters = { dotfiles = true, },})------------------------------------------------ nvim-tree end -------------------------------------------------
local status, actions = pcall(require, "telescope.actions")if (not status) then returnend
------------------------------------------------ telescope begin -------------------------------------------------local actions = require('telescope.actions')-- Global remapping
require("telescope").setup { defaults = { mappings = { n = { ["q"] = actions.close, ["l"] = actions.file_edit } }, file_ignore_patterns = {"./node_modules"} }, extensions = { fzf = { fuzzy = true, -- false will only do exact matching override_generic_sorter = true, -- override the generic sorter override_file_sorter = true, -- override the file sorter case_mode = "smart_case" -- or "ignore_case" or "respect_case" -- the default case_mode is "smart_case" } }}
-- To get fzf loaded and working with telescope, you need to call-- load_extension, somewhere after setup function:require("telescope").load_extension("fzf")
--按键设置--vim.api.nvim_set_keymap("n", "<leader>ff", [[<cmd>lua require('telescope.builtin').find_files()<cr>]], {})--vim.api.nvim_set_keymap("n", "<leader>fg", [[<cmd>lua require('telescope.builtin').live_grep()<cr>]], {})--vim.api.nvim_set_keymap("n", "<leader>fb", [[<cmd>lua require('telescope.builtin').buffers()<cr>]], {})--vim.api.nvim_set_keymap("n", "<leader>fh", [[<cmd>lua require('telescope.builtin').help_tags()<cr>]], {})--vim.api.nvim_set_keymap("n", "<leader>sf", [[<cmd>lua require('telescope.builtin').file_browser()<cr>]], {})--vim.api.nvim_set_keymap("n", "<leader>/", [[<cmd>lua require'telescope.builtin'.current_buffer_fuzzy_find{}<CR>]], {})
local builtin = require('telescope.builtin')vim.keymap.set('n', '<leader>ff', builtin.find_files, {})vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})vim.keymap.set('n', '<leader>fb', builtin.buffers, {})vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})vim.keymap.set('n', '<leader>sf', builtin.current_buffer_tags, {})vim.keymap.set('n', '<leader>/', builtin.current_buffer_fuzzy_find, {})
------------------------------------------------ telescope end -------------------------------------------------
-------------------------------------------------- coc begin ----------------------------------------------------- https://raw.githubusercontent.com/neoclide/coc.nvim/master/doc/coc-example-config.lua
-- Some servers have issues with backup files, see #649vim.opt.backup = falsevim.opt.writebackup = false
-- Having longer updatetime (default is 4000 ms = 4s) leads to noticeable-- delays and poor user experiencevim.opt.updatetime = 300
-- Always show the signcolumn, otherwise it would shift the text each time-- diagnostics appeared/became resolvedvim.opt.signcolumn = "yes"
local keyset = vim.keymap.set-- Autocompletefunction _G.check_back_space() local col = vim.fn.col('.') - 1 return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nilend
-- Use Tab for trigger completion with characters ahead and navigate-- NOTE: There's always a completion item selected by default, you may want to enable-- no select by setting `"suggest.noselect": true` in your configuration file-- NOTE: Use command ':verbose imap <tab>' to make sure Tab is not mapped by-- other plugins before putting this into your configlocal opts = {silent = true, noremap = true, expr = true, replace_keycodes = false}keyset("i", "<TAB>", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "<TAB>" : coc#refresh()', opts)keyset("i", "<S-TAB>", [[coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"]], opts)
-- Make <CR> to accept selected completion item or notify coc.nvim to format-- <C-g>u breaks current undo, please make your own choicekeyset("i", "<cr>", [[coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"]], opts)
-- Use <c-j> to trigger snippetskeyset("i", "<c-j>", "<Plug>(coc-snippets-expand-jump)")-- Use <c-space> to trigger completionkeyset("i", "<c-space>", "coc#refresh()", {silent = true, expr = true})
-- Use `[g` and `]g` to navigate diagnostics-- Use `:CocDiagnostics` to get all diagnostics of current buffer in location listkeyset("n", "[g", "<Plug>(coc-diagnostic-prev)", {silent = true})keyset("n", "]g", "<Plug>(coc-diagnostic-next)", {silent = true})
-- GoTo code navigationkeyset("n", "gd", "<Plug>(coc-definition)", {silent = true})keyset("n", "gy", "<Plug>(coc-type-definition)", {silent = true})keyset("n", "gi", "<Plug>(coc-implementation)", {silent = true})keyset("n", "gr", "<Plug>(coc-references)", {silent = true})
-- Use K to show documentation in preview windowfunction _G.show_docs() local cw = vim.fn.expand('<cword>') if vim.fn.index({'vim', 'help'}, vim.bo.filetype) >= 0 then vim.api.nvim_command('h ' .. cw) elseif vim.api.nvim_eval('coc#rpc#ready()') then vim.fn.CocActionAsync('doHover') else vim.api.nvim_command('!' .. vim.o.keywordprg .. ' ' .. cw) endendkeyset("n", "K", '<CMD>lua _G.show_docs()<CR>', {silent = true})
-- Highlight the symbol and its references on a CursorHold event(cursor is idle)vim.api.nvim_create_augroup("CocGroup", {})vim.api.nvim_create_autocmd("CursorHold", { group = "CocGroup", command = "silent call CocActionAsync('highlight')", desc = "Highlight symbol under cursor on CursorHold"})
-- Symbol renamingkeyset("n", "<leader>rn", "<Plug>(coc-rename)", {silent = true})
-- Formatting selected codekeyset("x", "<leader>f", "<Plug>(coc-format-selected)", {silent = true})keyset("n", "<leader>f", "<Plug>(coc-format-selected)", {silent = true})
-- Setup formatexpr specified filetype(s)vim.api.nvim_create_autocmd("FileType", { group = "CocGroup", pattern = "typescript,json", command = "setl formatexpr=CocAction('formatSelected')", desc = "Setup formatexpr specified filetype(s)."})
-- Update signature help on jump placeholdervim.api.nvim_create_autocmd("User", { group = "CocGroup", pattern = "CocJumpPlaceholder", command = "call CocActionAsync('showSignatureHelp')", desc = "Update signature help on jump placeholder"})
-- Apply codeAction to the selected region-- Example: `<leader>aap` for current paragraphlocal opts = {silent = true, nowait = true}keyset("x", "<leader>a", "<Plug>(coc-codeaction-selected)", opts)keyset("n", "<leader>a", "<Plug>(coc-codeaction-selected)", opts)
-- Remap keys for apply code actions at the cursor position.keyset("n", "<leader>ac", "<Plug>(coc-codeaction-cursor)", opts)-- Remap keys for apply source code actions for current file.keyset("n", "<leader>as", "<Plug>(coc-codeaction-source)", opts)-- Apply the most preferred quickfix action on the current line.keyset("n", "<leader>qf", "<Plug>(coc-fix-current)", opts)
-- Remap keys for apply refactor code actions.keyset("n", "<leader>re", "<Plug>(coc-codeaction-refactor)", { silent = true })keyset("x", "<leader>r", "<Plug>(coc-codeaction-refactor-selected)", { silent = true })keyset("n", "<leader>r", "<Plug>(coc-codeaction-refactor-selected)", { silent = true })
-- Run the Code Lens actions on the current linekeyset("n", "<leader>cl", "<Plug>(coc-codelens-action)", opts)
-- Map function and class text objects-- NOTE: Requires 'textDocument.documentSymbol' support from the language serverkeyset("x", "if", "<Plug>(coc-funcobj-i)", opts)keyset("o", "if", "<Plug>(coc-funcobj-i)", opts)keyset("x", "af", "<Plug>(coc-funcobj-a)", opts)keyset("o", "af", "<Plug>(coc-funcobj-a)", opts)keyset("x", "ic", "<Plug>(coc-classobj-i)", opts)keyset("o", "ic", "<Plug>(coc-classobj-i)", opts)keyset("x", "ac", "<Plug>(coc-classobj-a)", opts)keyset("o", "ac", "<Plug>(coc-classobj-a)", opts)
-- Remap <C-f> and <C-b> to scroll float windows/popups---@diagnostic disable-next-line: redefined-locallocal opts = {silent = true, nowait = true, expr = true}keyset("n", "<C-f>", 'coc#float#has_scroll() ? coc#float#scroll(1) : "<C-f>"', opts)keyset("n", "<C-b>", 'coc#float#has_scroll() ? coc#float#scroll(0) : "<C-b>"', opts)keyset("i", "<C-f>", 'coc#float#has_scroll() ? "<c-r>=coc#float#scroll(1)<cr>" : "<Right>"', opts)keyset("i", "<C-b>", 'coc#float#has_scroll() ? "<c-r>=coc#float#scroll(0)<cr>" : "<Left>"', opts)keyset("v", "<C-f>", 'coc#float#has_scroll() ? coc#float#scroll(1) : "<C-f>"', opts)keyset("v", "<C-b>", 'coc#float#has_scroll() ? coc#float#scroll(0) : "<C-b>"', opts)
-- Use CTRL-S for selections ranges-- Requires 'textDocument/selectionRange' support of language serverkeyset("n", "<C-s>", "<Plug>(coc-range-select)", {silent = true})keyset("x", "<C-s>", "<Plug>(coc-range-select)", {silent = true})
-- Add `:Format` command to format current buffervim.api.nvim_create_user_command("Format", "call CocAction('format')", {})
-- " Add `:Fold` command to fold current buffervim.api.nvim_create_user_command("Fold", "call CocAction('fold', <f-args>)", {nargs = '?'})
-- Add `:OR` command for organize imports of the current buffervim.api.nvim_create_user_command("OR", "call CocActionAsync('runCommand', 'editor.action.organizeImport')", {})
-- Add (Neo)Vim's native statusline support-- NOTE: Please see `:h coc-status` for integrations with external plugins that-- provide custom statusline: lightline.vim, vim-airlinevim.opt.statusline:prepend("%{coc#status()}%{get(b:,'coc_current_function','')}")
-- Mappings for CoCList-- code actions and coc stuff---@diagnostic disable-next-line: redefined-locallocal opts = {silent = true, nowait = true}-- Show all diagnosticskeyset("n", "<space>a", ":<C-u>CocList diagnostics<cr>", opts)-- Manage extensionskeyset("n", "<space>e", ":<C-u>CocList extensions<cr>", opts)-- Show commandskeyset("n", "<space>c", ":<C-u>CocList commands<cr>", opts)-- Find symbol of current documentkeyset("n", "<space>o", ":<C-u>CocList outline<cr>", opts)-- Search workspace symbolskeyset("n", "<space>s", ":<C-u>CocList -I symbols<cr>", opts)-- Do default action for next itemkeyset("n", "<space>j", ":<C-u>CocNext<cr>", opts)-- Do default action for previous itemkeyset("n", "<space>k", ":<C-u>CocPrev<cr>", opts)-- Resume latest coc listkeyset("n", "<space>p", ":<C-u>CocListResume<cr>", opts)
-------------------------------------------------- coc end -----------------------------------------------------
------------------------------------------------- nvim-treesitter begin -------------------------------------------
require'nvim-treesitter.configs'.setup { -- A list of parser names, or "all" (the listed parsers MUST always be installed) ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline" },
-- Install parsers synchronously (only applied to `ensure_installed`) sync_install = false,
-- Automatically install missing parsers when entering buffer -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally auto_install = true,
-- List of parsers to ignore installing (or "all") ignore_install = { "javascript" },
---- 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,
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is -- the name of the parser) -- list of language that will be disabled disable = { "c", "rust" }, -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files disable = function(lang, buf) local max_filesize = 100 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end end,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time. -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). -- Using this option may slow down your editor, and you may see some duplicate highlights. -- Instead of true it can also be a list of languages additional_vim_regex_highlighting = false, },}---------------------------------------------------- nvim-treesitter end ------------------------------------------
------------------------------------------------------------------------------------------------------------------ vim.opt.tabstop = 4
-- 编码方式 utf8vim.g.encoding = "UTF-8"vim.o.fileencoding = "utf-8"-- jkhl 移动时光标周围保留8行vim.o.scrolloff = 8vim.o.sidescrolloff = 8-- 显示行号vim.wo.number = true-- 使用相对行号-- vim.wo.relativenumber = true-- vim.opt.number = true -- 显示行号vim.cmd([[highlight LineNr guifg=#FFFF00]])-- 高亮所在行vim.wo.cursorline = true-- 显示左侧图标指示列vim.wo.signcolumn = "yes"-- 右侧参考线vim.wo.colorcolumn = "160"-- 缩进字符vim.o.tabstop = 4vim.bo.tabstop = 4vim.o.softtabstop = 4vim.o.shiftround = true-- >> << 时移动长度vim.o.shiftwidth = 4vim.bo.shiftwidth = 4-- 空格替代vim.o.expandtab = truevim.bo.expandtab = true-- 新行对齐当前行vim.o.autoindent = truevim.bo.autoindent = truevim.o.smartindent = true-- 搜索大小写不敏感,除非包含大写vim.o.ignorecase = truevim.o.smartcase = true-- 搜索高亮vim.o.hlsearch = truevim.o.incsearch = true-- 命令模式行高vim.o.cmdheight = 1-- 自动加载外部修改vim.o.autoread = truevim.bo.autoread = true-- 自动折行vim.wo.wrap = true-- 光标在行首尾时<Left><Right>可以跳到下一行vim.o.whichwrap = "<,>,[,]"-- 允许隐藏被修改过的buffervim.o.hidden = true-- 鼠标支持vim.o.mouse = "c"-- 禁止创建备份文件vim.o.backup = falsevim.o.writebackup = falsevim.o.swapfile = false-- smaller updatetimevim.o.updatetime = 300vim.o.timeoutlen = 500vim.o.splitbelow = truevim.o.splitright = true-- 自动补全不自动选中vim.g.completeopt = "menu,menuone,noselect,noinsert"-- 样式vim.o.background = "dark"vim.o.termguicolors = truevim.opt.termguicolors = true-- 不可见字符的显示,这里只把空格显示为一个点vim.o.list = falsevim.o.listchars = "space:·,tab:>-"vim.o.wildmenu = truevim.o.shortmess = vim.o.shortmess .. "c"-- 补全显示10行vim.o.pumheight = 10vim.o.clipboard = "unnamedplus"
-------------------------------------------------------------------------------------------------------------来源:CSDN 原文,首次发布于 2024-07-11。