mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-30 09:31:15 -03:00
Add feature flag to turn off %self (#10262)
This is the last remnant of the old percent expansion. It has the downsides of it, in that it is annoying to combine with anything: ```fish echo %self/foo ``` prints "%self/foo", not fish's pid. We have introduced $fish_pid in 3.0, which is much easier to use - just like a variable, because it is one. If you need backwards-compatibility for < 3.0, you can use the following shim: ```fish set -q fish_pid or set -g fish_pid %self ``` So we introduce a feature-flag called "remove-percent-self" to turn it off. "%self" will simply not be special, e.g. `echo %self` will print "%self".
This commit is contained in:
@@ -1987,6 +1987,7 @@ You can see the current list of features via ``status features``::
|
||||
qmark-noglob on 3.0 ? no longer globs
|
||||
regex-easyesc on 3.1 string replace -r needs fewer \\'s
|
||||
ampersand-nobg-in-token on 3.4 & only backgrounds if followed by a separating character
|
||||
remove-percent-self off 3.8 %self is no longer expanded (use $fish_pid)
|
||||
|
||||
Here is what they mean:
|
||||
|
||||
@@ -1994,6 +1995,7 @@ Here is what they mean:
|
||||
- ``qmark-noglob`` was also introduced in fish 3.0 (and made the default in 3.8). It makes ``?`` an ordinary character instead of a single-character glob. Use a ``*`` instead (which will match multiple characters) or find other ways to match files like ``find``.
|
||||
- ``regex-easyesc`` was introduced in 3.1. It makes it so the replacement expression in ``string replace -r`` does one fewer round of escaping. Before, to escape a backslash you would have to use ``string replace -ra '([ab])' '\\\\\\\\$1'``. After, just ``'\\\\$1'`` is enough. Check your ``string replace`` calls if you use this anywhere.
|
||||
- ``ampersand-nobg-in-token`` was introduced in fish 3.4. It makes it so a ``&`` i no longer interpreted as the backgrounding operator in the middle of a token, so dealing with URLs becomes easier. Either put spaces or a semicolon after the ``&``. This is recommended formatting anyway, and ``fish_indent`` will have done it for you already.
|
||||
- ``remove-percent-self`` turns off the special ``%self`` expansion. It was introduced in 3.8. To get fish's pid, you can use the :envvar:`fish_pid` variable.
|
||||
|
||||
|
||||
These changes are introduced off by default. They can be enabled on a per session basis::
|
||||
|
||||
Reference in New Issue
Block a user