mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 09:39:52 +08:00
The user-friendly command line shell.
1d1bee3ba2
I used the command from #8092 to list issues/PRs with missing changelog entries, and went through most of them and added them to the changelog (or the "ignore" list). This commit message lists the processed issues in a consistent format, and lists the action/reason. For each issue/PR there are twolines: - Issue/PR number + subject - (I used bare issue numbers to avoid cross-referencing on github). - verdict - "added new entry" means that we add a changelog line - "added to existing entry" means that we added the issue link to an existing changelog line. Usually we don't add multiple issue links, but sometimes there are multiple interesting issues. - if the verdict ends with ", ignoring", we added it to the "ignore" list in the changelog. The issues are grouped by verdict, with the interesting/leftover ones on top. The "gh" script is already a quantum leap but we should still find better ways to share the burden of writing the changelog. I noticed that there are many minor updates that can probably be ignored. Filtering them out doesn't take much time but it adds up, especially if it's a single person doing it. Here's the adapted script I used: for issue in (gh issue list --state closed --milestone "fish 3.4.0" -L 500 | sort -n | cut -f 1) egrep --quiet '\W'$issue CHANGELOG.rst; or echo https://github.com/fish-shell/fish-shell/issues/$issue end for pr in (gh pr list --state all --search "milestone:\"fish 3.4.0\"" -L 500 | sort -n | cut -f 1) egrep --quiet '\W'$pr CHANGELOG.rst; or echo https://github.com/fish-shell/fish-shell/pull/$pr end --- Issue 8153: Work around `setpgid` error on older Apple platforms workaround for old OSs for which we've since dropped support, ignoring Issue 8511: math: (n n): incorrect error improved error output, which is very nice but too minor, ignoring Issue 8205: Fish autocomplete error on iOS procursus niche fix, ignoring Issue 8271: Fix `fish_key_reader` wrapper check minor update to not create a harmless alias for fish_key_reader, ignoring Issue 8289: funced dosn't like backslash escapes in function names minor escaping fix, ignoring Issue 8310: Hide whatis database building from the user not something many users would notice in the first place, ignoring Issue 8368: Duplicated "Type 'help argparse' for related documentation" for argparse minor update to error message, ignoring Issue 8444: Variable highlight color does not span lines very obscure fix, ignoring Issue 8195: Errors when trying to autocomplete (invalid) UTF-8 escapes niche fix, ignoring Issue 8308: assertion normal_exited() failed related to paged builtin help niche fix, ignoring Issue 8358: sigsegv on set --show variable (when LANG is set to fr_FR.utf8) niche(?) fix, ignoring Issue 8170: Builtin math ncr can be extremely slow performance improvement only when the input is NaN, ignoring Issue 8204: Always use LC_NUMERIC=C internally performance improvement for math, ignoring --- Issue 8295: Add --function to `read` added to existing entry (565) Issue 8283: Added completions for ethtool added to existing entry Issue 8315: Add dart completion added to existing entry Issue 8330: Add common lisp completions(sbcl/roswell) added to existing entry Issue 8354: Fix st issue with shift+tab added to existing entry (8352) Issue 8391: Support vi-mode cursors in Foot Terminal added to existing entry (8167) Issue 8405: Completions pager should redraw if the subbed completion wraps/unwraps the line added to existing entry (8509) --- Issue 8530: Speed up, fix fish_status_to_signal 8530 added new entry Issue 8547: command -v nonexistent should exit 127 added new entry Issue 8431: Abbr -q return status inconsistent added new entry Issue 8428: Binding escape as user binding breaks escape sequence bindings (arrows, etc) added new entry Issue 8483: Windows "color" command completion added new entry Issue 8087: Doesn't build when using netbsd curses on Linux added new entry Issue 8152: Don't override linker added new entry Issue 8156: Add completions for `git-sizer` added new entry Issue 8163: `d3ceba107e88b6c6e1a0358ebcb30366aeef653f` causes issues with repainting multi-line prompt added new entry Issue 8175: Completion sometimes missing the last token added new entry Issue 8179: `set -S` should mark read-only variables added new entry Issue 8209: Slow interaction between backgrounding, universal variables, and repainting added new entry Issue 8274: Unsetting `$fish_emoji_width` doesn't clear the cached width added new entry Issue 8298: If prompt ends in an empty line, the commandline is inserted at the width of the line before added new entry Issue 8309: colors don't kick in for ls on macOS Big Sur, Monterey (and maybe FreeBSD) added new entry Issue 8337: Adds sub-command clear-session to history command. Issue 5791 added new entry (as 5791) Issue 8352: Fix delete-key in st added new entry Issue 8373: Add clasp completion added new entry Issue 8434: argparse completions added new entry Issue 8510: fish_key_reader ^C warning isn't right added new entry Issue 8519: Use `--almost-all` in `la` function added new entry --- Issue 1363: improve the experience of using fish over mosh listed as 8376, ignoring Issue 8305: incomplete man page completions listed as 8309, ignoring Issue 8059: Support "$(cmd)" command substitution without line splitting listed as 159, ignoring Issue 8127: fish_config: Read colorschemes from .theme files listed as 8132, ignoring Issue 8130: funced: edit the whole file, not just the function definition listed as 391, ignoring Issue 8270: builtin cd: print error about broken symlink listed as 8264, ignoring Issue 8306: fix man completion for BSD's mandoc listed as 8305, ignoring Issue 8441: Don't escape tildes that come from custom completions listed as 8441, ignoring --- Issue 8429: `cargo run --example` completions break with nested example directories update to existing completions, ignoring Issue 8446: Use `cargo run --example` to get list of examples update to existing completions, ignoring Issue 8338: Display local branches before unique remote branches in git completion update to existing completions, ignoring Issue 8118: Node completion: add v8 sparkplug option update to existing completions, ignoring Issue 8183: Add zypper subcommands completion update to existing completions, ignoring Issue 8184: completion nmap: suppress warning when local scripts folder exists update to existing completions, ignoring Issue 8191: add missing `git commit` completions update to existing completions, ignoring Issue 8192: Updated ping completions update to existing completions, ignoring Issue 8202: Add `--function` to `set` completion update to existing completions, ignoring Issue 8219: completion: support `--no` prefixes for mpv flag options update to existing completions, ignoring Issue 8241: complete "mpc load" update to existing completions, ignoring Issue 8243: Add and fix completions for new options update to existing completions, ignoring Issue 8249: Fix completions/ls.fish update to existing completions, ignoring Issue 8256: Fix completions/coredumpctl.fish and add new complete update to existing completions, ignoring Issue 8311: completions/git: Handle "1 .T" & "1 AT" files update to existing completions, ignoring Issue 8323: completions/xbps-query: add missing `-p` completions update to existing completions, ignoring Issue 8326: Update ldapsearch.fish update to existing completions, ignoring Issue 8327: small fix completions/duply.fish update to existing completions, ignoring Issue 8334: Update ip.fish update to existing completions, ignoring Issue 8344: Fix ant completion update to existing completions, ignoring Issue 8365: Update dmesg completions update to existing completions, ignoring Issue 8367: No hints for -g|--global and -U|--universal flags for abbr command update to existing completions, ignoring Issue 8381: Updated systemd-analyze completions update to existing completions, ignoring Issue 8406: vmctl completion function call needs to be quoted update to existing completions, ignoring Issue 8480: pabcnetcclear command completion update update to existing completions, ignoring --- Issue 8495: Stop linking to StackOverflow doc update, ignoring Issue 8176: document `--no-config` doc update, ignoring Issue 8260: Theme demo needs to be adjusted so that only unmatched quote is an error doc update, ignoring Issue 8380: no error about wrong >>? redirection operator doc update, ignoring Issue 8385: set -l works outside of command block doc update, ignoring Issue 8409: Some enhancements to "for" and "while" loop pages doc update, ignoring Issue 8439: Html docs: Remove link underlines again? doc update, ignoring Issue 8457: Old-style options support "=" assignment operator in complete builtin doc update, ignoring Issue 8522: Document prompt_hostname doc update, ignoring --- Issue 8221: edit_command_buffer: use "command" to ignore any functions with the same name only helps broken systems, ignoring Issue 8287: Prepend command to cat only helps broken systems, ignoring Issue 8299: Make less version check compatible with older Fish only helps broken systems, ignoring Issue 8487: fish_config doesn't work without curses module only helps broken systems, ignoring --- Issue 8128: fix 'socket file name too long' error test fix with long tempdirs (macOS), not really user-visible, ignoring Issue 8449: Give tests a more generic name not user-visible, ignoring Issue 8353: string tests sometimes failing on macOS (Github Actions) not user-visible, ignoring Issue 6477: history merge test fails on OpenBSD not user-visible, ignoring --- Issue 8471: Obtain Deno completions from itself update to an unreleased feature (7138), ignoring Issue 8253: `string length --visible` performance update to an unreleased feature, ignoring Issue 8277: Backspace character is ignored when calculating string widths update to an unreleased feature, ignoring Issue 8314: `fish_config choose` leaves previous right prompt in place update to an unreleased feature, ignoring Issue 8394: parenthesis characters outer of $(command substitution) in string cause error update to an unreleased feature, ignoring Issue 8500: Parser bug with command substitutions in strings inside parenthesis update to an unreleased feature, ignoring Issue 8419: fish_config: silently doesn't set color schemes. regression, not in any release, ignoring Issue 8438: :program: in sphinx doesn't link regression, not in any release, ignoring Issue 8478: __fish_seen_argument.fish throws exception when autocompleting regression, not in any release, ignoring --- Issue 8280: Fix typo in abbr docs typofix, ignoring Issue 8321: Fix typo in `set_colors` command documentation typofix, ignoring Issue 8257: Typo funcions -> functions typofix, ignoring --- Issue 8206: remove make_pair no behavior change, ignoring Issue 8222: replace push_back with emplate_back no behavior change, ignoring Issue 8224: clang-tidy: remove pointless virtual no behavior change, ignoring Issue 8227: change value to rvalue reference no behavior change, ignoring Issue 8228: convert const ref to rvalue ref no behavior change, ignoring Issue 8229: clang-tidy: use for range loops no behavior change, ignoring Issue 8230: fix deleted constructors nno behavior change, ignoring Issue 8231: clang-tidy: const reference conversions no behavior change, ignoring Issue 8235: clang-tidy: simplify two bool returns no behavior change, ignoring Issue 8237: clang-tidy: replace size comparisons with empty no behavior change, ignoring Issue 8239: clang-tidy: replace NULL with nullptr no behavior change, ignoring Issue 8252: add constexpr no behavior change, ignoring Issue 8430: __fish_seen_subcommand_from and __fish_seen_argument update no behavior change (apart from a regression that's fixed), ignoring Issue 8476: Run fish_indent on all non-test .fish files no behavior change, ignoring Issue 8477: Use test command instead of bracket command no behavior change, ignoring Issue 8521: Fix code scanning alert - Wrong type of arguments to formatting function no behavior change, ignoring Issue 8236: clang-tidy: replace push_back with emplace_back no behavior change, ignoring --- |
||
---|---|---|
.builds | ||
.github | ||
benchmarks | ||
build_tools | ||
cmake | ||
debian | ||
doc_src | ||
docker | ||
etc | ||
osx | ||
pcre2 | ||
po | ||
share | ||
src | ||
tests | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.oclint | ||
BSDmakefile | ||
CHANGELOG.rst | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
config_cmake.h.in | ||
CONTRIBUTING.rst | ||
COPYING | ||
Dockerfile | ||
fish.desktop | ||
fish.pc.in | ||
fish.png | ||
fish.spec.in | ||
GNUmakefile | ||
README.rst |
`fish <https://fishshell.com/>`__ - the friendly interactive shell |Build Status| ================================================================================= fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions that just work, with no configuration required. For more on fish’s design philosophy, see the `design document <https://fishshell.com/docs/current/design.html>`__. Quick Start ----------- fish generally works like other shells, like bash or zsh. A few important differences can be found at https://fishshell.com/docs/current/tutorial.html by searching for the magic phrase “unlike other shells”. Detailed user documentation is available by running ``help`` within fish, and also at https://fishshell.com/docs/current/index.html Getting fish ------------ macOS ~~~~~ fish can be installed: - using `Homebrew <http://brew.sh/>`__: ``brew install fish`` - using `MacPorts <https://www.macports.org/>`__: ``sudo port install fish`` - using the `installer from fishshell.com <https://fishshell.com/>`__ - as a `standalone app from fishshell.com <https://fishshell.com/>`__ Packages for Linux ~~~~~~~~~~~~~~~~~~ Packages for Debian, Fedora, openSUSE, and Red Hat Enterprise Linux/CentOS are available from the `openSUSE Build Service <https://software.opensuse.org/download.html?project=shells%3Afish&package=fish>`__. Packages for Ubuntu are available from the `fish PPA <https://launchpad.net/~fish-shell/+archive/ubuntu/release-3>`__, and can be installed using the following commands: :: sudo apt-add-repository ppa:fish-shell/release-3 sudo apt update sudo apt install fish Instructions for other distributions may be found at `fishshell.com <https://fishshell.com>`__. Windows ~~~~~~~ - On Windows 10, fish can be installed under the WSL Windows Subsystem for Linux with the instructions for the appropriate distribution listed above under “Packages for Linux”, or from source with the instructions below. - Fish can also be installed on all versions of Windows using `Cygwin <https://cygwin.com/>`__ (from the **Shells** category). Building from source ~~~~~~~~~~~~~~~~~~~~ If packages are not available for your platform, GPG-signed tarballs are available from `fishshell.com <https://fishshell.com/>`__ and `fish-shell on GitHub <https://github.com/fish-shell/fish-shell/releases>`__. See the `Building <#building>`__ section for instructions. Running fish ------------ Once installed, run ``fish`` from your current shell to try fish out! Dependencies ~~~~~~~~~~~~ Running fish requires: - curses or ncurses (preinstalled on most \*nix systems) - some common \*nix system utilities (currently ``mktemp``), in addition to the basic POSIX utilities (``cat``, ``cut``, ``dirname``, ``ls``, ``mkdir``, ``mkfifo``, ``rm``, ``sort``, ``tee``, ``tr``, ``uname`` and ``sed`` at least, but the full coreutils plus ``find`` and ``awk`` is preferred) - The gettext library, if compiled with translation support The following optional features also have specific requirements: - builtin commands that have the ``--help`` option or print usage messages require ``ul`` and either ``nroff`` or ``mandoc`` for display - automated completion generation from manual pages requires Python 3.5+ - the ``fish_config`` web configuration tool requires Python 3.5+ and a web browser - system clipboard integration (with the default Ctrl-V and Ctrl-X bindings) require either the ``xsel``, ``xclip``, ``wl-copy``/``wl-paste`` or ``pbcopy``/``pbpaste`` utilities - full completions for ``yarn`` and ``npm`` require the ``all-the-package-names`` NPM module - ``colorls`` is used, if installed, to add color when running ``ls`` on platforms that do not have color support (such as OpenBSD) Switching to fish ~~~~~~~~~~~~~~~~~ If you wish to use fish as your default shell, use the following command: :: chsh -s /usr/local/bin/fish ``chsh`` will prompt you for your password and change your default shell. (Substitute ``/usr/local/bin/fish`` with whatever path fish was installed to, if it differs.) Log out, then log in again for the changes to take effect. Use the following command if fish isn’t already added to ``/etc/shells`` to permit fish to be your login shell: :: echo /usr/local/bin/fish | sudo tee -a /etc/shells To switch your default shell back, you can run ``chsh -s /bin/bash`` (substituting ``/bin/bash`` with ``/bin/tcsh`` or ``/bin/zsh`` as appropriate). Building -------- .. _dependencies-1: Dependencies ~~~~~~~~~~~~ Compiling fish requires: - a C++11 compiler (g++ 4.8 or later, or clang 3.3 or later) - CMake (version 3.5 or later) - a curses implementation such as ncurses (headers and libraries) - PCRE2 (headers and libraries) - a copy is included with fish - gettext (headers and libraries) - optional, for translation support Sphinx is also optionally required to build the documentation from a cloned git repository. Additionally, running the test suite requires Python 3.5+ and the pexpect package. Building from source (all platforms) - Makefile generator ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To install into ``/usr/local``, run: .. code:: bash mkdir build; cd build cmake .. make sudo make install The install directory can be changed using the ``-DCMAKE_INSTALL_PREFIX`` parameter for ``cmake``. Building from source (macOS) - Xcode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code:: bash mkdir build; cd build cmake .. -G Xcode An Xcode project will now be available in the ``build`` subdirectory. You can open it with Xcode, or run the following to build and install in ``/usr/local``: .. code:: bash xcodebuild xcodebuild -scheme install The install directory can be changed using the ``-DCMAKE_INSTALL_PREFIX`` parameter for ``cmake``. Build options ~~~~~~~~~~~~~ In addition to the normal cmake build options (like ``CMAKE_INSTALL_PREFIX``), fish has some other options available to customize it. - BUILD_DOCS=ON|OFF - whether to build the documentation. This is automatically set to OFF when sphinx isn't installed. - INSTALL_DOCS=ON|OFF - whether to install the docs. This is automatically set to on when BUILD_DOCS is or prebuilt documentation is available (like when building in-tree from a tarball). - FISH_USE_SYSTEM_PCRE2=ON|OFF - whether to use an installed pcre2. This is normally autodetected. - MAC_CODESIGN_ID=String|OFF - the codesign ID to use on Mac, or "OFF" to disable codesigning. - WITH_GETTEXT=ON|OFF - whether to build with gettext support for translations. Note that fish does *not* support static linking and will attempt to error out if it detects it. Help, it didn’t build! ~~~~~~~~~~~~~~~~~~~~~~ If fish reports that it could not find curses, try installing a curses development package and build again. On Debian or Ubuntu you want: :: sudo apt install build-essential cmake ncurses-dev libncurses5-dev libpcre2-dev gettext On RedHat, CentOS, or Amazon EC2: :: sudo yum install ncurses-devel Contributing Changes to the Code -------------------------------- See the `Guide for Developers <CONTRIBUTING.rst>`__. Contact Us ---------- Questions, comments, rants and raves can be posted to the official fish mailing list at https://lists.sourceforge.net/lists/listinfo/fish-users or join us on our `gitter.im channel <https://gitter.im/fish-shell/fish-shell>`__. Or use the `fish tag on Unix & Linux Stackexchange <https://unix.stackexchange.com/questions/tagged/fish>`__. There is also a fish tag on Stackoverflow, but it is typically a poor fit. Found a bug? Have an awesome idea? Please `open an issue <https://github.com/fish-shell/fish-shell/issues/new>`__. .. |Build Status| image:: https://github.com/fish-shell/fish-shell/workflows/C/C++%20CI/badge.svg :target: https://github.com/fish-shell/fish-shell/actions