mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-22 04:18:17 +08:00
CHANGELOG: work on 3.3.0
This commit is contained in:
parent
a9b4ad4b9f
commit
f90577ddf6
|
@ -3,9 +3,12 @@ fish 3.3.0 (released ???)
|
|||
|
||||
Notable improvements and fixes
|
||||
------------------------------
|
||||
- ``fish_config`` gained a ``prompt`` subcommand to show and pick from the sample prompts directly in the terminal, instead of having to open a webbrowser. For example ``fish_config prompt choose default`` loads the default prompt in the current session (:issue:`7958`).
|
||||
- The documentation has been reorganized to be easier to understand (:issue:`7773`).
|
||||
|
||||
Syntax changes and new commands
|
||||
-------------------------------
|
||||
- Empty variable names are no longer allowed.
|
||||
- Escaped characters like ``\x41`` are no longer valid in a variable name (:issue:`7969`).
|
||||
|
||||
Deprecations and removed features
|
||||
|
@ -17,7 +20,7 @@ Deprecations and removed features
|
|||
Scripting improvements
|
||||
----------------------
|
||||
- ``math`` gained new functions ``log2`` (like the documentation claimed), ``max`` and ``min`` (:issue:`7856`). ``math`` functions can be used without the parentheses (eg ``math sin 2 + 6``), and functions have the lowest precedence in the order of operations (:issue:`7877`).
|
||||
- Shebang lines are no longer required within shell scripts, improving support for scripts with concatenated binary contents. If a file fails to execute and passes a binary safety check, fish will re-invoke it using ``/bin/sh`` (:issue:`7802`).
|
||||
- Shebang (``#!``) lines are no longer required within shell scripts, improving support for scripts with concatenated binary contents. If a file fails to execute and passes a binary safety check, fish will re-invoke it using ``/bin/sh`` (:issue:`7802`).
|
||||
- Exit codes are better aligned with bash. A failed exec now reports ``$status`` of 127 if the file is not found, and 126 if it is not executable.
|
||||
- ``echo`` no longer writes its output one byte at a time, improving performance and allowing use with linux' special API files (``/proc``, ``/sys`` and such) (:issue:`7836`).
|
||||
- fish should now better handle ``cd`` on filesystems with broken ``stat(3)`` responses (:issue:`7577`).
|
||||
|
@ -25,9 +28,9 @@ Scripting improvements
|
|||
- ``string match`` with unmatched capture groups and without the ``--all`` flag now sets an empty variable instead of a variable containing the empty string. It also correctly imports the first match if multiple arguments are provided, matching the documentation. (:issue:`7938`).
|
||||
- More specific errors when a command in a command substitution wasn't found or is not allowed. This now prints something like "Unknown command" instead of "Unknown error while evaluating command substitution".
|
||||
- ``fish_indent`` allows to write inline variable assignments on multiple lines (ending in a backslash), instead of joining them into one line (:issue:`7955`).
|
||||
- fish gained a ``--no-config`` option to disable reading the configuration. This applies both to the user's and the admin's config.fish (typically in /etc/fish/config.fish) and snippets and also sets $fish_function_path to just the functions shipped with fish and disables universal variables and history. (:issue:`7921`, :issue:`1256`).
|
||||
- fish gained a ``--no-config`` option to disable configuration files. This applies to user-specific and the systemwide ``config.fish`` (typically in ``/etc/fish/config.fish``), and configuration snippets (typically in ``conf.d`` directories). It also disables universal variables, history, and loading of functions from system or user configuration directories. (:issue:`7921`, :issue:`1256`).
|
||||
- When universal variables are unavailable for some reason, setting a universal variable now sets a global variable instead (:issue:`7921`).
|
||||
- ``$last_pid`` now reports the pid of the last process in the pipeline, allowing it to be used in scripts (:issue:`5036`, :issue:`5832`, :issue:`7721`).
|
||||
- ``$last_pid`` now contains the process ID of the last process in the pipeline, allowing it to be used in scripts (:issue:`5036`, :issue:`5832`, :issue:`7721`). Previously, this value contained the process group ID, but in scripts this was the same as the running fish's process ID.
|
||||
- ``process-exit`` event handlers now receive the same value as ``$status`` in all cases, instead of receiving -1 when the exit was due to a signal.
|
||||
- ``process-exit`` event handlers for pid 0 also received ``JOB_EXIT`` events; this has been fixed.
|
||||
- ``job-exit`` event handlers may now be created with any of the pids from the job. The handler is passed the last pid in the job as its second argument, instead of the process group.
|
||||
|
@ -40,16 +43,17 @@ Interactive improvements
|
|||
- fish no longer rings the bell when flashing the command line. The flashing should already be enough notification and the bell can be annoying (:issue:`7875`).
|
||||
- ``fish --help`` is more helpful if the documentation isn't installed (:issue:`7824`).
|
||||
- ``funced`` won't include an entry on where a function is defined, thanks to the new ``functions --no-details`` option (:issue:`7879`).
|
||||
- Variable ``fish_killring`` containing entries from killring is now available (:issue:`7445`).
|
||||
- A new variable, ``fish_killring``, containing entries from the killring, is now available (:issue:`7445`).
|
||||
- ``fish --private`` prints a note on private mode on startup even if ``$fish_greeting`` is an empty list (:issue:`7974`).
|
||||
- fish no longer attempts to lock history or universal variable files on remote filesystems, including NFS and SMB. In rare cases, updates to these files may be dropped if separate fish instances modify them simultaneously. (:issue:`7968`).
|
||||
- ``wait`` and ``on-process-exit`` work correctly with jobs that have already exited (:issue:`7210`).
|
||||
- ``__fish_print_help`` (used for ``--help`` output for fish's builtins) now respects $LESS and uses a better default value (:issue:`7997`).
|
||||
- ls output is colorized on OpenBSD if colorls utility is installed (:issue:`8035`)
|
||||
- Errors from ``alias`` are now printed to standard error, matching other builtins and functions (:issue:`7925`).
|
||||
- ``ls`` output is colorized on OpenBSD if colorls utility is installed (:issue:`8035`)
|
||||
- The default pager color looks better in terminals with light backgrounds (:issue:`3412`).
|
||||
- Further robustness improvements to the bash history import (:issue:`7874`).
|
||||
- The web-based configuration and documentation now feature a dark mode if the browser requests it (:issue:`8043`).
|
||||
- fish will now try harder to acquire a utf8-capable encoding locale (``LC_CTYPE``), even if the locale variables are set to ``C``. This only affects fish internally and e.g. fixes output in misconfigured systems. To allow a C locale, set ``$fish_allow_singlebyte_locale`` to 1 (:issue:`8031`).
|
||||
- - fish now tries to find a Unicode-aware locale for encoding (``LC_CTYPE``) if started without any locale information, improving the display of emoji and other non-ASCII text on misconfigured systems (:issue:`8031`). To allow a C locale, set the variable ``fish_allow_singlebyte_locale`` to 1.
|
||||
- The Web-based configuration and documentation now feature a dark mode if the browser requests it (:issue:`8043`).
|
||||
|
||||
New or improved bindings
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -67,13 +71,10 @@ Improved prompts
|
|||
^^^^^^^^^^^^^^^^
|
||||
- The default Vi mode prompt now uses foreground instead of background colors, making it less obtrusive (:issue:`7880`).
|
||||
- Performance of the "informative" git prompt is improved somewhat (:issue:`7871`). This is still slower than the non-informative version by its very nature. In particular it is IO-bound, so it will be very slow on slow disks or network mounts.
|
||||
- The sample prompts were pruned. Some duplicated prompts like the various classic variants or less useful ones like the "justadollar" prompt were removed,
|
||||
some prompts were cleaned up and in some cases renamed. A new "simple" and "disco" prompt were added (:issue:`7884`, :issue:`7897`, :issue:`7930`).
|
||||
(Because prompts are copied into the user's ~/.config/fish/functions/, existing installations keep whatever prompt they picked)
|
||||
- A new ``prompt_login`` helper function to describe the kind of "login" (user@host and chroot status) for use in prompts. This replaces the old "debian chroot" prompt and has been added to the default and terlar prompts (:issue:`7932`).
|
||||
- The prompt picker now shows and installs right prompts (:issue:`7930`).
|
||||
- The sample prompts were updated. Some duplicated prompts, like the various classic variants, or less useful ones, like the "justadollar" prompt were removed, some prompts were cleaned up, and in some cases renamed. A new "simple" and "disco" prompt were added (:issue:`7884`, :issue:`7897`, :issue:`7930`). The new prompts will only take effect when selected and existing installed prompts will remain unchanged.
|
||||
- A new ``prompt_login`` helper function to describe the kind of "login" (user, host and chroot status) for use in prompts. This replaces the old "debian chroot" prompt and has been added to the default and terlar prompts (:issue:`7932`).
|
||||
- The Web-based configuration's prompt picker now shows and installs right prompts (:issue:`7930`).
|
||||
- The git prompt now has the same symbol order in normal and "informative" mode, and it's customizable via ``$__fish_git_prompt_status_order`` (:issue:`7926`).
|
||||
- ``fish_config`` gained a ``prompt`` subcommand to show and pick from the sample prompts directly in the terminal, instead of having to open a webbrowser. For example ``fish_config prompt choose default`` loads the default prompt in the current session (:issue:`7958`).
|
||||
|
||||
Completions
|
||||
^^^^^^^^^^^
|
||||
|
@ -81,8 +82,8 @@ Completions
|
|||
|
||||
- ``firewall-cmd`` (:issue:`7900`)
|
||||
|
||||
- Improved lots of completions!
|
||||
- Commands that wrap ``cd`` (using ``complete --wraps cd``) get the same completions as ``cd`` (:issue:`4693`).
|
||||
- Completion defined with ``complete -p`` now also work when the commandline uses a relative path to the command (:issue:`6001`).
|
||||
- The ``--force-files`` option to ``complete`` works for bare arguments, not just options (:issue:`7920`).
|
||||
- Completion descriptions for functions don't include the function definition, making them more concise (:issue:`7911`).
|
||||
- The ``kill`` completions no longer error on msys2 (:issue:`8046`).
|
||||
|
@ -96,6 +97,8 @@ Improved terminal support
|
|||
- If the prompt takes up the entire line, the last character should no longer be chopped off in certain terminals (:issue:`8002`).
|
||||
- fish's reflow handling has been disabled by default for kitty (:issue:`7961`).
|
||||
- The default prompt no longer produces errors when used with a dumb terminal (:issue:`7904`).
|
||||
- Terminal size variables are updated for window size change signal handlers (``SIGWINCH``).
|
||||
- Pasting within a multi-line command using a terminal that supports bracketed paste works correctly, instead of producing an error (:issue:`7782`).
|
||||
|
||||
For distributors
|
||||
----------------
|
||||
|
|
Loading…
Reference in New Issue
Block a user