我的nvim的init.lua配置

nvim的配置文件路径在~/.config/nvim路径下:

一、目录如下:

在这里插入图片描述

  • coc-settings.json文件是配置代码片段路径的文件
  • init.lua配置文件的启动脚本
  • lua/config.lua 全局配置文件
  • lua/keymaps.lua 快捷键映射键文件
  • lua/plugins.lua 插件的安装和配置文件
  • packer_compiled.lua 安装packer产生的配置文件,该文件中会存在packer安装插件

二、配置

coc-settings.json文件

{"snippets.ultisnips.pythonPrompt": false,"snippets.ultisnips.directories": ["~/.config/coc/ultisnips","~/.local/share/nvim/site/pack/packer/start/vim-snippets.git/UltiSnips"]
}

init.lua

require "plugins"
require "config"
require "keymaps"

config.lua

--搜索相关
vim.opt.number = true -- 显示行号
vim.opt.showcmd = true -- 在底部显示当前命令
vim.opt.wildmenu = true -- 启用命令行补全菜单
vim.opt.wildmode = "longest:full,full" -- 优化补全行为
vim.opt.incsearch = true -- 启用增量搜索
vim.opt.hlsearch = true -- 高亮显示搜索结果
vim.opt.incsearch = true -- 增量搜索(输入时实时匹配)
vim.opt.ignorecase = true -- 搜索时忽略大小写
vim.opt.smartcase = true -- 如果搜索模式包含大写字母,则区分大小写
vim.opt.showmatch = true -- 高亮显示匹配的括号--界面相关
vim.opt.laststatus=2 -- 总是显示状态栏
vim.opt.showmode = true -- 显示当前模式(如 INSERT、NORMAL)
vim.opt.ruler = true -- 显示光标位置(行号、列号)
vim.opt.scrolloff=5 -- 光标距离顶部/底部的最小行数
--vim.opt.guifont= "Consolas:h12" -- 设置 GUI 字体(仅适用于 GUI 版本的 Neovim)
vim.opt.guifont = "FiraCode Nerd Font:h12"--缩进相关
vim.opt.autoindent = true -- 自动缩进
vim.opt.smartindent = true -- 智能缩进
vim.opt.cindent = true -- C 语言风格的缩进
vim.opt.tabstop=4 -- Tab 键的宽度为 4 个空格
vim.opt.softtabstop=4 -- 编辑时 Tab 键的宽度为 4 个空格
vim.opt.shiftwidth=4 -- 自动缩进时的宽度为 4 个空格
vim.opt.expandtab = true -- 将 Tab 转换为空格--编码相关
vim.opt.encoding="utf-8"  -- 默认编码为 UTF-8
vim.opt.fileencoding="utf-8" -- 文件保存时的编码为 UTF-8
vim.opt.fileencodings="ucs-bom,utf-8,cp936,latin1,gb18030,gbk,gb2312,chinese" -- 文件编码探测顺序
vim.opt.fileformats="unix,dos" -- 文件换行符格式(Unix 和 DOS)--其他配置
vim.opt.linebreak = true -- 在单词边界换行
vim.opt.wrap = true -- 自动换行
vim.opt.mouse="" --禁用鼠标支持
vim.opt.compatible = false -- 禁用 Vi 兼容模式
vim.opt.backspace = "indent,eol,start" -- 允许退格键删除缩进、换行符和插入模式前的字符
vim.opt.endofline = false -- 不自动添加换行符
vim.opt.list = true -- 显示不可见字符(如 Tab、空格)
--vim.opt.listchars = {tab = '¦\\'}
vim.opt.syntax = "on" -- 启用语法高亮
vim.opt.timeoutlen=130 -- 快捷键超时时间(毫秒)
vim.cmd('filetype plugin on') -- 启用文件类型检测和插件vim.opt.list = true -- 启用显示不可见字符
vim.opt.listchars = {tab = '│ ', -- 用 │ 表示 Tabtrail = '·', -- 用 · 表示行尾空格extends = '›', -- 用 › 表示超出屏幕的文本precedes = '‹', -- 用 ‹ 表示超出屏幕的文本nbsp = '␣', -- 用 ␣ 表示非断行空格
}vim.opt.cursorline = true -- 启用光标所在行高亮
vim.opt.cursorcolumn = true -- 启用光标所在列高亮
vim.opt.termguicolors = true --启用真彩色

keymaps.lua

