ctrlp.vim VS fzf

Compare ctrlp.vim vs fzf and see what are their differences.

ctrlp.vim

Fuzzy file, buffer, mru, tag, etc finder. (by kien)

fzf

:cherry_blossom: A command-line fuzzy finder (by junegunn)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
ctrlp.vim fzf
10 407
7,256 59,739
- -
0.0 9.6
about 2 years ago 5 days ago
VimL Go
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ctrlp.vim

Posts with mentions or reviews of ctrlp.vim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-08.
  • neovim + telescooe + fzf native
    4 projects | /r/neovim | 8 Feb 2023
    ctrl-p
  • Project & File navigation
    20 projects | /r/vim | 4 Oct 2022
    use a fuzzy finder, I like https://github.com/nvim-telescope/telescope.nvim (when I was a vim user, it was https://github.com/kien/ctrlp.vim)
  • If you are going to install a load of plugins anyways, why not just use an IDE that has vim mode?
    7 projects | /r/vim | 22 Sep 2022
    Ctrlp.vim existed prior to VSCode.
  • Switching from VSCode how to make Similar Cmd+P for Finding Files
    2 projects | /r/neovim | 11 Aug 2022
  • Software engineers on big projects using vim, are you there?
    13 projects | /r/vim | 25 Jun 2022
    Fuzzy file search: fzf, ctrlp
  • Movement key remapping not working properly
    1 project | /r/vim | 31 Mar 2022
    " --- VUNDLE --- set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' " plugin from http://vim-scripts.org/vim/scripts.html " Plugin 'L9' " Git plugin not hosted on GitHub Plugin 'git://git.wincent.com/command-t.git' " git repos on your local machine (i.e. when working on your own plugin) "Plugin 'file:///home/gmarik/path/to/plugin' " The sparkup vim script is in a subdirectory of this repo called vim. " Pass the path to set the runtimepath properly. Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " Install L9 and avoid a Naming conflict if you've already installed a " different version somewhere else. " Plugin 'ascenator/L9', {'name': 'newL9'} " All of your Plugins must be added before the following line Plugin 'Valloric/YouCompleteMe' Plugin 'preservim/nerdtree' call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line " --- NATIVE --- syntax on set tabstop=4 softtabstop=4 set shiftwidth=4 set expandtab set smartindent set nu set relativenumber set nowrap set smartcase set noswapfile set nobackup set undodir=~/.vim/undodir set undofile set incsearch " --- VIM-PLUG --- call plug#begin() Plug 'morhetz/gruvbox' Plug 'jremmen/vim-ripgrep' Plug 'vim-utils/vim-man' Plug 'mbbill/undotree' Plug 'https://github.com/kien/ctrlp.vim.git' call plug#end() colorscheme gruvbox set background=dark if executable('rg') let g:rg_derive_root=true endif let mapleader = " " let g:netrw_browse_split=2 let g:netrw_banner=0 let g:netrw_winsize=25 let g:ctrlp_use_caching=0 " --- REMAPPING --- " shift movement one key to the right noremap j h noremap k j noremap l k noremap ; l noremap h : " jj to escape from insert mode imap jj " --- COMMANDS --- " f9 runs current python script " normal mode autocmd FileType python map :w:exec '!python3' shellescape(@%, 1) " insert mode autocmd FileType python imap :w:exec '!python3' shellescape(@%, 1)
  • How do I get into the vim world.
    9 projects | /r/vim | 20 Dec 2021
    Set vim as your default text editor, that could give you additional motivation :) regarding plugins, it really depends of what you use now, but there are still some great general-use plugins: ctrl + p nerdtree git blame ack to beggin with
  • A few questions from an Emacs user
    9 projects | /r/vim | 9 Nov 2021
    check nerdtree and ctrlp
  • How can I learn VIM workflow(besides actual VIM)
    16 projects | /r/vim | 26 May 2021
    Ctrl+p: A plugin to quickly jump to a file by name.
  • Make NERDTree work with Tabs and Sessions.
    5 projects | /r/vim | 12 May 2021
    To open your files, use something like ctrl-p Alternative is fzf.vim

fzf

