Path to this page:
Subject: CVS commit: pkgsrc/shells/fish
From: Wen Heping
Date: 2017-05-13 03:19:05
Message id: 20170513011905.D913BFBE4@cvs.NetBSD.org
Log Message:
Update to 2.5.0
Reviewed by: joerg@
Upstream changes:
Release Notes for fish 2.5.0 (released February 3, 2017)
The Home, End, Insert, Delete, Page Up and Page Down keys work in Vi-style \
key bindings (#3731).
Platform Changes
Starting with version 2.5, fish requires a more up-to-date version of C++, \
specifically C++11 (from 2011). This affects some older platforms:
Linux
For users building from source, GCC's g++ 4.8 or later, or LLVM's clang 3.3 or \
later, are known to work. Older platforms may require a newer compiler \
installed. Unfortunately, because of the complexity of the toolchain, binary \
packages are no longer published by the fish-shell developers for the following \
platforms:
Red Hat Enterprise Linux and CentOS 5 & 6 for 64-bit builds
Ubuntu 12.04 (EoLTS April 2017)
Debian 7 (EoLTS May 2018)
Installing newer version of fish on these systems will require building from source.
OS X SnowLeopard
Starting with version 2.5, fish requires a C++11 standard library on OS X 10.6 \
("SnowLeopard"). If this library is not installed, you will see this \
error: dyld: Library not loaded: /usr/lib/libc++.1.dylib MacPorts is the easiest \
way to obtain this library. After installing the SnowLeopard MacPorts release \
from the install page, run: sudo port -v install libcxx Now fish should launch \
successfully. (Please open an issue if it does not.) This is only necessary on \
10.6. OS X 10.7 and later include the required library by default.
Other significant changes
Attempting to exit with running processes in the background produces a \
warning, then signals them to terminate if a second attempt to exit is made. \
This brings the behaviour for running background processes into line with \
stopped processes. (#3497)
random can now have start, stop and step values specified, or the new choice \
subcommand can be used to pick an argument from a list (#3619).
A new key bindings preset, fish_hybrid_key_bindings, including all the \
Emacs-style and Vi-style bindings, which behaves like fish_vi_key_bindings in \
fish 2.3.0 (#3556).
function now returns an error when called with invalid options, rather than \
defining the function anyway (#3574). This was a regression present in fish 2.3 \
and 2.4.0.
fish no longer prints a warning when it identifies a running instance of an \
old version (2.1.0 and earlier). Changes to universal variables may not \
propagate between these old versions and 2.5b1.
Improved compatiblity with Android (#3585), MSYS/mingw (#2360), Solaris \
(#3456, #3340)
Like other shells, the test builting now returns an error for numeric \
operations on invalid integers (#3346, #3581).
complete no longer recognises --authoritative and --unauthoritative options, \
and they are marked as obsolete.
status accepts subcommands, and should be used like status is-interactive. \
The old options continue to be supported for the foreseeable future (#3526), \
although only one subcommand or option can be specified at a time.
Selection mode (used with "begin-selection") no longer selects a \
character the cursor does not move over (#3684).
List indexes are handled better, and a bit more liberally in some cases \
(echo $PATH[1 .. 3] is now valid) (#3579).
The fish_mode_prompt function is now simply a stub around \
fish_default_mode_prompt, which allows the mode prompt to be included more \
easily in customised prompt functions (#3641).
Notable fixes and improvements
alias, run without options or arguments, lists all defined aliases, and \
aliases now include a description in the function signature that identifies \
them.
complete accepts empty strings as descriptions (#3557).
command accepts -q/--quiet in combination with --search (#3591), providing a \
simple way of checking whether a command exists in scripts.
Abbreviations can now be renamed with abbr --rename OLD_KEY NEW_KEY (#3610).
The command synopses printed by --help options work better with copying and \
pasting (#2673).
help launches the browser specified by the $fish_help_browser variable if it \
is set (#3131).
History merging could lose items under certain circumstances and is now \
fixed (#3496).
The $status variable is now set to 123 when a syntactically invalid command \
is entered (#3616).
Exiting fish now signals all background processes to terminate, not just \
stopped jobs (#3497).
A new prompt_hostname function which prints a hostname suitable for use in \
prompts (#3482).
The __fish_man_page function (bound to Alt-h by default) now tries to \
recognize subcommands (e.g. git add will now open the "git-add" man \
page) (#3678).
A new function edit_command_buffer (bound to Alt-e & Alt-v by default) \
to edit the command buffer in an external editor (#1215, #3627).
set_color now supports italics (--italics), dim (--dim) and reverse \
(--reverse) modes (#3650).
Filesystems with very slow locking (eg incorrectly-configured NFS) will no \
longer slow fish down (#685).
Improved completions for apt (#3695), fusermount (#3642), make (#3628), \
netctl-auto (#3378), nmcli (#3648), pygmentize (#3378), and tar (#3719).
Added completions for:
VBoxHeadless (#3378)
VBoxSDL (#3378)
base64 (#3378)
caffeinate (#3524)
dconf (#3638)
dig (#3495)
dpkg-reconfigure (#3521 & #3522)
feh (#3378)
launchctl (#3682)
lxc (#3554 & #3564),
mddiagnose (#3524)
mdfind (#3524)
mdimport (#3524)
mdls (#3524)
mdutil (#3524)
mkvextract (#3492)
nvram (#3524)
objdump (#3378)
sysbench (#3491)
tmutil (#3524)
Release Notes for fish 2.4.0 (released November 8, 2016)
Significant changes
The clipboard integration has been revamped with explicit bindings. The \
killring commands no longer copy from, or paste to, the X11 clipboard - use the \
new copy (C-x) and paste (C-v) bindings instead. The clipboard is now available \
on OS X as well as systems using X11 (e.g. Linux). (#3061)
history uses subcommands (history delete) rather than options (history \
--delete) for its actions (#3367). You can no longer specify multiple actions \
via flags (e.g., history --delete --save something).
New history options have been added, including --max=n to limit the number \
of history entries, --show-time option to show timestamps (#3175, #3244), and \
--null to null terminate history entries in the search output.
history search is now case-insensitive by default (which also affects \
history delete) (#3236).
history delete now correctly handles multiline commands (#31).
Vi-style bindings no longer include all of the default emacs-style bindings; \
instead, they share some definitions (#3068).
If there is no locale set in the environment, various known system \
configuration files will be checked for a default. If no locale can be found, \
en_US-UTF.8 will be used (#277).
A number followed by a caret (e.g. 5^) is no longer treated as a redirection \
(#1873).
The $version special variable can be overwritten, so that it can be used for \
other purposes if required.
Notable fixes and improvements
The fish_realpath builtin has been renamed to realpath and made compatible \
with GNU realpath when run without arguments (#3400). It is used only for \
systems without a realpath or grealpath utility (#3374).
Improved color handling on terminals/consoles with 8-16 colors, particularly \
the use of bright named color (#3176, #3260).
fish_indent can now read from files given as arguments, rather than just \
standard input (#3037).
Fuzzy tab completions behave in a less surprising manner (#3090, #3211).
jobs should only print its header line once (#3127).
Wildcards in redirections are highlighted appropriately (#2789).
Suggestions will be offered more often, like after removing characters (#3069).
history --merge now correctly interleaves items in chronological order (#2312).
Options for fish_indent have been aligned with the other binaries - in \
particular, -d now means --debug. The --dump option has been renamed to \
--dump-parse-tree (#3191).
The display of bindings in the Web-based configuration has been greatly \
improved (#3325), as has the rendering of prompts (#2924).
fish should no longer hang using 100% CPU in the C locale (#3214).
A bug in FreeBSD 11 & 12, Dragonfly BSD & illumos prevented fish \
from working correctly on these platforms under UTF-8 locales; fish now avoids \
the buggy behaviour (#3050).
Prompts which show git repository information (via __fish_git_prompt) are \
faster in large repositories (#3294) and slow filesystems (#3083).
fish 2.3.0 reintroduced a problem where the greeting was printed even when \
using read; this has been corrected again (#3261).
Vi mode changes the cursor depending on the current mode (#3215).
Command lines with escaped space characters at the end tab-complete \
correctly (#2447).
Added completions for:
arcanist (#3256)
connmanctl (#3419)
figlet (#3378)
mdbook (#3378)
ninja (#3415)
p4, the Perforce client (#3314)
pygmentize (#3378)
ranger (#3378)
Improved completions for aura (#3297), abbr (#3267), brew (#3309), chown \
(#3380, #3383),cygport (#3392), git (#3274, #3226, #3225, #3094, #3087, #3035, \
#3021, #2982, #3230), kill & pkill (#3200), screen (#3271), wget (#3470), \
and xz (#3378).
Distributors, packagers and developers will notice that the build process \
produces more succinct output by default; use make V=1 to get verbose output \
(#3248).
Improved compatibility with minor platforms including musl (#2988), Cygwin \
(#2993), Android (#3441, #3442), Haiku (#3322) and Solaris.
Automatic cursor changes are now only enabled on the subset of XTerm \
versions known to support them, resolving a problem where older versions printed \
garbage to the terminal before and after every prompt (#3499).
Improved the title set in Apple Terminal.app.
Added completions for defaults and improved completions for diskutil (#3478).
Release Notes for fish 2.3.1 (released July 3, 2016)
This is a functionality and bugfix release. This release does not contain all \
the changes to fish since the last release, but fixes a number of issues \
directly affecting users at present and includes a small number of new features.
Significant changes
A new fish_key_reader binary for decoding interactive keypresses (#2991).
fish_mode_prompt has been updated to reflect the changes in the way the Vi \
input mode is set up (#3067), making this more reliable.
fish_config can now properly be launched from the OS X app bundle (#3140).
Notable fixes and improvements
Extra lines were sometimes inserted into the output under Windows (Cygwin \
and Microsoft Windows Subsystem for Linux) due to TTY timestamps not being \
updated (#2859).
The string builtin's match mode now handles the combination of -rnv (match, \
invert and count) correctly (#3098).
Improvements to TTY special character handling (#3064), locale handling \
(#3124) and terminal environment variable handling (#3060).
Work towards handling the terminal modes for external commands launched from \
initialisation files (#2980).
Ease the upgrade path from fish 2.2.0 and before by warning users to restart \
fish if the string builtin is not available (#3057).
type -a now syntax-colorizes function source output.
Added completions for alsamixer, godoc, gofmt, goimports, gorename, lscpu, \
mkdir, modinfo, netctl-auto, poweroff, termite, udisksctl and xz (#3123).
Improved completions for apt (#3097), aura (#3102),git (#3114), npm (#3158), \
string and suspend (#3154).
Release Notes for fish 2.3.0 (released May 20, 2016)
Significant Changes
A new string builtin to handle⦠strings! This builtin will measure, \
split, search and replace text strings, including using regular expressions. It \
can also be used to turn lists into plain strings using join. string can be used \
in place of sed, grep, tr, cut, and awk in many situations. (#2296)
After seeing an escape character wait up to 300ms for an additional \
character. This is consistent with readline (e.g. bash) and can be configured \
via the fish_escape_delay_ms variable. This allows using escape as the Meta \
modifier. (#1356)
Add new directories for vendor functions and configuration snippets (#2498)
A new fish_realpath builtin and associated function to allow the use of \
realpath even on those platforms that don't ship an appropriate command. (#2932)
Alt-# toggles the current command line between commented and uncommented \
states, making it easy to save a command in history without executing it.
The fish_vi_mode function is now deprecated in favour of fish_vi_key_bindings
Backward-incompatible changes
Unmatched globs will now cause an error, except when used with for, set or \
count (#2719, #2394)
and and or will now bind to the closest if or while, allowing compound \
conditions without begin and end (#1428)
set -ql now searches up to function scope for variables (#2502)
status -f will now behave the same when run as the main script or using \
source (#2643)
source no longer puts the file name in $argv if no arguments are given (#139)
Other Notable Fixes and Improvements
Fish no longer silences errors in config.fish (#2702)
Move the history file to $XDG_DATA_HOME/fish (or ~/.local/share if it has \
not been set)
Directory autosuggestions will now descend as far as possible if there is \
only one child directory (#2531)
Add support for bright colors (#1464)
Allow Ctrl-J (\cj) to be bound separately from Ctrl-M (\cm) (#217)
psub now has a "-s"/"-suffix" option to name the \
temporary file with that suffix
Enable 24-bit colors on select terminals (#2495)
Support for SVN status in the prompt (#2582)
Mercurial and SVN support have been added to the Classic + Git (now Classic \
+ VCS) prompt (via the new __fish_vcs_prompt function) (#2592)
export now handles variables with a "=" in the value (#2403)
Avoid confusing the terminal line driver with non-printing characters in \
fish_title(#2453)
New completions for:
alsactl
Archlinuxâs asp, makepkg
Atomâs apm (#2390)
entr - the "Event Notify Test Runner" (#2265)
Fedoraâs dnf (#2638)
OSX diskutil (#2738)
pkgng (#2395)
pulseaudioâs pacmd and pactl
rmmod (#3007)
rustâs rustc and cargo (#2409)
sysctl (#2214)
systemdâs machinectl (#2158), busctl (#2144), systemd-nspawn, \
systemd-analyze, localectl, timedatectl
and more
Fish no longer has a function called sgrep, freeing it for user \
customization (#2245)
A rewrite of the completions for cd, fixing a few bugs (#2299, #2300, #562)
Linux VTs now run in a simplified mode to avoid issues (#2311)
The vi-bindings now inherit from the emacs bindings
Fish will also execute fish_user_key_bindings when in vi-mode
funced will now also check $VISUAL (#2268)
A new suspend function (#2269)
Subcommand completion now works better with split /usr (#2141)
The command-not-found-handler can now be overridden by defining a function \
called __fish_command_not_found_handler in config.fish (#2331)
A few fixes to the Sorin theme
PWD shortening in the prompt can now be configured via the \
fish_prompt_pwd_dir_length variable, set to the length per path component \
(#2473)
fish now ships a skeleton file for /etc/fish/config.fish that only contains \
some documentation, the included code has been moved to the corresponding file \
in /usr (#2799)
Release Notes for fish 2.2.0 (released July 12, 2015)
Significant Changes
Abbreviations: the new `abbr` command allows for interactively-expanded \
abbreviations, allowing quick access to frequently-used commands (#731).
Vi mode: run `fish_vi_mode` to switch fish into the key bindings and prompt \
familiar to users of the Vi editor (#65).
New inline and interactive pager, which will be familiar to users of zsh (#291).
Underlying architectural changes: the `fishd` universal variable server has \
been removed as it was a source of many bugs and security problems. Notably, old \
fish sessions will not be able to communicate universal variable changes with \
new fish sessions. For best results, restart all running instances of `fish`.
The web-based configuration tool has been redesigned, featuring a prompt \
theme chooser and other improvements.
New German, Brazilian Portuguese, and Chinese translations.
Backward-incompatible changes
These are kept to a minimum, but either change undocumented features or are too \
hard to use in their existing forms. These changes may break existing scripts.
`commandline` no longer interprets functions "in reverse", instead \
behaving as expected (#1567).
The previously-undocumented `CMD_DURATION` variable is now set for all \
commands and contains the execution time of the last command in milliseconds \
(#1585). It is no longer exported to other commands (#1896).
`if` / `else` conditional statements now return values consistent with the \
Single Unix Specification, like other shells (#1443).
A new "top-level" local scope has been added, allowing local \
variables declared on the commandline to be visible to subsequent commands. \
(#206)
Other notable fixes and improvements
New documentation design (#1662), which requires a Doxygen version 1.8.7 or \
newer to build.
Fish now defines a default directory for other packages to provide \
completions. By default this is `/usr/share/fish/vendor-completions.d`; on \
systems with `pkgconfig` installed this path is discoverable with `pkg-config \
--variable completionsdir fish`.
A new parser removes many bugs; all existing syntax should keep working.
New `fish_preexec` and `fish_postexec` events are fired before and after job \
execution respectively (#1549).
Unmatched wildcards no longer prevent a job from running. Wildcards used \
interactively will still print an error, but the job will proceed and the \
wildcard will expand to zero arguments (#1482).
The `.` command is deprecated and the `source` command is preferred (#310).
`bind` supports "bind modes", which allows bindings to be set for \
a particular named mode, to support the implementation of Vi mode.
A new `export` alias, which behaves like other shells (#1833).
`command` has a new `--search` option to print the name of the disk file \
that would be executed, like other shells' `command -v` (#1540).
`commandline` has a new `--paging-mode` option to support the new pager.
`complete` has a new `--wraps` option, which allows a command to \
(recursively) inherit the completions of a wrapped command (#393), and `complete \
-e` now correctly erases completions (#380).
Completions are now generated from manual pages by default on the first run \
of fish (#997).
`fish_indent` can now produce colorized (`--ansi`) and HTML (`--html`) \
output (#1827).
`functions --erase` now prevents autoloaded functions from being reloaded in \
the current session.
`history` has a new `--merge` option, to incorporate history from other \
sessions into the current session (#825).
`jobs` returns 1 if there are no active jobs (#1484).
`read` has several new options:
`--array` to break input into an array (#1540)
`--null` to break lines on NUL characters rather than newlines (#1694)
`--nchars` to read a specific number of characters (#1616)
`--right-prompt` to display a right-hand-side prompt during interactive \
read (#1698).
`type` has a new `-q` option to suppress output (#1540 and, like other \
shells, `type -a` now prints all matches for a command (#261).
Pressing F1 now shows the manual page for the current command (#1063).
`fish_title` functions have access to the arguments of the currently running \
argument as `$argv[1]` (#1542).
The OS command-not-found handler is used on Arch Linux (#1925), nixOS \
(#1852), openSUSE and Fedora (#1280).
`Alt`+`.` searches backwards in the token history, mapping to the same \
behavior as inserting the last argument of the previous command, like other \
shells (#89).
The `SHLVL` environment variable is incremented correctly (#1634 & #1693).
Added completions for `adb` (#1165 & #1211), `apt` (#2018), `aura` \
(#1292), `composer` (#1607), `cygport` (#1841), `dropbox` (#1533), `elixir` \
(#1167), `fossil`, `heroku` (#1790), `iex` (#1167), `kitchen` (#2000), `nix` \
(#1167), `node`/`npm` (#1566), `opam` (#1615), `setfacl` (#1752), `tmuxinator` \
(#1863), and `yast2` (#1739).
Improved completions for `brew` (#1090 & #1810), `bundler` (#1779), `cd` \
(#1135), `emerge` (#1840),`git` (#1680, #1834 & #1951), `man` (#960), \
`modprobe` (#1124), `pacman` (#1292), `rpm` (#1236), `rsync` (#1872), `scp` \
(#1145), `ssh` (#1234), `sshfs` (#1268), `systemctl` (#1462, #1950 & #1972), \
`tmux` (#1853), `vagrant` (#1748), `yum` (#1269), and `zypper` (#1787).
Files: