GithubHelp home page GithubHelp logo

vsfzf's Introduction

Marketplace Installs Rating

extend "fzf fuzzy quick open",thakns rlivings39!!

  • set the initialWorkingDirectory to the root path of workspace

fzf-based fuzzy searching in VScode to open files/folders and filter ripgrep results

Any time that vscode requires interaction with the OS file dialog, the workflow can become much less efficient. This comes up when opening files outside of your workspace folders or adding a workspace folder. This extension solves that by providing these actions using fzf.

Provides an interface to search using ripgrep and browse the results using fzf. This is inspired by Vim's rg and fzf integration. The search pattern defaults to the word under your cursor or your current selection and is easily overridden.

Works on *nix, Mac, and Windows. Tested with CMD, PowerShell, and Git Bash on Windows.

Usage

Provides the commands:

  • fzf: Search using rg and fzf to search using fzf and ripgrep
  • fzf: Open file using fzf opens a terminal in which you can choose a file
  • fzf: Add workspace folder using fzf to add a workspace folder

On terminal launch, the pwd is chosen based on the active editor file. Also adds

  • fzf: Search in PWD using rg and fzf
  • fzf: Open file in PWD using fzf
  • fzf: Add workspace folder from PWD using fzf

which are the same as above but switches to parent directory of active file on every invocation.

Bind the commands to keyboard shortcuts to launch faster.

Configuration

Change the setting fzf-quick-open.initialWorkingDirectory to override the initial working directory used for the fzf terminal. Change fzf-quick-open.findDirectoriesCmd to change the command used to find directories. Something like fd --type d is very fast if you use fd.

By default fzf is used as the fuzzy matcher command. To change this to add flags or use another tool like skim (sk) modify the setting fzf-quick-open.fuzzyCmd to be the command that should be run. It will be plugged in to a context like: rg searchTerm | fzf --ansi --print0 ... and needs to support --ansi --print0 flags.

To change the rg case matching options use the setting fzf-quick-open.ripgrepSearchStyle to choose between:

  • Case sensitive
  • Ignore case
  • Smart case

To pass other flags to rg add them to fzf-quick-open.ripgrepOptions.

Setup

  1. Install fzf

  2. Install ripgrep

  3. For best performance you should set up fzf to use the amazingly fast fd

    ~/.config/fish/config.fish

    set --universal FZF_DEFAULT_COMMAND 'fd'

    ~/.bashrc

    echo "export FZF_DEFAULT_COMMAND='fd'" >> ~/.bashrc
  4. Configure the setting fzf-quick-open.findDirectoriesCmd to use fd: fd --type d

Examples

Search with ripgrep Search with rg and fzf

Open file Open file with fzf

Open workspace folder Add workspace folder with fzf

vsfzf's People

Contributors

buzz-dee avatar chana1024 avatar chapmanjacobd avatar dependabot[bot] avatar inch4tk avatar kamholtz avatar ngrnxk avatar rlivings39 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

prestonsn

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.