kdheepak/lazygit.nvim

github github
git plugin
star 194
stars
alert-circle 5
open issues
users 2
subscribers
git-branch 11
forks
CREATED

2020-04-03

UPDATED

3 months ago

packer

require('packer').startup(function()
  use 'kdheepak/lazygit.nvim'
end)

paq

require "paq" { 
  'kdheepak/lazygit.nvim'
}

lazygit.nvim

Plugin for calling lazygit from within neovim.

See akinsho/nvim-toggleterm as an alternative to this package.

Install

Install using vim-plug:

" nvim v0.5.0
Plug 'kdheepak/lazygit.nvim'

Feel free to use any plugin manager. Just remember that if you are not using the latest neovim release, you will need to use the nvim-v0.4.3 branch. Integration with nvr works better on the main branch.

You can check what version of neovim you have:

nvim --version

Usage

The following are configuration options and their defaults.

let g:lazygit_floating_window_winblend = 0 " transparency of floating window
let g:lazygit_floating_window_scaling_factor = 0.9 " scaling factor for floating window
let g:lazygit_floating_window_corner_chars = ['╭', '╮', '╰', '╯'] " customize lazygit popup window corner characters
let g:lazygit_floating_window_use_plenary = 0 " use plenary.nvim to manage floating window if available
let g:lazygit_use_neovim_remote = 1 " fallback to 0 if neovim-remote is not installed

Call :LazyGit to start a floating window with lazygit. And set up a mapping to call :LazyGit:

" setup mapping to call :LazyGit
nnoremap <silent> <leader>gg :LazyGit<CR>

Open the configuration file for lazygit directly from vim.

:LazyGitConfig<CR>

If the file does not exist it'll load the defaults for you.

Using neovim-remote

If you have neovim-remote and have configured to use it in neovim, it'll launch the commit editor inside your neovim instance when you use C inside lazygit.

  1. pip install neovim-remote

  2. Add the following to your ~/.bashrc:

if [ -n "$NVIM_LISTEN_ADDRESS" ]; then
    alias nvim=nvr -cc split --remote-wait +'set bufhidden=wipe'
fi
  1. Set EDITOR environment variable in ~/.bashrc:
if [ -n "$NVIM_LISTEN_ADDRESS" ]; then
    export VISUAL="nvr -cc split --remote-wait +'set bufhidden=wipe'"
    export EDITOR="nvr -cc split --remote-wait +'set bufhidden=wipe'"
else
    export VISUAL="nvim"
    export EDITOR="nvim"
fi
  1. Add the following to ~/.vimrc:
if has('nvim') && executable('nvr')
  let $GIT_EDITOR = "nvr -cc split --remote-wait +'set bufhidden=wipe'"
endif

If you have neovim-remote and don't want lazygit.nvim to use it, you can disable it using the following configuration option:

let g:lazygit_use_neovim_remote = 0