代码之家  ›  专栏  ›  技术社区  ›  Bippan Kumar

保存时删除在nvim中添加的空白

  •  0
  • Bippan Kumar  · 技术社区  · 1 年前

    我正在使用LazyVim配置neovim,我已经关闭了保存时的格式,现在当我保存时,会在我不想要的特定位置添加空白。如何在保存时停止添加此空白 enter image description here

    0 回复  |  直到 1 年前
        1
  •  0
  •   lcheylus    1 年前

    使用Lua中的Neovim自动命令,您可以在保存文件时修剪行末的空白。

    在以下代码中,此自动命令仅用于某些已定义的文件类型(C/C++、Lua、Java…)。你可以使用 pattern='*' 在每个文件上运行这个自动命令。将其添加到您的Lua配置中。

    vim.api.nvim_create_autocmd('FileType', {
      group = vim.api.nvim_create_augroup('trim_whitespaces', { clear = true }),
      desc = 'Trim trailing white spaces',
      pattern = 'bash,c,cpp,lua,java,go,php,javascript,make,python,rust,perl,sql,markdown',
      callback = function()
        vim.api.nvim_create_autocmd('BufWritePre', {
          pattern = '<buffer>',
          -- Trim trailing whitespaces
          callback = function()
            -- Save cursor position to restore later
            local curpos = vim.api.nvim_win_get_cursor(0)
            -- Search and replace trailing whitespaces
            vim.cmd([[keeppatterns %s/\s\+$//e]])
            vim.api.nvim_win_set_cursor(0, curpos)
          end,
        })
      end,
    })