--前进和后退的快捷键
vim.keymap.set({"n", "v"}, 'fh', '^', {noremap=true, silent=true})
vim.keymap.set({"n", "v"}, 'fl', '$', {noremap=true, silent=true})--返回normal模式
vim.keymap.set({"i", "v"}, 'fj', '<ESC>', {noremap=true, silent=true})--查看系统函数
vim.keymap.set('n', '?', '<s-k>', {noremap=true, silent=true})--写入和保存
vim.keymap.set('n', 'W', ':w!<CR>', {noremap=true, silent=true})
vim.keymap.set('n', 'Q', ':q!<CR>', {noremap=true, silent=true})--输入命令
vim.keymap.set('n', '<space>', ':', {noremap=true})
vim.keymap.set('n', '<12>', ':TagbarToggle<CR>', {noremap=true, silent=true})--分屏的设置快捷键
vim.keymap.set('n', 'sl', ':set splitright<CR>:vsplit<CR>', {noremap=true, silent=true})
vim.keymap.set('n', 'sh', ':set nosplitright<CR>:vsplit<CR>', {noremap=true, silent=true})
vim.keymap.set('n', 'sk', ':set nosplitbelow<CR>:split<CR>', {noremap=true, silent=true})
vim.keymap.set('n', 'sj', ':set splitbelow<CR>:split<CR>', {noremap=true, silent=true})--移动分屏的设置快捷键
vim.keymap.set('n', '<s-l>', '<c-w>l', {noremap=true, silent=true})
vim.keymap.set('n', '<s-h>', '<c-w>h', {noremap=true, silent=true})
vim.keymap.set('n', '<s-k>', '<c-w>k', {noremap=true, silent=true})
vim.keymap.set('n', '<s-j>', '<c-w>j', {noremap=true, silent=true})--设置函数前进和后退的快捷键
vim.keymap.set('n', '<s-o>', '<c-o>', {noremap=true, silent=true})
vim.keymap.set('n', '<s-i>', '<c-i>', {noremap=true, silent=true})--调整尺寸的快捷键
vim.keymap.set({"n", "v"}, '<up>', ':res +5<CR>', {noremap=true, silent=true})
vim.keymap.set({"n", "v"}, '<down>', ':res -5<CR>', {noremap=true, silent=true})
vim.keymap.set({"n", "v"}, '<left>', ':vertical resize-5<CR>', {noremap=true, silent=true})
vim.keymap.set({"n", "v"}, '<right>', ':vertical resize+5<CR>', {noremap=true, silent=true})--ctags插件
vim.keymap.set({"n"}, ';', 'g<c-]>', {noremap=true, silent=true})

plugins.lua

