Giter Club home page Giter Club logo

fzf.el's Introduction

fzf.el MELPA

An Emacs front-end for fzf.

demo

installation

fzf.el is available on MELPA.

Below is an illustrative use-package configuration of fzf.el showing all available customizations and their default values.

Note: This package does not set default keybindings.

(use-package fzf
  :bind
    ;; Don't forget to set keybinds!
  :config
  (setq fzf/args "-x --color bw --print-query --margin=1,0 --no-hscroll"
        fzf/executable "fzf"
        fzf/git-grep-args "-i --line-number %s"
        ;; command used for `fzf-grep-*` functions
        ;; example usage for ripgrep:
        ;; fzf/grep-command "rg --no-heading -nH"
        fzf/grep-command "grep -nrH"
        ;; If nil, the fzf buffer will appear at the top of the window
        fzf/position-bottom t
        fzf/window-height 15))

usage

fzf.el comes with a number of useful commands:

Using FZF_DEFAULT_COMMAND:

  • M-x fzf
  • M-x fzf-directory

Searching for files:

  • M-x fzf-find-file
  • M-x fzf-find-file-in-dir
  • M-x fzf-recentf

Project-aware search:

  • M-x fzf-git
  • M-x fzf-git-files
  • M-x fzf-git-grep
  • M-x fzf-hg
  • M-x fzf-projectile

Grep:

Note: fzf-grep-*-with-narrowing functions launch an interactive fzf/grep-command instead of using fuzzy filtering. See the fzf advanced documentation for more details.

  • M-x fzf-grep
  • M-x fzf-grep-dwim
  • M-x fzf-grep-in-dir
  • M-x fzf-grep-with-narrowing
  • M-x fzf-grep-dwim-with-narrowing
  • M-x fzf-grep-in-dir-with-narrowing

Using input from Emacs:

  • M-x fzf-switch-buffer

define custom functions

fzf.el exposes functions to let you interface with fzf however you'd like:

  • fzf-with-command (command action &optional directory as-filter initq): Run fzf on the output of a shell command.
    • command: The shell command whose output is passed to fzf.
    • action: A function that handles the result of fzf (e.g. open a file, switch to a buffer, etc.). This package ships with two default actions that can handle opening a file and opening a file at a specific line.
    • directory: Directory to execute fzf in.
    • as-filter: If non-nil, use command as the filter instead of fzf's fuzzy filtering. See fzf-grep-*-with-narrowing functions for example usages.
    • initq: If as-filter is non-nil, initq will be used as the value for the --query option. If as-filter is nil, this does nothing.
  • fzf-with-entries (entries action &optional directory): run fzf, passing in an elisp list and running the function action with the user's selected results.

Using these functions, it's easy to define your own commands that use fzf:

(defun fzf-example ()
  (fzf-with-entries
   (list "a" "b" "c")
   'print))

Or more exciting:

(defun fzf-find-file (&optional directory)
  (interactive)
  (let ((d (fzf/resolve-directory directory)))
    (fzf
    (lambda (x)
        (let ((f (expand-file-name x d)))
        (when (file-exists-p f)
            (find-file f))))
    d)))

license

GPL3

fzf.el's People

Contributors

bling avatar pierre-rouleau avatar tttuuu888 avatar fernando-jascovich avatar brandon-rhodes avatar avli avatar aeruder avatar dubiousdavid avatar agsdot avatar liuyincarl avatar posita avatar romanodesouza avatar samclearman avatar sanel avatar rolag avatar xshyamx avatar 15cm avatar vnckppl avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.