Skip to content

MrDowntempo/fish_files

 
 

Repository files navigation

Brett's Fish Files

A collection of configuration files and functions for the Fish shell. These would be installed in ~/.config/fish/, though I don't recommend overwriting your current setup wholesale. Pick and choose, use this repo as examples for your own exploration.

The folders

  • bash_scripts: some utilities that were too much trouble to port from Bash and work just as well run with hashbangs. They just need to be in the $PATH (some commands reference my local path, ~/scripts/fish, which will need updating).

  • completions: various completion configurations for custom commands.

  • custom: some files I source at login (from config.fish), mostly shared functions I think I need to have in memory (as opposed to autoloaded), and some aliases that don't make great functions.

  • functions: the mother lode. All of my favorite commands (and some experimental ones). Most have a description on the function declaration, so you can see it in source or by running the describe command that you'll find in this folder (which essentially runs functions -Dv, but prettier).

COMPLETIONS NOTE: for the file extension completion function to work, it needs to be able to find the filecomplete.rb script located in the bash_scripts directory. Edit functions/__complete_extension.fish to point to that file on your system.

All the functions

  • 64enc: encode a given image file as base64 and output css background property to clipboard
  • 64font: encode a given font file as base64 and output css background property to clipboard
  • 64svg: encode a given svg file as base64 and output css background-image property to clipboard
  • __auto_dir: if command fails see if it's a directory or local executable
  • __best_pager: Choose the best available pager (opinionated)
  • __complete_extension:
  • __exec_available: test if command is available
  • __expand_path: commandline function to expand str/str using fasd and fzf
  • __f_dir_regex:
  • __fuzzy_cd: n/a
  • __human_time: Humanize a time interval for display
  • __is_text: Test if a file is plain text
  • __ls_text_files: List all text files in current directory
  • __prev_token: Get the previous token on the command line
  • __re_extension: remove extension from word under/before cursor
  • __regex_from_args: Helper to create greedy regular expression from multiple arguments
  • __unfuck_previous_command:
  • _tide_item_doing_active:
  • _tide_item_doing_now:
  • _tide_item_message:
  • _tide_item_ssh_badge:
  • abbrs: Search abbreviations
  • ack: ack defaults, ~/.ackrc for more
  • acorn: Open Acorn.app with optional file(completion available)
  • add_user_path: Shortcut to add a user path
  • affd: Open Affinity Designer with optional file (completion available)
  • afff: Open Affinity Photo with optional file (completion available)
  • ag: Silver Surfer defaults, smart case, ignore VCS
  • alpha: Open ImageAlpha with optional file (completion available)
  • ax: Make file executable
  • badge: Set iTerm session badge
  • bak: Back up a file by moving or copying to FILE.bak
  • be:
  • bid: Get bundle id for app name
  • bld: Run howzit build system
  • box: Draw a box around text.
  • browser: Write output to a temp HTML file and open in default browser
  • bunches: Edit Bunches in Sublime
  • c: n/a
  • calc: CLI calculator
  • cat: Use bat instead of cat unless it's a Markdown file, then use mdless
  • cbp: ClipBoard Preview
  • cd_fuzz: n/a
  • cdb: Open broot with folders only
  • cdd: Choose cd dir from menu (fzf)
  • cdr: cd to a recently visited directory
  • cdt: Change dir based on TagFiler tags
  • chrome: Open Google Chrome with optional file (completion available)
  • cl: copy output of last command to clipboard
  • clip: Copy file to clipboard
  • code: n/a
  • copy:
  • corner_print:
  • cpu:
  • cpwd: Copy the current directory path to the clipboard
  • cr: Open CodeRunner
  • crush: pngcrush
  • cursor: Show or hide the terminal cursor
  • dadjoke: Get a dad joke from icanhazdadjoke.com
  • dash: Open argument in Dash
  • days_in: get the number of days in a given month/year
  • ddg: search duckduckgo
  • degit: Remove all traces of git from a folder
  • desc: Print the description of a Fish function.
  • describe: Show description for function
  • dhelp: alias dhelp open "dash://fish:"(urlenc $argv)
  • dirfor: get origin directory for running process
  • dman: Open man page in Dash
  • dockcomm: commit a docker image
  • docx2mmd: Convert docx to markdown: docx2md [source] [target]
  • eds: Shortcut for editscript
  • er: edit recent file using fasd and fzf
  • esc: Ruby cgi escape
  • eschtml: Ruby cgi HTML escape
  • extract: unarchive any file type
  • f: Open directory in Finder with jump shortcuts
  • fallback: allow a fallback value for variable
  • farch: Test Architecture of Framework
  • fasdfzf: Helper function to return a file via fasd and fzf
  • ffdir: fuzzy find a directory, pass root dir and sequential search strings
  • fffile: fuzzy find a file, pass root dir and sequential search strings
  • ffmark: fuzzy find a jump mark
  • filetype: Returns the kMDItemContentTypeTree for a file
  • findgist: select gist from list and display contents
  • findgistid: select gist from list and display contents
  • finish: Finish last unfinished task by search
  • fire: Open Firefox with optional file (completion available)
  • fish_prompt: Write out the prompt
  • fix: Fix up last command with search/replace
  • flush: Flush DNS cache
  • fo: Open file using jump shortcuts and fuzzy matching
  • fp: Find and list processes matching a case-insensitive fuzzy-match string
  • ft: A shortcut for mdfinding tagged items system-wide
  • fuck: Correct your previous console command
  • g2: Fish "jump" replacement with fuzzy subdirectory matching
  • gc: n/a
  • geminfo: Get info for a gem with partial name matching
  • geminstall: install a gem with fuzzy search
  • gemuninstall: Uninstall a gem with partial name matching
  • get_ext: Get the file extension from the argument
  • get: alias get=git clone
  • getignore: Get ignore file from gitignore.io and save to .gitignore
  • getignores: Pull gitignore.io list of available .gitignore files
  • gg: Commit pending changes and quote all args as message
  • gitar: Automatically add new and remove deleted files from the git index
  • gitrelease: Create a git release
  • gmine: Resolve git conflicts with mine
  • gsearch: Grep git commit history
  • gt: jump to top level of git repo
  • gtheirs: Resolve git conflicts with theirs
  • halp: Get help for any builtin, alias, or function
  • hook: n/a
  • hooks: Return a list of files hooked to target (Hook.app)
  • howlong: alias howlong=echo $CMD_DURATION
  • hs: Search, select, and exec from history
  • idea: Record an idea with doing
  • imdown: Test for internet connection and notify when it comes up
  • imgsize: Quickly get image dimensions from the command line
  • index_of: return the 1-based index of the first argument in remaining arguments
  • ip: Get external IP address
  • ips: Display all ip addresses for this host
  • is: test if given file is of a file type. is TYPE FILE
  • istext: test if given file is plain text
  • jfind: jtag: search for tags
  • jothers: jtag: List tags of other posts containing (all) tags
  • js: lint with jslint
  • jump_fasd: n/a
  • jump: Fish "jump" replacement with subdirectory matching
  • lb: Select file in LaunchBar, fall back to the current directory
  • lbash: launch bash login shell
  • license:
  • lld: n/a
  • lno: Print file with line numbers
  • lsgrep: Wildcard folder/file search
  • lsregister:
  • lsz: ls for inside of compressed archives
  • lt: List directory from oldest to newest
  • ltr: List directory from newest to oldest
  • m.: Check if the current directory is bookmarked
  • mack: ack for markdown
  • md: n/a
  • mdgrep: alias mdgrep=rg -S --type markdown
  • mem:
  • mkdir: mkdir with subdirs, option to cd after creating
  • mmdc: Open MultiMarkdown Composer with optional file (completion available)
  • nope: echo "nope"
  • o: Shortcut to open an app from the command line
  • optim: Open ImageOptim with optional file (completion available)
  • pbgist: private gist from clipboard
  • pbgistp: private gist from clipboard
  • pbp: Pasteboard Preview
  • pbpmd: Pasteboard Markdown Preview
  • percentof: Quick calculation for sale discounts
  • percentoff: Quick calculation for sale discounts
  • pg: alias pg=ps -ax | grep -i
  • pless: cat a file with pygments highlighting
  • pman: Display a man page as a PostScript PDF in Preview.app
  • prev: Open Preview with optional file (completion available)
  • preview: Preview text files using fzf and bat
  • prioritize: set a numeric prefix on a file for sorting
  • prompt_message:
  • r: Run Reiki via bash
  • raise: Like ruby raise, but for fish
  • rule: Print a horizontal rule
  • rulem: Print a horizontal rule with message
  • rvm: n/a
  • serve: Start a local server for the current directory, open in browser
  • shellesc: Ruby shellwords escape
  • shellunesc: Ruby shellwords unescape
  • shellwords: Split a string like a shell would
  • shorten: Truncate every line of input to specified width
  • shortest: Return the shortest string in array
  • showalias: Show an alias
  • sign: alias sign=codesign --force --verbose --sign 'Developer ID Application' -o runtime
  • skylight: alias skylight=skylighting -n -t ~/styles/kde/breeze-dark.theme
  • spell: Get spelling options from aspell
  • spellcheck: Check all Markdown files in git repo (recursive)
  • spellf: Get spelling options from aspell
  • src: reload config file
  • sublp: Open a Sublime Text project (completion available)
  • sum: Take a list of numbers and return the sum
  • td: [Create and] open project todo
  • tmj: For use with my tmux utility (bash_scripts/tm)
  • todos: alias todos=ack --nobreak --nocolor "(TODO|FIXME):"|sed -E "s/(.:[[:digit:]]+):.((TODO|FIXME):.)/\2 :>> \1/"|grep -E --color=always ":>>.:\d+"
  • tower: Open Tower for directory (default CWD)
  • tp: Open TaskPaper with optional file (completion available)
  • unbak: remove bak extension
  • uncolor: Remove color codes from string
  • unesc: Ruby cgi unescape
  • up: cd to a parent folder with fuzzy matching
  • updown: cd to a directory and then fuzzy search its tree
  • urlenc: url encode the passed string
  • v: vim via fasd and fzf
  • verify: alias verify=codesign --deep -vv --verify
  • warn: Echo to STDERR
  • watchthis: Watch for changes in the current directory and execute command
  • xc: Open Xcode with optional file (completion available)
  • yep: echo "yep"
  • yn: Simple pass/fail test for given command
  • z: Custom fasd cd with fzf
  • zipup: exports a clean copy of the current git repo (master) to a zip file

Utility functions

  • __by_length:
  • __ff_dir_regex:
  • __ff_dir_to_regex:
  • __should_na:
  • __sort_by_length:
  • append_slash: append a slash to each line/argument if needed
  • map:
  • remove_empty: removes empty elements from an array
  • return_array: Echo out an array one line at a time
  • shorten_home: substitutes $HOME with ~
  • shortest_common:
  • slash_if_dir: Add trailing slash if directory
  • slugify:
  • to_slug:
  • trim_pwd: removes the current working directory from an array of paths

I'll update these every once in a while. If you're digging through and spot a problem, a stupid mistake, or something that could just plain be done better, please add an issue and let me know!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 98.7%
  • Ruby 1.3%