8000 GitHub - mnacamura/skim.fish: Augment your fish command line with skim key bindings.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on May 8, 2024. It is now read-only.

mnacamura/skim.fish

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

skim.fish

This is a fork of PatrickF1's fzf.fish. Instead of fzf, it works with skim, a clone of fzf written in Rust.

Installation

fisher install mnacamura/skim.fish

Notable changes from original fzf.fish

  • Skim options are set in SKIM_DEFAULT_OPTIONS.
  • Original README for fzf.fish:


    fzf.fish πŸ”πŸŸ

    latest release badge build status badge awesome badge

    Augment your Fish command line with mnemonic key bindings to efficiently find what you need using fzf.

    Features

    Use fzf.fish to interactively find and insert different shell entities into the command line:

    File paths

    gif directory

    • Search input: recursive listing of current directory's non-hidden files
    • Key binding and mnemonic: Ctrl+Alt+F (F for file)
    • Preview window: file with syntax highlighting, directory contents, or file type
    • Remarks
      • appends / if the selection is a directory and the only path selected so you can hit ENTER to immediately cd into it
      • if the current token is a directory with a trailing slash (e.g. .config/<CURSOR>), then that directory is searched instead
      • ignores files that are also ignored by git
      • Tab to multi-select

    Modified paths

    gif git status

    • Search input: the current repository's git status
    • Key binding and mnemonic: Ctrl+Alt+S (S for status)
    • Remarks: Tab to multi-select

    A commit hash

    gif git log

    • Search input: the current repository's formatted git log
    • Key binding and mnemonic: Ctrl+Alt+L (L for log)
    • Preview window: commit message and diff

    A previously run command

    gif command history

    • Search input: Fish's command history
    • Key binding and mnemonic: Ctrl+R (R for reverse-i-search)
    • Preview window: the entire command with Fish syntax highlighting

    A shell variable

    gif shell variables

    • Search input: all the variable names of the environment currently in scope
    • Key binding and mnemonic: Ctrl+V (V for variable)
    • Preview window: the scope info and values of the variable
    • Remarks
      • $history is excluded for technical reasons so use the search command history feature instead to inspect it

    The prompt used in the screencasts was created using IlanCosman/tide.

    Installation

    First, install a proper version of these CLI dependencies:

    CLI Minimum version required Description
    fish 3.2.0 a modern shell
    fzf 0.27.2 fuzzy finder that powers this plugin
    fd 7.5.0 faster and more colorful alternative to find
    bat 0.16.0 smarter cat with syntax highlighting

    The search directory feature uses fd and bat to list and preview files. If your package manager doesn't install them as fd and bat respectively, then you can symlink them to those names.

    Next, install this plugin with Fisher.

    fzf.fish can be installed manually or with other plugin managers but only Fisher is officially supported.

    fisher install PatrickF1/fzf.fish

    Configuration

    Customize key bindings

    fzf.fish includes an ergonomic wrapper for configuring its key bindings. Read its documentation with this command:

    fzf_configure_bindings --help

    Once you've determined the desired fzf_configure_bindings command, add it to your config.fish in order to persist the bindings.

    Always pass some options to fzf

    fzf supports setting default options via the FZF_DEFAULT_OPTS environment variable. If it is set, fzf implicitly prepends it to the options passed to it on every execution, scripted and interactive.

    By default, fzf.fish will set a sane FZF_DEFAULT_OPTS every time before it executes fzf. However, if you export your own FZF_DEFAULT_OPTS variable, then fzf.fish will forgo setting it and yours will be used instead. See functions/_fzf_wrapper.fish for more details.

    Pass fzf options for a specific feature

    The following variables can store custom options that will be passed to fzf by their respective feature:

    Feature Variable
    Search directory fzf_dir_opts
    Search git status fzf_git_status_opts
    Search git log fzf_git_log_opts
    Search command history fzf_history_opts
    Search shell variables fzf_shell_vars_opts

    They are always appended last to fzf's argument list. Because fzf uses the option appearing last when options conflict, your custom options can override hardcoded options. Custom fzf options unlocks a variety of possibilities in customizing and augmenting each feature such as:

    Change the command used to preview files

    The search directory feature, by default, uses bat to preview the contents of files. bat is a well-adopted cat replacement with syntax highlighting, line numbers, and more. If you would like to change the preview tool (e.g. to cat to avoid installing a new dependency, or to add custom logic such as binary or image preview), you may set the fzf_preview_file_cmd variable. For example, in your config.fish, you may put:

    set fzf_preview_file_cmd cat

    Change the command used to preview directories

    The search directory feature, by default, uses ls to preview the contents of directories. To integrate with the variety of ls replacements available (e.g. exa, lsd, tree), the command used to preview directories is configurable through the fzf_preview_dir_cmd variable. Set fzf_preview_dir_cmd in your config.fish:

    set fzf_preview_dir_cmd exa --all --color=always

    Change the files searched

    To pass custom options to fd when it is executed to populate the list of files for the search directory feature, set the fzf_fd_opts variable. For example, to include hidden files but not .git, put this in your config.fish:

    set fzf_fd_opts --hidden --exclude=.git

    Further reading

    Find answers to these questions and more in the project Wiki:

About

Augment your fish command line with skim key bindings.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 99.5%
  • Makefile 0.5%
0