一位有经验的(Neo)Vimmer 的工作流程

这是一篇关于 Neovim 工作流程的博客文章,主要介绍了如何优化 Neovim 以提高开发效率,包含多个方面的内容:

  • 动机:作者因电脑无法同时运行 Visual Studio Code 和 Windows 而开始使用 Vim,历经多年不断优化自己的 Neovim 配置,希望能激励读者打造个性化开发环境。同时介绍了使用的工具如 lua、lazy.nvim 等,并提供了SeniorMars’ Dotfiles
  • 改善 (Neo)Vim 体验

    • 搜索和替换:通过设置vim.opt.ignorecasevim.opt.smartcasevim.opt.inccommand实现大小写敏感和实时预览搜索结果,介绍了相关快捷键如<leader>sr*等,还提到了使用rg的插件mhinz/vim-greppersmjonas/live-command.nvim实现类似:norm的命令。
    • Ex 命令和g命令:设置vim.opt.wildmodevim.opt.wildignorevim.opt.suffixesadd来过滤搜索结果,介绍了插件gelguy/wilder.nvim用于 Ex 命令的模糊查找,提高搜索效率。
  • 撤销和重做:启用vim.opt.undofile保存撤销历史,添加快捷键如,.等增强撤销功能,使用插件mbbill/undotree查看撤销树,结合AutoSession保存项目的窗口、缓冲区和撤销历史。
  • 移动:设置vim.opt.splitbelowvim.opt.splitright控制窗口分割方向,介绍了各种移动窗口和文本的快捷键,如<space>h<space>j等,还提到了一些自动命令和插件如tpope/vim-repeatkylechui/nvim-surroundwindwp/nvim-autopairswellle/targets.vim等,用于重复命令、包围文本对象、自动配对等。
  • 更好的快速修复:使用插件kevinhwang91/nvim-bqf方便地导航快速修复列表,如<leader>cn<leader>cp
  • 拼写检查:通过函数SpellToggle切换拼写检查,使用语言服务器ltex进行拼写检查,快捷键为<leader>5<leader>z
  • 状态行:自定义状态行显示当前模式、语言、分支名、文件路径、git 状态、单词计数等信息,通过自动命令BufEnterBufWritePostWinResized更新缓存,设置vim.opt.statusline来显示状态行。
  • 格式化:使用插件sbdchd/neoformat进行代码格式化,添加快捷键<leader>3调用FixWhitespace去除尾随空格,还可以使用class =gq进行格式化。
  • 更好的 netrw:设置vim.g.netrw_bannervim.g.netrw_browse_split等参数来优化 netrw 文件浏览器的显示和行为,使用gx在浏览器中打开文件。
  • Git 集成:使用插件tpope/vim-fugitive进行 Git 控制,如:<leader>gg打开 Git 界面、:<leader>ga添加文件等,还设置 Neovim 为合并工具和差异工具,使用diffgetdiffput进行合并。
  • 充分发挥 Neovim 的功能

    • Tree-sitter:介绍 Tree-sitter 的作用和优势,用于实时编辑上下文的语法高亮、代码折叠、函数参数交换、函数重构等,设置相关插件如numToStr/Comment.nvimnvim-treesitter/nvim-treesitter等,并展示了在包含 Rust、Markdown 和 LaTeX 的文件中使用 Tree-sitter 进行语法高亮的效果。
    • 更好的终端:使用插件akinsho/toggleterm.nvim创建持久的、可定制的终端,结合LazyGit实现高效的 Git 操作,设置终端的相关配置如shade_terminalshighlights等。
    • Telescope:用于在开发环境中快速查找文件、代码、文档等,设置插件nvim-telescope/telescope.nvimtelescope-frecency.nvim,自定义预览器new_maker处理大文件的预览,映射各种快捷键如<leader><leader>f<leader>fl等用于不同的查找操作。
    • 补全:使用coc.nvim进行代码补全,设置相关快捷键如<TAB><S-TAB><cr>等,结合 quickfix 列表显示诊断信息,还使用zbirenbaum/copilot.lua生成样板代码和测试用例,设置其相关配置如panelsuggestion等。
    • LaTeX:使用插件lervag/vimtex改善 LaTeX 编辑体验,设置vim.g.vimtex_quickfix_mode等参数,结合sioyek自动编译和查看 LaTeX 文档,使用latexindent格式化 LaTeX 文档。
  • 结论:作者希望读者能从中学到新东西,打造个性化的 Neovim 配置,提高开发效率,并欢迎读者提问和交流。
阅读 14
0 条评论