mirror of
https://github.com/onkelbeh/cheatsheets.git
synced 2025-06-15 14:47:53 +02:00
Add shortcut keys for next character deletion, line cancellation, output paging, external editing, and screen repainting. Add shortcut key for next and change last to previous arguments.
4.1 KiB
4.1 KiB
title | category | layout | prism_languages | updated | weight | |
---|---|---|---|---|---|---|
Fish shell | CLI | 2017/sheet |
|
2017-10-16 | -1 |
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 |
{: .-shortcuts} |
Help
| Alt H
| Help on word (man) |
| Alt W
| Help on word (short descriptions) |
| Alt L
| List directory on cursor |
{: .-shortcuts}
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