vim.cmd [[packadd packer.nvim]]return require('packer').startup(function(use)use {'https://gitee.com/oyaay/nvim-web-devicons.git'}use {'https://gitee.com/cangmj/lualine.nvim.git',requires = { 'oyaay/nvim-web-devicons', opt = true }}use { 'https://gitee.com/cc906979421/vim-gutentags.git'}use { 'https://gitee.com/trunkMode/nerdtree.git'}use { 'https://gitee.com/HXXH2022/ale.git'}use { 'https://gitee.com/cc906979421/coc.nvim.git', branch='release'}use { 'https://gitee.com/zgpio/nvim-treesitter.git', run = ':TSUpdate'}use { 'https://gitee.com/hwyang/vim-snippets.git'}use { 'https://gitee.com/yaozhijin/tagbar.git'}use { 'https://gitee.com/neopack/tokyonight.nvim.git'}use { 'https://gitee.com/dglxlcl/vim-signify.git'}use { 'https://gitee.com/ProVim/vim-easymotion.git' }use { 'https://gitee.com/mirrors_jiangmiao/auto-pairs.git'}use { 'https://gitee.com/rockmanlc/molokai.git'}use {'https://gitee.com/cc906979421/telescope.nvim', tag = '0.1.8',requires = { {'https://gitee.com/oyaay/plenary.nvim.git'} }}-- Packer can manage itselfuse 'yunduozhai/packer.nvim'--***************************----      lualine.nvim         ----***************************--require('lualine').setup {options = {theme = 'tokyonight',  -- 设置主题icons_enabled = true,  -- 启用图标component_separators = { left = '', right = '' },section_separators = { left = '', right = '' },},sections = {lualine_a = {'mode'},lualine_b = {'branch', 'diff', 'diagnostics'},lualine_c = {'filename'},lualine_x = {'encoding', 'fileformat', 'filetype'},lualine_y = {'progress'},lualine_z = {'location'}}}--***************************----       nerdtree           ----***************************---- 打开/关闭 NERDTree 的快捷键vim.api.nvim_set_keymap('n', '<F12>', ':NERDTreeToggle<CR>', { noremap = true, silent = true })--***************************----       gutentags           ----***************************---- 配置 vim-gutentagsvim.g.gutentags_enabled = true  -- 启用 gutentagsvim.g.gutentags_ctags_executable = 'ctags'  -- 指定 ctags 可执行文件vim.g.gutentags_cache_dir = vim.fn.expand('~/.cache/nvim/tags')  -- 设置缓存目录vim.g.gutentags_project_root = { '.git', '.svn', '.root' }  -- 项目根目录标记vim.g.gutentags_generate_on_new = true  -- 新建文件时生成 tagsvim.g.gutentags_generate_on_missing = true  -- 缺少 tags 时生成vim.g.gutentags_generate_on_write = true  -- 保存文件时更新 tags--***************************----       indentline          ----***************************----***************************----        coc.nvim           ----***************************--vim.opt.backup = falsevim.opt.writebackup = falsevim.opt.signcolumn = "yes"local keyset = vim.keymap.setfunction _G.check_back_space()local col = vim.fn.col('.') - 1return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nilendlocal opts = {silent = true, noremap = true, expr = true, replace_keycodes = false}keyset("i", "<c-j>", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "<TAB>" : coc#refresh()', opts)keyset("i", "<c-k>", [[coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"]], opts)keyset("i", "<cr>", [[coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"]], opts)-- 自动安装 coc 插件vim.g.coc_global_extensions = {'coc-json','coc-tsserver','coc-clangd','coc-go','coc-html','coc-snippets','coc-highlight','coc-spell-checker','coc-marketplace'}--***************************----        vim-snippets       ----***************************---- 设置全局变量vim.g.coc_snippet_next = '<C-l>'  -- 使用 Ctrl+j 跳转到下一个占位符vim.g.coc_snippet_prev = '<C-h>'  -- 使用 Ctrl+k 跳转到上一个占位符--***************************----        treesitter         ----***************************--require('nvim-treesitter.configs').setup {-- 启用语法高亮highlight = {enable = true,additional_vim_regex_highlighting = false,},-- 启用代码缩进indent = {enable = true,},-- 启用增量选择incremental_selection = {enable = true,keymaps = {init_selection = 'gnn',  -- 进入增量选择模式node_incremental = 'grn',  -- 扩展选择范围scope_incremental = 'grc',  -- 扩展选择范围到整个作用域node_decremental = 'grm',  -- 缩小选择范围},},-- 启用代码折叠fold = {enable = false,},-- 启用自动安装语法解析器ensure_installed = {'bash', 'c', 'cpp', 'css', 'go', 'html', 'java', 'javascript', 'json','lua', 'python', 'rust', 'typescript', 'vim', 'yaml', 'markdown',},textobjects = {enable = true,},}--***************************----      tokyonight           ----***************************----require('tokyonight').setup({--   style = 'night',  -- 可选值:'night', 'storm', 'day', 'moon'--})--vim.cmd('colorscheme tokyonight')--***************************----      molokai           ----***************************--                       -- 启用背景透明                                             vim.g.molokai_original = 1vim.g.rehash256 = 1-- 设置主题                                                     vim.cmd('colorscheme molokai')--***************************----      easymotion.nvim      ----***************************---- 配置 easymotionvim.g.EasyMotion_do_mapping = 0 -- 禁用默认快捷键vim.g.EasyMotion_smartcase = 1  -- 启用智能大小写vim.g.EasyMotion_startofline = 0 -- 跳转时保持光标位置-- 设置快捷键vim.api.nvim_set_keymap('n', 's', '<Plug>(easymotion-overwin-f2)', { noremap = true, silent = true })--***************************----        telescope          ----***************************--local builtin = require('telescope.builtin')vim.keymap.set('n', '<s-p>', builtin.find_files, { desc = 'Telescope find files' })vim.keymap.set('n', '<c-f>', builtin.live_grep, { desc = 'Telescope live grep' })vim.keymap.set('n', '<s-b>', builtin.buffers, { desc = 'Telescope buffers' })vim.keymap.set('n', '<s-f>', builtin.current_buffer_fuzzy_find, { desc = 'Telescope current_buffer_fuzzy_find' })vim.keymap.set('n', '<s-m>', builtin.marks, { desc = 'Telescope marks' })--telescope--获取当前光标下的单词并进行搜索,依赖telescope的live grep功能local builtin = require('telescope.builtin')local function search_selected_text()local selected_text = vim.fn.expand('<cword>')if selected_text == "" thenprint("No text selected")returnendbuiltin.live_grep({ default_text = selected_text })endvim.api.nvim_create_user_command('SearchSelectedText', search_selected_text, {})vim.api.nvim_set_keymap('n', '<c-k>', ':SearchSelectedText<CR>', { noremap = true, silent = true })--***************************----        tagbar         ----***************************---- 打开/关闭 Tagbar 的快捷键vim.api.nvim_set_keymap('n', '<F9>', ':TagbarToggle<CR>', { noremap = true, silent = true })-- 设置 Tagbar 宽度vim.g.tagbar_width = 30-- 自动聚焦到 Tagbarvim.g.tagbar_autofocus = 1--***************************----          signify          ----***************************---- 启用 signifyvim.g.signify_enable = 1-- 设置 signify 的符号vim.g.signify_sign_add = "✚"vim.g.signify_sign_change = "➜"vim.g.signify_sign_delete = "✖"vim.g.signify_sign_delete_first_line = "‾"vim.g.signify_sign_change_delete = "~_"-- 设置 signify 的更新延迟(单位:毫秒)vim.g.signify_update_on_bufenter = 1vim.g.signify_update_on_focusgained = 1-- 设置 signify 的优先级(避免与其他插件冲突)vim.g.signify_priority = 5-- 设置 signify 的 Git 支持vim.g.signify_vcs_list = { "git" }-- 显示更改的详细信息vim.api.nvim_set_keymap("n", "<F10>", ":SignifyDiff<CR>", { noremap = true, silent = true })end)

三、路径

coc.nvim插件安装其他插件的路径(例如:coc-go, coc-clangd 等等):~/.config/coc
其他插件的下载路径:~/.local/share/nvim

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

权限掩码umask

1 、 设置新建文件或目录的默认权限 在 Linux 系统中&#xff0c;当用户创建一个新的文件或目录时&#xff0c;系统都会为新建的文件或目录分配默认的权限&#xff0c;该默认权限与umask 值有关&#xff0c;其具体关系是&#xff1a; 新建文件的默认权限 0666-umask 值 新建…

Kubernetes Gateway API-5-后端协议和网关基础设置标签

1 后端协议 自 v1.2.0 开始支持 并非所有网关API实现都支持自动协议选择。在某些情况下&#xff0c;协议在没有明确选择加入的情况下被禁用。 当 Route 的后端引用Kubernetes Service 时&#xff0c;应用程序开发人员可以使用 ServicePort appProtocol 字段指定协议。 例如…

C++语言的网络编程

C语言的网络编程 引言 随着互联网的迅猛发展&#xff0c;网络编程已成为软件开发的重要组成部分。C作为一种高效的编程语言&#xff0c;因其出色的性能和灵活性&#xff0c;广泛应用于网络编程领域。本文将介绍C网络编程的基本概念、常用的网络库&#xff0c;以及一些具体的应…

考试座位号(PTA)C语言

每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试…

宝安湾区之光附近的钓鱼点

工作日的午休我经常在公司附近骑行&#xff0c;有时候也会骑行到宝安的湾区之光。但是我最感兴趣的除了湾区之光摩天轮&#xff0c;还有雷打不动的快乐钓鱼佬。 上图红框区域的河岸每天都会出现零零散散的快乐钓鱼佬&#xff0c;他们好像都有自己的钓鱼窝点。我发现来这里钓鱼也…

GNU链接器简介-3

GNU链接器简介-3 1 SECTIONS Command1.1 Output Section Description2.2 Output Section Name1.3 Output Section Address1.4 Input Section Description1.4.1 Input Section Basics1.4.2 Input Section Wildcard Patterns1.4.3 Input Section for Common Symbols1.4.4 Input S…

【练习】PAT 乙 1022 D进制的A+B

题目 输入两个非负10进制整数A和B(<2^30-1)&#xff0c;输出AB的D (1 < D < 10)进制数。 输入格式 输入在一行中依次给出3个整数A、B和D。 输出格式 输出AB的D进制数。 输入样例 123 456 8 输出样例 1103 来源&#xff1a;PAT 乙 1022 D进制的AB ——————————…

音视频-----RTSP协议 音视频编解码

流媒体协议详解&#xff1a;RTSP、RTP、RTCP、SIP、SDP、RTMP、WebRTC、WebSocket-CSDN博客 上文讲解比较清楚 多媒体编解码基础知识 一文详解WebRTC、RTSP、RTMP、SRT-腾讯云开发者社区-腾讯云 流媒体协议简介 &#xff08;整理&总结&#xff09;-CSDN博客 RTP :(Real-…

实时数仓与离线数仓的全面对比

在大数据和数据仓库的领域&#xff0c;实时数仓和离线数仓是两种常见的架构。它们分别适用于不同的业务场景&#xff0c;具有不同的技术特点、实现方式和使用场景。 下面将从底层原理、架构、技术实现、数据处理方式等多个方面对这两者进行详细对比。 1. 基本定义 实时数仓&…

家教老师预约平台小程序系统开发方案

家教老师预约平台小程序系统将连接学生/家长与家教老师&#xff0c;提供一站式的家教服务预约体验。 一、用户需求分析1、家教老师&#xff1a;希望获得更多的学生资源&#xff0c;通过平台展示自己的教学特长和经验&#xff0c;管理个人日程&#xff0c;接收并确认预约请求&a…

头歌python实验:网络安全应用实践-恶意流量检测

第1关:re 库的使用 本关任务:编写一个能正则匹配出 ip 地址的小程序。 re 的主要功能函数 常用的功能函数包括: compile、search、match、split、findall(finditer)、sub(subn)。 re.search 函数 re.search 扫描整个字符串并返回第一个成功的匹配。 函数语法: re…

第1章:Go语言入门

第1章&#xff1a;Go语言入门 1. Go语言概述 1.1 语言历史 Go语言&#xff08;Golang&#xff09;是由Google公司于2007年开始开发&#xff0c;并于2009年正式开源的编程语言。其主要创始人包括&#xff1a; Rob Pike&#xff08;Unix和Plan 9操作系统的创始人之一&#xf…

Linux 系统安装 NCBI Blast + A Quick Guide

前言 NCBI BLAST&#xff08;Basic Local Alignment Search Tool&#xff09;是由美国国家生物技术信息中心&#xff08;NCBI&#xff09;开发的一个深受生物信息学研究者青睐的基因序列比对工具。作为生物序列信息比对的行业标准&#xff0c;BLAST可用于分析核酸&#xff08;…

嵌入式科普(26)为什么heap通常8字节对齐

目录 一、概述 二、newlibc heap 2.1 stm32cubeide .ld heap 2.2 e2studio .ld heap 三、glibc源码 3.1 Ubuntu c heap 四、总结 一、概述 结论&#xff1a;在嵌入式c语言中&#xff0c;heap通常8字节对齐 本文主要分析这个问题的分析过程 二、newlibc heap newlibc…

JVM调优,参数在哪里设置的?

JVM调优&#xff0c;参数在哪里设置的&#xff1f; 在Java应用程序中&#xff0c;JVM&#xff08;Java Virtual Machine&#xff09;的调优通常通过设置JVM启动参数来实现。这些参数可以控制JVM的内存分配、垃圾回收策略、线程管理、性能优化等方面。 1. JVM参数的位置 JVM参…

nginx学习之路-nginx配置https服务器

文章目录 1. 生成证书2. 配置证书1. 拷贝证书文件2. 修改conf/nginx.conf文件内容 3. 查看效果1. 重载配置2. 访问 1. 生成证书 在linux系统下执行&#xff0c;使用openssl命令。&#xff08;windows环境也可以使用cmder&#xff09; # 1. 生成私钥 server2025.key(无密码保护…

VulnHub—potato-suncs

使用命令扫描靶机ip arp-scan -l 尝试访问一下ip 发现一个大土豆没什么用 尝试扫描一下子域名 没有发现什么有用的信息 尝试扫描端口 namp -A 192.168.19.137 -p- 尝试访问一下端口,发现都访问不进去 查看源代码发现了网页的标题 potato&#xff0c;就想着爆破一下密码 hydr…

【AI部署】腾讯云每月1w小时免费GPU获取

一、如何进入活动页面 进入腾讯云官网&#xff0c;点击控制台&#xff1a; https://curl.qcloud.com/zl1rLuMf 点击工具&#xff0c;进入CloudStudio&#xff1a; 找到高性能工作空间&#xff0c;每月会有1w分钟的免费时长&#xff1a; 二、创建AI模版 点击直接创建 选择…

使用 `llama_index` 构建智能问答系统:多种文档切片方法的评估

使用 llama_index 构建智能问答系统&#xff1a;多种文档切片方法的评估 代码优化与解析1. **代码结构优化**2. **日志管理**3. **环境变量管理**4. **模型初始化**5. **提示模板更新**6. **问答函数优化**7. **索引构建与查询引擎**8. **节点解析器测试** 总结 在现代自然语言…

开源平台Kubernetes的优势是什么?

Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统&#xff0c;其服务、支持和工具的使用范围广泛。 Kubernetes 这个名字源于希腊语&#xff0c;意…