Skip to content
/ vim-flog Public

A blazingly fast, stunningly beautiful, exceptionally powerful git branch viewer for Vim/Neovim.

Notifications You must be signed in to change notification settings

rbong/vim-flog

Repository files navigation

Flog

test status

Flog is a blazingly fast, stunningly beautiful, exceptionally powerful Git branch viewer for Vim/Neovim.

flog in action

Features

  • Custom log format support
  • Multiline commit message support
  • Ability to view history of selected visual range
  • Contextual command completion
  • Many navigation mappings
  • Commit-based marks and jump history
  • Ability to expand/collapse commit body
  • Intelligently restore cursor position between updates
  • Fugitive integration
  • Functions for integrating with your Git workflow and plugins
  • Extended graph symbol support (currently only in Kitty)
  • Dynamic branch highlighting (Neovim only)
  • Automatic updates (Neovim only)
  • And more!

Installation

If you use Plug, add the following to your .vimrc:

Plug 'tpope/vim-fugitive'
Plug 'rbong/vim-flog'

For lazy.nvim users:

{
  "rbong/vim-flog",
  lazy = true,
  cmd = { "Flog", "Flogsplit", "Floggit" },
  dependencies = {
    "tpope/vim-fugitive",
  },
},

In Vim, LuaJIT 2.1 must be installed. Lua 5.1 is also supported but less performant than LuaJIT.

Getting Started

  • You can open the commit graph with :Flog or :Flogsplit.
  • Use <Tab> completion or :help :Flog to see available arguments.
  • Open commits with Fugitive using <CR>.
  • Jump between commits with <C-N> and <C-P>.
  • Toggle viewing all branches with a.
  • See more mappings with g?.
  • Quit with gq.

Many familiar mappings from the Fugitive :Git status window will work in Flog.

You can also run any git command using :Floggit. This command will contextually complete arguments based on your cursor position. See :help :Floggit for more.

Flog can be heavily customized. See examples for details.

More Help