Keys
Shortcut |
Description |
Alt ← / Alt → |
Move word |
^U |
Delete to beginning |
^W |
Delete to previous / |
^D |
Delete next character |
Alt D |
Delete next word |
^C |
Cancel line |
Alt P |
Page output |
Alt ↑ / Alt ↓ |
Previous / next arguments |
Alt E / Alt V |
Open in external editor |
^L |
Repaint screen |
Help
Alt H |
Help on word (man) |
Alt W |
Help on word (short descriptions) |
Alt L |
List directory on cursor |
Function
Writing functions
function my_function --description "My description"
···
end
Conditional
if test -f foo.txt
···
else if test -f bar.txt
···
else
···
end
Combining tests
if test -f foo.txt && test -f bar.txt
if test -f foo.txt -a -f bar.txt
if test \( -f foo.txt \) -a -f \( bar.txt \)
Events
Emitting
emit my_event
Listening
function myhook --on-event my_event
···
end
This lets you hook onto events, such as fish_prompt
.
Completions
Creating completions
~/.fish/completions/mycommand.fish
complete -c mycommand ...
complete -c mycommand ...
complete -c mycommand ...
Options
complete \
-c # command
-s # short option
-l # long option
-r, --require-parameter
-f, --no-files
-x # exclusive (-r -f)
-n '__fish_use_subcommand' # condition
--description ".."
Example
complete -c $cmd \
-n '__fish_use_subcommand' \
-x -a hello \
--description 'lol'
Conditions
Condition |
Description |
-n __fish_complete_directories STRING DESCRIPTION |
performs path completion on STRING, allowing only directories, and giving them the description DESCRIPTION. |
-n __fish_complete_path STRING DESCRIPTION |
performs path completion on STRING, giving them the description DESCRIPTION. |
-n __fish_complete_groups |
prints a list of all user groups with the groups members as description. |
-n __fish_complete_pids |
prints a list of all processes IDs with the command name as description. |
-n __fish_complete_suffix SUFFIX |
performs file completion allowing only files ending in SUFFIX. The mimetype database is used to find a suitable description. |
-n __fish_complete_users |
prints a list of all users with their full name as description. |
-n __fish_print_filesystems |
prints a list of all known file systems. Currently, this is a static list, and not dependent on what file systems the host operating system actually understands. |
-n __fish_print_hostnames |
prints a list of all known hostnames. This functions searches the fstab for nfs servers, ssh for known hosts and checks the /etc/hosts file. |
-n __fish_print_interfaces |
prints a list of all known network interfaces. |
-n __fish_print_packages |
prints a list of all installed packages. This function currently handles Debian, rpm and Gentoo packages. |
-n __fish_use_subcommand |
|
-n __fish_seen_subcommand_from init |
|
Example
complete -c ruby -s X -x -a '(__fish_complete_directories (commandline -ct))' --description 'Directory'
Examples
Start each example with complete -c cmdname
-x
# no filename completion
-s d -x -a "read skip"
# -d {read|skip}
-s d -x
# -d <something>
-s f -r
# -f FILE
-s f -l force
# -f, --force
-a "(cat /etc/passwd | cut -d : -f 1)"
# first argument as filename
0 Comments for this cheatsheet. Write yours!