Skip to content

wizarttk/undotree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Undotree

A neovim undotree plugin written in lua.

Screenshot

undotree

Requirements

  • nvim 0.7.0 or above

Download and Install

Using Vim's built-in package manager:

mkdir -p ~/.config/nvim/pack/github/start/
cd ~/.config/nvim/pack/github/start/
git clone https://github.com/nvim-lua/plenary.nvim.git
git clone https://github.com/jiaoshijie/undotree.git

Using vim-plug

Plug 'nvim-lua/plenary.nvim'
Plug 'jiaoshijie/undotree'

Using packer.nvim

use {
  "jiaoshijie/undotree",
  requires = {
    "nvim-lua/plenary.nvim",
  },
}

Usage

Basic setup

require('undotree').setup()

If using packer.nvim gitsigns can be setup directly in the plugin spec:

use {
  "jiaoshijie/undotree",
  config = function()
    require('undotree').setup()
  end,
  requires = {
    "nvim-lua/plenary.nvim",
  },
}

Configuration can be passed to the setup function. Here is an example with the default settings:

local undotree = require('undotree')

undotree.setup({
  float_diff = true,  -- using float window previews diff, set this `true` will disable layout option
  layout = "left_bottom", -- "left_bottom", "left_left_bottom"
  ignore_filetype = { 'Undotree', 'UndotreeDiff', 'qf', 'TelescopePrompt', 'spectre_panel', 'tsplayground' },
  window = {
    winblend = 30,
  },
  keymaps = {
    ['j'] = "move_next",
    ['k'] = "move_prev",
    ['J'] = "move_change_next",
    ['K'] = "move_change_prev",
    ['<cr>'] = "action_enter",
    ['p'] = "enter_diffbuf",
    ['q'] = "quit",
  },
})

You can directly use :lua require('undotree').toggle() for toggling undotree panel, or set the following keymaps for convenient using.

vim.keymap.set('n', '<leader>u', require('undotree').toggle, { noremap = true, silent = true })

-- or
vim.keymap.set('n', '<leader>uo', require('undotree').open, { noremap = true, silent = true })
vim.keymap.set('n', '<leader>uc', require('undotree').close, { noremap = true, silent = true })
  1. Some Mappings
Mappings Action
j jump to next undo node
k jump to prev undo node
J jump to next undo node and undo to this state
K jump to prev undo node and undo to this state
q quit undotree
p jump into the undotree diff window
Enter undo to this state

License

MIT

Reference

About

neovim undotree written in lua

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%