<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>About on junegunn.choi.</title><link>https://junegunn.github.io/</link><description>Recent content in About on junegunn.choi.</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://junegunn.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>0.73.0</title><link>https://junegunn.github.io/fzf/releases/0.73.0/</link><pubDate>Sun, 24 May 2026 00:06:43 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.73.0/</guid><description>0.73.0 # (May 2026)
Quick summary # This release adds Nushell integration, a new preview window position, and timer-driven bindings backed by an idle-time environment variable.
Type Class Name Description New Shell Nushell fzf --nushell and installer support New Option --preview-window=next Preview adjacent to the input section New Event every(N) Timer-driven event for --bind New Env var $FZF_IDLE_TIME Seconds since the last user activity New Env var $FZF_IDLE_TIME_MS Milliseconds since the last user activity New Env var $FZF_CURRENT_ITEM Current item, for shells where {} is awkward 1.</description></item><item><title>0.72.0</title><link>https://junegunn.github.io/fzf/releases/0.72.0/</link><pubDate>Sun, 26 Apr 2026 18:03:18 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.72.0/</guid><description>0.72.0 # (Apr 2026)
Screenshots # # Based on &amp;#34;Melange Light&amp;#34; theme # https://junegunn.github.io/fzf/color-themes/ export FZF_DEFAULT_OPTS=$&amp;#39;--color=fg:#54433a,bg:#f1f1f1,hl:#9f6a25,fg+:#54433a,bg+:#e5e1db --color=hl+:#9f6a25,info:#4f7272,prompt:#824e7e,pointer:#b65c3e --color=marker:#9a5035,spinner:#4e7548,header:#4f7272,border:#bc8f49 --color=label:#90897e,gutter:#e5e1db,footer:#4f7272&amp;#39; ps -ef | fzf --reverse --style full \ --header &amp;#39;Select a process&amp;#39; --header-lines 1 \ --bind &amp;#39;load:transform-footer:echo $FZF_TOTAL_COUNT processes&amp;#39; \ --header-border dashed --header-first \ --header-lines-border inline --footer-border inline 1c1 &amp;lt; ps -ef | fzf --reverse --style full \ --- &amp;gt; ps -ef | fzf --reverse --style full:bold \ Quick summary # Type Class Name Description New Option --header-border=inline Embed the header inside the list frame New Option --header-lines-border=inline Embed the header-lines inside the list frame New Option --footer-border=inline Embed the footer inside the list frame New Style dashed New dashed border style for any --*-border option Embed header and footer in the list frame # The new inline shape for --header-border, --header-lines-border, and --footer-border embeds the section inside the list frame, separated by a horizontal line that joins the list&amp;rsquo;s side borders as T-junctions.</description></item><item><title>0.71.0</title><link>https://junegunn.github.io/fzf/releases/0.71.0/</link><pubDate>Mon, 06 Apr 2026 19:48:46 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.71.0/</guid><description>0.71.0 # (Apr 2026)
Quick summary # This release brings performance improvements, Zellij integration, a new --id-nth option for tracking items across reloads, and shell integration enhancements.
Type Class Name Description Enhancement Perf Linearly scalable search performance across CPU cores Enhancement Perf 86x reduction in cache memory footprint per entry New Option --popup New name for --tmux with Zellij support New Option --id-nth Define item identity fields for cross-reload operations Enhancement Shell bash CTRL-R Multi-select and shift-delete to delete entries Enhancement Shell fish CTRL-R Improved command history Enhancement Shell fish SHIFT-TAB Rewritten completion script 1.</description></item><item><title>0.70.0</title><link>https://junegunn.github.io/fzf/releases/0.70.0/</link><pubDate>Mon, 06 Apr 2026 19:45:49 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.70.0/</guid><description>0.70.0 # (Mar 2026)
Quick summary # This release focuses on performance improvements and adds a couple of new actions for dynamically changing display options.
Type Class Name Description Enhancement Perf 1.3x to 1.9x faster filtering New Action change-with-nth Dynamically change --with-nth option New Action change-header-lines Dynamically change --header-lines option 1. Performance improvements # Filtering is now 1.3x to 1.9x faster depending on the query.
=== query: &amp;#39;l&amp;#39; === [all] baseline: 168.</description></item><item><title>0.68.0</title><link>https://junegunn.github.io/fzf/releases/0.68.0/</link><pubDate>Mon, 06 Apr 2026 19:45:49 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.68.0/</guid><description>0.68.0 # (Feb 2026)
Quick summary # This release introduces word wrapping for both the list and preview sections, underline style variants, and fish shell improvements.
Type Class Name Description New Option --wrap=word Word-level wrapping in the list section New Option --preview-window wrap-word Word-level wrapping in the preview window New Option --preview-wrap-sign Wrap indicator for the preview window New Action toggle-wrap-word Toggle word wrapping in the list section New Action toggle-preview-wrap-word Toggle word wrapping in the preview window New Color underline-* Underline style variants for --color New Color alt-gutter Alternate gutter color New Env Var $FZF_WRAP Wrapping mode exported to child processes Enhancement Shell fish CTRL-R Syntax highlighting and preview New Shell fish completion Fish completion support (SHIFT-TAB) 1.</description></item><item><title>0.67.0</title><link>https://junegunn.github.io/fzf/releases/0.67.0/</link><pubDate>Mon, 06 Apr 2026 19:45:49 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.67.0/</guid><description>0.67.0 # (Nov 2025)
Quick summary # Type Class Name Description New Option --freeze-left Keep the leftmost N columns always visible New Option --freeze-right Keep the rightmost N columns always visible Enhancement Option --info=inline Now prints the spinner (load indicator) 1. --freeze-left=N # The new --freeze-left=N option keeps the leftmost N columns always visible, even when the content is scrolled horizontally. This is useful when you want to keep an identifier column in view while browsing long lines.</description></item><item><title>0.66.0</title><link>https://junegunn.github.io/fzf/releases/0.66.0/</link><pubDate>Sun, 24 May 2026 00:06:50 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.66.0/</guid><description>0.66.0 # (Oct 2025)
Quick summary # This version introduces many new features centered around the new &amp;ldquo;raw&amp;rdquo; mode.
Type Class Name Description New Option --raw Enable raw mode by default New Option --gutter CHAR Set the gutter column character New Option --gutter-raw CHAR Set the gutter column character in raw mode Enhancement Option --listen SOCKET Added support for Unix domain sockets New Action toggle-raw Toggle raw mode New Action enable-raw Enable raw mode New Action disable-raw Disable raw mode New Action up-match Move up to the matching item New Action down-match Move down to the matching item New Action best Move to the matching item with the best score New Color nomatch Color for non-matching items in raw mode New Env Var FZF_RAW Matching status in raw mode (0, 1, or undefined) New Env Var FZF_DIRECTION up or down depending on the layout New Env Var FZF_SOCK Path to the Unix domain socket fzf is listening on Enhancement Key CTRL-N down -&amp;gt; down-match Enhancement Key CTRL-P up -&amp;gt; up-match Enhancement Shell CTRL-R binding Toggle raw mode with ALT-R Enhancement Shell CTRL-R binding Opt-out with an empty FZF_CTRL_R_COMMAND 1.</description></item><item><title>0.63.0</title><link>https://junegunn.github.io/fzf/releases/0.63.0/</link><pubDate>Sat, 28 Jun 2025 10:49:15 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.63.0/</guid><description>0.63.0 # (June 2025)
Screenshot # git ls-files | fzf --style full --scheme path \ --border --padding 1,2 \ --ghost &amp;#39;Type in your query&amp;#39; \ --border-label &amp;#39; Demo &amp;#39; --input-label &amp;#39; Input &amp;#39; --header-label &amp;#39; File Type &amp;#39; \ --footer-label &amp;#39; MD5 Hash &amp;#39; \ --preview &amp;#39;BAT_THEME=gruvbox-dark fzf-preview.sh {}&amp;#39; \ --bind &amp;#39;result:bg-transform-list-label: if [[ -z $FZF_QUERY ]]; then echo &amp;#34; $FZF_MATCH_COUNT items &amp;#34; else echo &amp;#34; $FZF_MATCH_COUNT matches for [$FZF_QUERY] &amp;#34; fi &amp;#39; \ --bind &amp;#39;focus:bg-transform-preview-label:[[ -n {} ]] &amp;amp;&amp;amp; printf &amp;#34; Previewing [%s] &amp;#34; {}&amp;#39; \ --bind &amp;#39;focus:+bg-transform-header:[[ -n {} ]] &amp;amp;&amp;amp; file --brief {}&amp;#39; \ --bind &amp;#39;focus:+bg-transform-footer:if [[ -n {} ]]; then echo &amp;#34;MD5: $(md5sum &amp;lt; {})&amp;#34; echo &amp;#34;SHA1: $(sha1sum &amp;lt; {})&amp;#34; echo &amp;#34;SHA256: $(sha256sum &amp;lt; {})&amp;#34; fi&amp;#39; \ --bind &amp;#39;ctrl-r:change-list-label( Reloading the list )+reload(sleep 2; git ls-files)&amp;#39; \ --color &amp;#39;border:#aaaaaa,label:#cccccc&amp;#39; \ --color &amp;#39;preview-border:#9999cc,preview-label:#ccccff&amp;#39; \ --color &amp;#39;list-border:#669966,list-label:#99cc99&amp;#39; \ --color &amp;#39;input-border:#996666,input-label:#ffcccc&amp;#39; \ --color &amp;#39;header-border:#6699cc,header-label:#99ccff&amp;#39; \ --color &amp;#39;footer:#ccbbaa,footer-border:#cc9966,footer-label:#cc9966&amp;#39; Asynchronous transformation # fzf provides a set of transform-* actions to transform the elements using the output of an external command.</description></item><item><title>0.60.0</title><link>https://junegunn.github.io/fzf/releases/0.60.0/</link><pubDate>Sun, 09 Feb 2025 14:27:08 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.60.0/</guid><description>0.60.0 # (February 2025)
Choosing output fields # This release introduces --accept-nth option for choosing fields to print on exit.
It can be used to replace cut, sed, or awk in the post-processing step.
# Use &amp;#39;awk&amp;#39; to print the second field ps -ef | fzf --multi --header-lines 1 | awk &amp;#39;{print $2}&amp;#39; # Now you can do this with fzf ps -ef | fzf --multi --header-lines 1 --accept-nth 2 # Use &amp;#39;cut&amp;#39; to remove the first two characters (&amp;#39;* &amp;#39;) git branch | fzf | cut -c3- # Tell fzf to only print the last field git branch | fzf --accept-nth -1 This may not be a very &amp;ldquo;Unix-y&amp;rdquo; approach, so I&amp;rsquo;ve always felt that fzf shouldn&amp;rsquo;t have such an option, but I&amp;rsquo;ve finally changed my mind for the following reasons:</description></item><item><title>0.59.0</title><link>https://junegunn.github.io/fzf/releases/0.59.0/</link><pubDate>Thu, 30 Jan 2025 00:06:33 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.59.0/</guid><description>0.59.0 # (February 2025)
Highlights # Enhanced path scheme to prioritize file name matches click-header event now sets $FZF_CLICK_HEADER_WORD and $FZF_CLICK_HEADER_NTH, allowing you to implement a clickable header for changing the search scope search and transform-search action to extend the search syntax of fzf --header-lines-border to display header from --header-lines with a separate border --no-input option to completely disable and hide the input section Prioritizing file name matches # Since fzf is a general-purpose text filter, its algorithm was designed to &amp;ldquo;generally&amp;rdquo; work well with any kind of input.</description></item><item><title>0.58.0</title><link>https://junegunn.github.io/fzf/releases/0.58.0/</link><pubDate>Tue, 21 Jan 2025 09:50:17 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.58.0/</guid><description>0.58.0 # (January 2025)
Happy new year!
fzf 0.58.0 is a big release with many new features and improvements.
Highlights # Style presets fzf now offers three &amp;ldquo;style presets&amp;rdquo; for quick customization. You can activate a preset using the --style=[default|minimal|full[:BORDER_STYLE] option. More borders Three new border types, --list-border, --input-border, and --header-border are added, offering much greater flexibility for customizing the user interface. --gap improvements fzf now renders a dashed line (┈┈) in each --gap for better visual separation and a more streamlined look.</description></item><item><title>0.55.0</title><link>https://junegunn.github.io/fzf/releases/0.55.0/</link><pubDate>Sun, 20 Oct 2024 17:04:39 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.55.0/</guid><description>0.55.0 # (August 2024)
Exact-boundary-match type # fzf 0.55.0 added exact-boundary-match type to its search syntax. When a search term is single-quoted, fzf will search for the exact occurrences of the string with both ends at word boundaries.
fzf --query &amp;#34;&amp;#39;here&amp;#39;&amp;#34; &amp;lt;&amp;lt; EOF come here not there EOF Unlike in regular expressions, this also sees an underscore as a word boundary. But the words around underscores are ranked lower and appear later in the result than the other words around the other types of word boundaries.</description></item><item><title>0.54.0</title><link>https://junegunn.github.io/fzf/releases/0.54.0/</link><pubDate>Mon, 08 Jul 2024 22:34:43 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.54.0/</guid><description>0.54.0 # (July 2024)
Enabling line wrap with --wrap # fzf can now be configured to wrap long lines instead of truncating them.
--wrap enables line wrapping --wrap-sign=INDICATOR specifies the indicator for wrapped lines. The default is '↳ '. You can use toogle-wrap action to dynamically toggle wrapping fzf by default binds CTRL-/ and ALT-/ to toggle-wrap declare -f | perl -0777 -pe &amp;#39;s/^}\n/}\0/gm&amp;#39; | bat --plain --language bash --color always | fzf --read0 --ansi --reverse --multi --highlight-line --wrap I find this particularly useful when browsing log streams with fzf:</description></item><item><title>0.53.0</title><link>https://junegunn.github.io/fzf/releases/0.53.0/</link><pubDate>Mon, 08 Jul 2024 22:34:43 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.53.0/</guid><description>0.53.0 # (June 2024)
0.53.0 is a huge release with major improvements and changes. Bugs are expected, so please report them if you find any.
Multi-line display # Finally, fzf can now display multi-line items properly. And CTRL-R bindings (command history) for all three shells have been updated to leverage this and display multi-line commands in their original form.
And here are some other examples.
All bash/zsh functions, highlighted # This uses bat to syntax-highlight the functions.</description></item><item><title>0.52.0</title><link>https://junegunn.github.io/fzf/releases/0.52.0/</link><pubDate>Mon, 08 Jul 2024 22:34:43 +0900</pubDate><guid>https://junegunn.github.io/fzf/releases/0.52.0/</guid><description>0.52.0 # (May 2024)
Added --highlight-line to highlight the whole current line (à la set cursorline of Vim) Added color names for selected lines: selected-fg, selected-bg, and selected-hl fzf --border --multi --info inline-right --layout reverse \ --marker ▏ --pointer &amp;#39;▌&amp;#39; --prompt &amp;#39;▌ &amp;#39; --highlight-line \ --color gutter:-1,selected-bg:238,selected-fg:146,current-fg:189 Added click-header event that is triggered when the header section is clicked. When the event is triggered, $FZF_CLICK_HEADER_COLUMN and $FZF_CLICK_HEADER_LINE are set. fd --type f | fzf --header $&amp;#39;[Files] [Directories]&amp;#39; --header-first \ --bind &amp;#39;click-header:transform: (( FZF_CLICK_HEADER_COLUMN &amp;lt;= 7 )) &amp;amp;&amp;amp; echo &amp;#34;reload(fd --type f)&amp;#34; (( FZF_CLICK_HEADER_COLUMN &amp;gt;= 9 )) &amp;amp;&amp;amp; echo &amp;#34;reload(fd --type d)&amp;#34; &amp;#39; Add $FZF_COMPLETION_{DIR,PATH}_OPTS for separately customizing the behavior of fuzzy completion # Set --walker options without &amp;#39;follow&amp;#39; not to follow symbolic links FZF_COMPLETION_PATH_OPTS=&amp;#34;--walker=file,dir,hidden&amp;#34; FZF_COMPLETION_DIR_OPTS=&amp;#34;--walker=dir,hidden&amp;#34; Fixed Windows argument escaping Bug fixes and improvements The code was heavily refactored to allow using fzf as a library in Go programs.</description></item><item><title>Directory navigation</title><link>https://junegunn.github.io/fzf/examples/directory-navigation/</link><pubDate>Tue, 06 May 2025 20:24:49 +0900</pubDate><guid>https://junegunn.github.io/fzf/examples/directory-navigation/</guid><description>Directory navigation with fzf # ALT-C binding allows you to easily move to a subdirectory. But for directories not under the current directory, we need a different approach. Fuzzy completion helps (e.g. cd ../../foo/**&amp;lt;TAB&amp;gt;), but that&amp;rsquo;s still a lot of typing.
You definitely need a program that keeps track of the directories you visit frequently and allows you to jump between them quickly. It will immensly boost your productivity, because you&amp;rsquo;ll be switching between a small number of directories most of the time.</description></item><item><title>Installation</title><link>https://junegunn.github.io/fzf/installation/</link><pubDate>Sun, 02 Jun 2024 23:55:34 +0900</pubDate><guid>https://junegunn.github.io/fzf/installation/</guid><description>Installation # Using Homebrew # Homebrew is the recommended way to install fzf, as it provides the most recent version of fzf.
brew install fzf Using other package managers # Linux # Click to expand Package Manager Linux Distribution Command APK Alpine Linux sudo apk add fzf APT Debian 9+/Ubuntu 19.10+ sudo apt install fzf Conda conda install -c conda-forge fzf DNF Fedora sudo dnf install fzf Nix NixOS, etc.</description></item><item><title>Installation</title><link>https://junegunn.github.io/vim-plug/installation/</link><pubDate>Sun, 02 Jun 2024 23:55:34 +0900</pubDate><guid>https://junegunn.github.io/vim-plug/installation/</guid><description>Installation # vim-plug is distributed as a single Vim script file, so that it&amp;rsquo;s super easy to get started. Just download the file and put it in the &amp;ldquo;autoload&amp;rdquo; directory.
Or you can simply run one of the following commands depending on your environment.
Vim # Unix # curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim Windows (PowerShell) # iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |` ni $HOME/vimfiles/autoload/plug.vim -Force Neovim # Unix # sh -c &amp;#39;curl -fLo &amp;#34;${XDG_DATA_HOME:-$HOME/.</description></item><item><title>Chrome history</title><link>https://junegunn.github.io/fzf/examples/chrome/</link><pubDate>Tue, 10 Jun 2025 22:58:20 +0900</pubDate><guid>https://junegunn.github.io/fzf/examples/chrome/</guid><description>Browsing Chrome history and bookmarks with fzf # Info
You might want to check out https://github.com/junegunn/everything.fzf which includes a more complete version of this script, along with many other integrations.
In this example, you&amp;rsquo;ll learn how to browse Chrome history and bookmarks from the command-line using fzf.
Getting the input data # Chrome manages the browsing history in an SQLite database file, and the bookmarks in a JSON file. For example, on macOS, the files are located at:</description></item><item><title>Getting Started</title><link>https://junegunn.github.io/fzf/getting-started/</link><pubDate>Sat, 25 Apr 2026 18:38:26 +0900</pubDate><guid>https://junegunn.github.io/fzf/getting-started/</guid><description>Getting Started # Understanding fzf # Basically, you can think of fzf as an interactive version of &amp;ldquo;grep&amp;rdquo; (with bells and whistles, lots of bells and whistles).
You feed lines of text to fzf via standard input, fzf starts an interactive terminal interface where you can narrow down the list using fuzzy matching algorithm. And when you finally make a selection, fzf prints it out to standard output. I n p u t l i n e s S T D I N f z 👀 f S T D O U T O u t p u t l i n e ( s ) What I&amp;rsquo;m trying to say here is that fzf is essentially a text filter; it&amp;rsquo;s up to you to provide the input list, and it&amp;rsquo;s up to you to do something with the filtered output.</description></item><item><title>Getting Started</title><link>https://junegunn.github.io/vim-plug/getting-started/</link><pubDate>Sun, 02 Jun 2024 23:55:34 +0900</pubDate><guid>https://junegunn.github.io/vim-plug/getting-started/</guid><description> Getting Started # Add a vim-plug section to your ~/.vimrc (or init.vim for Neovim)
Begin the section with call plug#begin() List the plugins with Plug commands End the section with call plug#end() For example,
call plug#begin() &amp;#34; List your plugins here Plug &amp;#39;tpope/vim-sensible&amp;#39; call plug#end() Reload the file or restart Vim, then you can,
:PlugInstall to install the plugins :PlugUpdate to install or update the plugins :PlugDiff to review the changes from the last update :PlugClean to remove plugins no longer in the list</description></item><item><title>Example</title><link>https://junegunn.github.io/vim-plug/example/</link><pubDate>Sun, 02 Jun 2024 23:55:34 +0900</pubDate><guid>https://junegunn.github.io/vim-plug/example/</guid><description>Example # The following examples demonstrate the features of vim-plug. You probably don&amp;rsquo;t need to know all of these options, but they are here to give you an idea of what you can do with vim-plug.
call plug#begin() &amp;#34; The default plugin directory will be as follows: &amp;#34; - Vim (Linux/macOS): &amp;#39;~/.vim/plugged&amp;#39; &amp;#34; - Vim (Windows): &amp;#39;~/vimfiles/plugged&amp;#39; &amp;#34; - Neovim (Linux/macOS/Windows): stdpath(&amp;#39;data&amp;#39;) . &amp;#39;/plugged&amp;#39; &amp;#34; You can specify a custom plugin directory by passing it as the argument &amp;#34; - e.</description></item><item><title>Example (Lua)</title><link>https://junegunn.github.io/vim-plug/example-lua/</link><pubDate>Sun, 02 Jun 2024 23:55:34 +0900</pubDate><guid>https://junegunn.github.io/vim-plug/example-lua/</guid><description>Example (Lua) # In Neovim, you can write your configuration in a Lua script file named init.lua. The following code is the Lua script equivalent to the Vim script example.
local vim = vim local Plug = vim.fn[&amp;#39;plug#&amp;#39;] vim.call(&amp;#39;plug#begin&amp;#39;) -- Shorthand notation for GitHub; translates to https://github.com/junegunn/seoul256.vim.git Plug(&amp;#39;junegunn/seoul256.vim&amp;#39;) -- Any valid git URL is allowed Plug(&amp;#39;https://github.com/junegunn/vim-easy-align.git&amp;#39;) -- Using a tagged release; wildcard allowed (requires git 1.9.2 or above) Plug(&amp;#39;fatih/vim-go&amp;#39;, { [&amp;#39;tag&amp;#39;] = &amp;#39;*&amp;#39; }) -- Using a non-default branch Plug(&amp;#39;neoclide/coc.</description></item><item><title>FAQ</title><link>https://junegunn.github.io/vim-plug/faq/</link><pubDate>Mon, 04 Nov 2024 17:42:15 +0900</pubDate><guid>https://junegunn.github.io/vim-plug/faq/</guid><description>Frequently Asked Questions # Where should I put plugin configuration? # The most common way to configure a Vim plugin is to define global variables and/or mappings. Since you can define variables and mappings even when the plugin is not available, it&amp;rsquo;s safe to put them anywhere you prefer.
I put a plugin&amp;rsquo;s configuration right after its Plug command so that it&amp;rsquo;s easier to manage. I also indent the lines to make them visually distinct.</description></item><item><title>Git objects</title><link>https://junegunn.github.io/fzf/examples/git/</link><pubDate>Sat, 24 Aug 2024 22:19:21 +0900</pubDate><guid>https://junegunn.github.io/fzf/examples/git/</guid><description>Completing Git objects with fzf # If you&amp;rsquo;re like me and you prefer to write Git commands by hand, you often need to type in commit hashes, branch names, tags, etc. And fzf can really help you with that.
With its numerous subcommands and options, git can be quite daunting even for the experienced. There is sophisticated, context-aware completion support for git command, but I find it lacking in several aspects.</description></item><item><title>Shell Integration</title><link>https://junegunn.github.io/fzf/shell-integration/</link><pubDate>Mon, 08 Jul 2024 22:34:43 +0900</pubDate><guid>https://junegunn.github.io/fzf/shell-integration/</guid><description>Shell Integration # To be useful out of the box without any scripting effort, fzf provides shell integration for bash, zsh and fish.
CTRL-T, ALT-C, CTRL-R for bash, zsh, and fish Fuzzy completion for bash and zsh Setting up shell integration # To set up shell integration, add the following to your shell configuration file:
bash (~/.bashrc) eval &amp;#34;$(fzf --bash)&amp;#34; zsh (~/.zshrc) source &amp;lt;(fzf --zsh) fish (~/.config/fish/config.fish) fzf --fish | source Tip</description></item><item><title>Search syntax</title><link>https://junegunn.github.io/fzf/search-syntax/</link><pubDate>Thu, 29 Aug 2024 17:08:17 +0900</pubDate><guid>https://junegunn.github.io/fzf/search-syntax/</guid><description>Search syntax # Sometimes fuzzy matching is not enough. fzf implements its own simple search syntax to augment fuzzy matching.
Multiple search terms # You can type in multiple search terms delimited by spaces. For example, fzf sees ^music .mp3$ sbtrkt !fire as four separate search terms.
Match types # Token Match type Description sbtrkt fuzzy-match Items that include sbtrkt characters in that order 'wild exact-match (quoted) Items that include wild 'wild' exact-boundary-match (quoted both ends) Items that include wild at word boundaries ^music prefix-exact-match Items that start with music .</description></item><item><title>Tmux integration</title><link>https://junegunn.github.io/fzf/examples/tmux/</link><pubDate>Sun, 01 Sep 2024 18:57:12 +0900</pubDate><guid>https://junegunn.github.io/fzf/examples/tmux/</guid><description>Tmux integration # Tmux plugins # There are tmux plugins that utilize fzf for better experience.
junegunn/tmux-fzf-url # The one I enjoy the most is junegunn/tmux-fzf-url. It allows me to quickly open URLs in the browser with just a few key strokes. Highly recommended.
sainnhe/tmux-fzf # sainnhe/tmux-fzf allows you to perform various actions on tmux using fzf. It&amp;rsquo;s probably the most feature-rich plugin out there so you might want to check it out.</description></item><item><title>Color Themes</title><link>https://junegunn.github.io/fzf/color-themes/</link><pubDate>Sun, 24 May 2026 01:28:11 +0900</pubDate><guid>https://junegunn.github.io/fzf/color-themes/</guid><description> Theme Custom Terminal bg Query Reset Copy Note: some options shown here require fzf 0.73.0 or above. Options Colors Export</description></item><item><title>Reference</title><link>https://junegunn.github.io/fzf/reference/</link><pubDate>Sun, 24 May 2026 00:07:28 +0900</pubDate><guid>https://junegunn.github.io/fzf/reference/</guid><description>Reference # This is a Markdown rendition of the fzf man page. For the same content in your terminal, run fzf --man.
NAME # fzf - a command-line fuzzy finder
SYNOPSIS # fzf [options]
DESCRIPTION # fzf is an interactive filter program for any kind of list.
It implements a &amp;ldquo;fuzzy&amp;rdquo; matching algorithm, so you can quickly type in patterns with omitted characters and still get the results you want.</description></item><item><title>everything.fzf</title><link>https://junegunn.github.io/fzf/examples/everything.fzf/</link><pubDate>Tue, 06 May 2025 10:39:16 +0900</pubDate><guid>https://junegunn.github.io/fzf/examples/everything.fzf/</guid><description/></item><item><title>Automatic installation</title><link>https://junegunn.github.io/vim-plug/tips/automatic-installation/</link><pubDate>Wed, 05 Jun 2024 10:01:56 +0900</pubDate><guid>https://junegunn.github.io/vim-plug/tips/automatic-installation/</guid><description>Automatic installation # Vim script # Place the following code in your .vimrc before plug#begin() call, and Vim will automatically install vim-plug and the plugins when you open Vim.
let data_dir = has(&amp;#39;nvim&amp;#39;) ? stdpath(&amp;#39;data&amp;#39;) . &amp;#39;/site&amp;#39; : &amp;#39;~/.vim&amp;#39; if empty(glob(data_dir . &amp;#39;/autoload/plug.vim&amp;#39;)) silent execute &amp;#39;!curl -fLo &amp;#39;.data_dir.&amp;#39;/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&amp;#39; autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif &amp;#34; An example of vim-plug section --------------------------------------------- call plug#begin() Plug &amp;#39;junegunn/seoul256.</description></item><item><title>Browsing log streams</title><link>https://junegunn.github.io/fzf/tips/browsing-log-streams/</link><pubDate>Mon, 08 Jul 2024 22:34:43 +0900</pubDate><guid>https://junegunn.github.io/fzf/tips/browsing-log-streams/</guid><description>Browsing log streams with fzf # In order to allow changing queries and getting the updated results in real-time, fzf keeps the whole input list in memory and scans the list whenever the query changes.
So if you attach fzf to an endless input stream, such as server logs, the memory usage will grow indefinitely and fzf will eventually crash.
To work around this limitation, fzf provides --tail=NUM option that allows you to limit the number of items to keep in memory.</description></item><item><title>Processing multi-line items</title><link>https://junegunn.github.io/fzf/tips/processing-multi-line-items/</link><pubDate>Mon, 20 Jan 2025 11:41:30 +0900</pubDate><guid>https://junegunn.github.io/fzf/tips/processing-multi-line-items/</guid><description>Processing multi-line items # fzf is most commonly used to process single-line items like most other Unix tools. But you can also use it to process multi-line items as well and fzf is capable of properly displaying them in multi-line. To do that, you need to feed NUL-separated list to fzf and use --read0 option because a new line character can no longer be used to separate items.
# Many tools provide options to output NUL-separated list find * -print0 | fzf --read0 Customizing multi-line display # --gap # When working with multi-line items, it can be hard to visually separate consecutive items.</description></item><item><title>Ripgrep integration</title><link>https://junegunn.github.io/fzf/tips/ripgrep-integration/</link><pubDate>Tue, 10 Jun 2025 22:58:20 +0900</pubDate><guid>https://junegunn.github.io/fzf/tips/ripgrep-integration/</guid><description>Ripgrep integration, a walkthrough # The two pillars of fzf # The interactive terminal interface and the fuzzy matching algorithm are the two pillars of fzf. However, the usefulness of the latter is rather limited in a non-interactive environment. This is because by its very nature, it generates irrelevant matches and user confirmation is almost always necessary.
fzf --filter lt &amp;lt; /usr/share/dict/words | head -5 # lat # let # lit # lot # Lot &amp;ldquo;These are all good matches for &amp;rsquo;lt&amp;rsquo;, but which one is truly the right one?</description></item><item><title>Using fzf in your program</title><link>https://junegunn.github.io/fzf/tips/using-fzf-in-your-program/</link><pubDate>Wed, 05 Jun 2024 17:51:58 +0900</pubDate><guid>https://junegunn.github.io/fzf/tips/using-fzf-in-your-program/</guid><description>Using fzf in your program # While fzf is most commonly used in shell scripts, you can also use it in your programs written in different languages.
As a Go library # fzf is written in Go, so you can use it as a library in your Go programs. However, the API is experimental and subject to change. I&amp;rsquo;ll try to keep this gist up-to-date with the latest changes.</description></item></channel></rss>