A small Neovim plugin to remove trailing whitespace and empty lines at end of file on every save
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tiyn 1b83aba8f0
check if buffer is modifiable
4 months ago
.github/workflows ci: attribute doc workflow commits only to the bot 10 months ago
doc chore(build): auto-generate vimdoc 6 months ago
lua/tidy check if buffer is modifiable 4 months ago
README.md Update README.md 4 months ago


tidy.nvim 🧹

tidy.nvim removes trailing white space and empty lines on BufLeave.



  • Remove white space at the end of every line on save
  • Remove empty lines at the end of the buffer on save


  • Neovim >= 0.9.0

It may (should) work on lower versions, but is tested and updated using nightly.


Your installation configuration will depend on your plugin manager. Below is the basic installation (using default options) for lazy.nvim.

    config = true,


tidy.nvim comes with the following options and their default settings:

    	filetype_exclude = {}  -- Tidy will not be enabled for any filetype, e.g. "markdown", in this table

A more full example configuration for lazy.nvim would be:

    opts = {
        filetype_exclude = { "markdown", "diff" }
    init = function()
        vim.keymap.set('n', "<leader>te", require("tidy").toggle, {})


tidy.nvim comes with the following functions:

Lua Description
require("tidy").toggle() Turn tidy.nvim off for the current buffer a plugin

About and Credits

I originally wrote this as a wrapper around a couple of vim regex commands used for formatting files before I began using formatters. These commands are not mine, please see the sources below. Even with real formatters in my setup now, I still like and use this because I like these specific formats to be applied to every buffer and don't want to have a formatting tool installed for them.