This commit is contained in:
Rico Sta. Cruz 2015-05-26 15:14:23 +08:00
parent 56d262d31d
commit cbfaa5ed76
2 changed files with 106 additions and 0 deletions

94
fish-shell.md Normal file
View File

@ -0,0 +1,94 @@
---
title: Fish shell
---
## Function
function my_function
..
end
--description "My description"
### Conditional
if test -f foo.txt
else if test -f bar.txt
else
end
### Combining tests
test -f foo.txt -a -f bar.txt
test \( -f foo.txt \) -a -f \( bar.txt \)
### Events
emit my_event
function myhook --on-event my_event
...
end
## Completions
### Creating completions
# ~/.fish/completions/mycommand.fish
complete -c mycommand ...
complete -c mycommand ...
complete -c mycommand ...
### Options
-c command
-s short option
-l long option
-r, --require-parameter
-f, --no-files
-x exclusive (-r -f)
-n '__fish_use_subcommand' condition
--description ".."
# complete -c $cmd -n '__fish_use_subcommand' -x -a hello --description 'lol'
### Conditions
__fish_complete_directories STRING DESCRIPTION performs path completion on STRING, allowing only directories, and giving them the description DESCRIPTION.
__fish_complete_path STRING DESCRIPTION performs path completion on STRING, giving them the description DESCRIPTION.
__fish_complete_groups prints a list of all user groups with the groups members as description.
__fish_complete_pids prints a list of all processes IDs with the command name as description.
__fish_complete_suffix SUFFIX performs file completion allowing only files ending in SUFFIX. The mimetype database is used to find a suitable description.
__fish_complete_users prints a list of all users with their full name as description.
__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.
__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.
__fish_print_interfaces prints a list of all known network interfaces.
__fish_print_packages prints a list of all installed packages. This function currently handles Debian, rpm and Gentoo packages.
__fish_use_subcommand
__fish_seen_subcommand_from init
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

View File

@ -45,6 +45,18 @@ layout: default
array.shift() //=> a array == [b,c,d,e]
array.splice(2, 1) //=> [c] array == [a,b,d,e]
### Iterables
.find(n => ...) // es6
.findIndex(...) // es6
.every(n => ...) // ie9+
.some(n => ..) // ie9+
.map(n => ...) // ie9+
.reduce((total, n) => total) // ie9+
.reduceRight(...)