Skip to content

Fast and consistent file management in Zsh and Vim with fzf

Notifications You must be signed in to change notification settings

jannis-baum/fzf-dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

fzf-dotfiles

This plugin is where I keep my fzf-related dotfiles for file management in Zsh and Vim.

rgi-showcase

Features

  • All features work consistently from Zsh and Vim
  • A key-bound file and directory picker with content preview that makes it easy to
    • open files from Zsh in Vim and from Vim in the current buffer or new splits and tabs
    • select files to use in any command
    • create new files
    • if you use kitty terminal, images are also shown as previews
  • rgi: Live search though all files that is well integrated with Vim's native search (see showcase above)
  • cdf: Tracks your working directory history and lets you switch to any directory fast
    • this works especially well because we tend to work in the same set of directories and because cdf keeps the most recent ones in the top

Configuration

This plugin has some configuration options that enable you to customize your experience. You can set all options as variables in your .zshrc; it is not necessary to export them manually. See options.zsh for the full list of customizable options.

Usage

Find instructions for how to use this plugin below

Requirements

On top of these, this plugin relies on you having your $EDITOR variable set to whatever command you use to open your text editor (vim, nvim, etc.). If you use si-vim for example, you should have export EDITOR=siv in your .zshenv file.

Installation

With all requirements available, simply source all .zsh files from this repo in your .zshrc, for example like this

for script in $(find '<path to this repo>' -name '*.zsh'); do
    source $script
done

and all .vim files in your .vimrc, for example like this

for f in glob($HOME . '<path to this repo>/**/*.vim', 0, 1)
    execute 'source ' . f
endfor

I do this by keeping this repository as a submodule in my dotfiles. If you want to do this, I recommend using my tool sdf to manage your dotfiles and their dependencies.