Skip to content
Turn your fzf into a live REPL
Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gifs
scripts
LICENSE Initial commit Jul 17, 2019
README.md Fix links Jul 25, 2019

README.md

🚀 fzf-live-repl 🚀

This hacky one-liner turns your fzf into a live REPL. There is not much to explain, see it for yourself. Please note that I will be adding more examples as I come up with them. You are also welcome to contribute them yourself by creating an issue or a pull request.

Featured in my blog post

See also: fzf-launch - open any file directly from command line with a command of your choice

How?

By abusing the --preview flag of fzf. It allows an arbitrary command to be executed as the query changes. The {q} is then being substituted by your typed query. After exiting fzf by pressing enter, the --print-query flag ensures that the typed query will be printed to stdout.

WARNING!

Always be careful what you set the --preview flag to! Imagine setting rm -rf and then typing * as the query string!. I take no responsibility if you break anything!

ONLY USE THIS FOR COMMANDS WHICH ARE READ-ONLY!

ALWAYS KNOW WHAT YOU'RE TYPING/PASTING!

Examples

Live awk preview

$ echo '' | fzf --print-query --preview 'echo "a\nb\nc\nd" | awk {q}'

live-awk-preview

Peek into contents of a directory

$ echo '' | fzf --preview 'ls {q}'

fzf-ls

Execute a Ruby script

$ echo '' | fzf --print-query --preview 'ruby -e {q}'

fzf-ruby

Instantly browse manpages (and find the relevant flag as you type the command - TODO)

$ echo '' | fzf --preview 'man {q}'

Execute a Python script

$ echo '' | fzf --print-query --preview 'python -c {q}'
You can’t perform that action at this time.