Posts with mentions or reviews of fzf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-25.
  • Ask HN: Any tool for managing large and variable command lines?
    8 projects | news.ycombinator.com | 25 Apr 2024
    In addition, I think bash's `operate-and-get-next` can be very helpful. When you go back through your shell history, you can hit Ctrl+o instead of enter and it will execute the command then put the next one in your history on the command line, and keep track of where you are in your history. This way, you can rerun a bunch of commands by going to the first one and Ctrl+o till you are done. And you can edit those commands and hit Ctrl+o and still go to the next previously run command.

    Note: fzf's history search feature breaks this. https://github.com/junegunn/fzf/issues/2399

  • pyfzf : Python Fuzzy Finder
    2 projects | dev.to | 10 Mar 2024
    fzf : https://github.com/junegunn/fzf
  • Command Line Fuzzy Search
    1 project | news.ycombinator.com | 15 Feb 2024
  • So You Think You Know Git – Git Tips and Tricks by Scott Chacon
    6 projects | news.ycombinator.com | 13 Feb 2024
    Those are the most used aliases in my gitconfig.

    "git fza" shows a list of modified/new files in an fzf window, and you can select each file with tab plus arrow keys. When you hit enter, those files are fed into "git add". Needs fzf: https://github.com/junegunn/fzf

    "git gone" removes local branches that don't exist on the remote.

    "git root" prints out the root of the repo. You can alias it to "cd $(git root)", and zip back to the repo root from a deep directory structure. This one is less useful now for me since I started using zoxide to jump around. https://github.com/ajeetdsouza/zoxide

  • Which command did you run 1731 days ago?
    9 projects | news.ycombinator.com | 21 Jan 2024
    > my history is so noisy I had to find another way

    The fzf search syntax can help, if you become familiar with it. It is also supported in atuin [2].

    [1]: https://github.com/junegunn/fzf#search-syntax

    [2]: https://docs.atuin.sh/configuration/config/#fuzzy-search-syn...

  • Z – Jump Around
    16 projects | news.ycombinator.com | 15 Jan 2024
    You call it with `n` and get an interactive fuzzy search for your directories. If you do `n ` instead, it’ll start the find with `` already filled in (and if there’s only one match, jump to it directly). The `ls` is optional but I find that I like having the contents visible as soon as I change a directory.

    I’m also including iCloud Drive but excluding the Library directory as that is too noisy. I have a separate `nl` function which searches just inside `~/Library` for when I need it, as well as other specialised `n` functions that search inside specific places that I need a lot.

    ¹ https://github.com/sharkdp/fd

    ² https://github.com/junegunn/fzf

  • alacritty-themes not working any more!!!
    6 projects | dev.to | 7 Jan 2024
    View on GitHub
  • Fish shell 3.7.0: last release branch before the full Rust rewrite
    9 projects | news.ycombinator.com | 1 Jan 2024
    I do find the history pager stuff interesting, but ultimately not of tremendous use for me. I rebound all my history search stuff to use fzf[1] (via a fish plugin for such[2]), and so haven't been aware of the issues

    [1] https://github.com/junegunn/fzf

    [2] https://github.com/PatrickF1/fzf.fish

  • Ugrep – a more powerful, ultra fast, user-friendly, compatible grep
    27 projects | news.ycombinator.com | 30 Dec 2023
    You can also use fzf with ripgrep to great effect:

    [1]: https://github.com/junegunn/fzf/blob/master/ADVANCED.md#usin...

  • Tell HN: My Favorite Tools
    14 projects | news.ycombinator.com | 24 Dec 2023

What are some alternatives?

When comparing ctrlp.vim and fzf you can also consider the following projects:

fzf.vim - fzf :heart: vim

peco - Simplistic interactive filtering tool

harpoon

zsh-autocomplete - 🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.

vscode-neovim - Vim mode for VSCode, powered by Neovim

z - z - jump around

LunarVim - 🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

zsh-autosuggestions - Fish-like autosuggestions for zsh

ack.vim - Vim plugin for the Perl module / CLI script 'ack'

mcfly - Fly through your shell history. Great Scott!

telescope.nvim - Find, Filter, Preview, Pick. All lua, all the time.

ranger - A VIM-inspired filemanager for the console