Commit Graph

907 Commits

Author SHA1 Message Date
Jorge Bucaran
08c29727e0 Add missing color definitions to __fish_init_1_50_0 reset. (#2987)
* Add missing color definitions to __fish_init_1_50_0 reset.

The values where determined by inspecting the values of:

* fish_color_end
* fish_color_user
* fish_color_host

after resetting the color theme via fish_config.

* Add documentation for fish_color_user and fish_color_host.
2016-05-01 11:58:43 +02:00
Kurtis Rader
1cd4731c2d don't use colors when writing the ^C indicator
There was an extended discussion in https://github.com/fish-shell/fish-shell/issues/2904 about using a bright yellow background to make the cancelled command indicator, ^C, standout. The upshot was that standout (i.e., reversing fg/bg colors) mode should be used until themes are agumented with proper support for background colors and special characters.

(cherry picked from commit a897ef0025)
2016-04-30 12:31:57 -07:00
Kurtis Rader
a897ef0025 don't use colors when writing the ^C indicator
There was an extended discussion in https://github.com/fish-shell/fish-shell/issues/2904 about using a bright yellow background to make the cancelled command indicator, ^C, standout. The upshot was that standout (i.e., reversing fg/bg colors) mode should be used until themes are agumented with proper support for background colors and special characters.
2016-04-30 12:25:15 -07:00
Kurtis Rader
52731c480c provide a realpath implementation
Not all distros have a `realpath` command. Provide a function that uses the
real command if available else use the fish builtin.

Fixes #2932

(cherry picked from commit 6c329e8a83)
2016-04-29 21:30:26 -07:00
Kurtis Rader
54319435f4 clarify fish_vi_mode deprecation warning
Also, correct the Vi mode default escape timeout. I intended it to be 100 ms
in my previous change but it ended up 10 ms which is far too short. A 10 ms
delay will continue to cause problems for people running fish inside `screen`,
`tmux`, or over high latency connections.

Cherry-picked from 3e24ae80b3
2016-04-29 15:52:10 -07:00
ridiculousfish
b064da8d38 Erase the autosuggestion in fish_cancel_commandline by clearing to EOL 2016-04-29 15:33:46 -07:00
ridiculousfish
ba5a55b754 Remove an errant newline in the fish_cancel_commandline output
Now the next line appears immediately after the cancelled line,
without an intervening newline
2016-04-29 14:55:23 -07:00
Kurtis Rader
3e24ae80b3 clarify fish_vi_mode deprecation warning
Also, correct the Vi mode default escape timeout. I intended it to be 100 ms
in my previous change but it ended up 10 ms which is far too short. A 10 ms
delay will continue to cause problems for people running fish inside `screen`,
`tmux`, or over high latency connections.
2016-04-28 20:53:09 -07:00
Kurtis Rader
6c329e8a83 provide a realpath implementation
Not all distros have a `realpath` command. Provide a function that uses the
real command if available else use the fish builtin.

Fixes #2932
2016-04-28 16:03:27 -07:00
Kurtis Rader
ce41e3468e add way to comment/uncomment a command
Fixes #2375

(cherry picked from commit 2f8d0e9aba)
2016-04-28 14:58:15 +08:00
Fabian Homborg
daa217f533 Allow setting key bindings universally
As always, we default to setting globally.
2016-04-26 15:21:15 +02:00
Fabian Homborg
e67505bead Remove named arg in fish_default_key_bindings
This wasn't actually used anywhere.
2016-04-26 15:21:15 +02:00
Fabian Homborg
e6ad48ea1b Set fish_key_bindings globally in binding functions
This should fix the tests.
2016-04-26 15:21:15 +02:00
Fabian Homborg
ba5a22e2ce Deprecate fish_vi_mode
This was never mentioned in the documentation as the way to switch to
vi-mode, and now does nothing of value anymore.
2016-04-26 15:21:15 +02:00
Fabian Homborg
f5241da836 Let the binding functions set the binding variable
This ensures they can just be called and "the right thing" will happen -
fish_user_key_bindings will be executed, the variable will reflect the bindings.
2016-04-26 15:21:15 +02:00
Fabian Homborg
8ab980b793 Remove $__fish_vi_mode
This makes fish_mode_prompt rely on $fish_key_bindings instead.

fish_bind_mode is also set in default mode (only always "default"), so
it can't be used as the indicator.
2016-04-26 15:21:15 +02:00
Kurtis Rader
2f8d0e9aba add way to comment/uncomment a command
Fixes #2375
2016-04-19 18:38:58 -07:00
Fabian Homborg
8d3eae0d76 Move 24bit setup into config.fish
Fixes #2941.

(cherry picked from commit 8558561650)
2016-04-18 14:20:42 +02:00
Fabian Homborg
8558561650 Move 24bit setup into config.fish
Fixes #2941.
2016-04-18 14:19:34 +02:00
Kurtis Rader
f034d8ba3a number dirh output to make prevd/nextd easier
Fixes #2786
2016-04-16 18:40:16 -07:00
Fabian Homborg
635a1e9dd2 Remove the default self-insert binding in vi-default mode
Fixes #2832.
2016-04-15 15:10:21 +02:00
Kurtis Rader
5f849d0264 provide a better experience when user presses \cC
Fixes #2904
2016-04-14 20:57:04 -07:00
Fabian Homborg
85799ee86e Remove the default self-insert binding in vi-default mode
Fixes #2832.
2016-04-12 21:40:14 +02:00
Fabian Homborg
d7c690b416 Fix "." and ".." paths in cd completions
Previously if a directory called "a" was in $CDPATH, `cd ./a<TAB>` would
complete from there even if it was invalid.
2016-04-08 15:03:49 +02:00
Aaron Gyes
36691df6fe Stringify many completions and functions, with --invert stringification.
I believe apm must have been buggy - example output that I found online
showed `tr` was mangling paths with spaces in it. Should be fixed.

Also, use dscl on OS X in __fish_complete_users.fish like
__fish_print_users.fish already does.
2016-04-08 10:49:29 +08:00
Fabian Homborg
0953590cca cd completion: No description for absolute paths
This also removes the "pushd/popd" dance and only executes the CDPATH
stuff when we need to.
2016-04-04 18:22:48 +02:00
Sam Yu
7e014174b8 __fish_print_packages: use libzypp builtin cache for zypper 2016-03-30 15:03:51 +02:00
Fabian Homborg
aacdaee6a9 Add history --help
This was probably an oversight - the builtin supports it, the function doesn't.
2016-03-30 15:03:51 +02:00
Kurtis Rader
a148b755a6 more fish_indent cleanup for prev commit
Commit dfb23c4fce was supposed to incude
all the edits to make the code compliant with fish_indent.
2016-03-29 16:42:58 -07:00
Kurtis Rader
dfb23c4fce fix regression to vi-mode \cc binding
Commit c0e8ad6 on 2015-10-02 to "Make vi bindings inherit the defaults"
inadvertently reverted commit b6b6de3. Fix that regression. And while I
hate to make "git blame" say I changed the entire file make the function
adhere to fish_indent style.
2016-03-29 15:33:37 -07:00
Kurtis Rader
9d2b53450a limit size of cd history to 25 directories
The existing implementation grows the $dirprev array without bounds. Besides
causing what would appear to be a memory leak it also makes the nextd and
prevd commands more expensive than they need to be. It also makes it harder to
create a useful "menu" cd command.

In addition to implementing a reasonable limit on the size of the $dirprev
array I've reformatted the code using fish_indent.

Update the documentation to include mentions of the $dirprev and $dirnext
variables as well as the limit on how much directory history is kept.

Fixes 2836
2016-03-23 13:36:00 -07:00
Fabian Homborg
a81bd697a8 Make reading ssh files case-insensitive
Fixes #2843
2016-03-22 11:09:36 +01:00
Federico Ferri
168a156e58 implement swap-selection-start-stop function
The swap-selection-start-stop function goes to the other end of the highlighted text, the equivalent of `o' for vim visual mode.

Add binding to the swap-selection-start-stop function, `o' when in visual
mode.

Document swap-selection-start-stop, begin-selection, end-selection, kill-selection.
2016-03-20 19:22:04 -07:00
Federico Ferri
879ee61a30 fix w, e (with a trick to cope with big-words) 2016-03-20 19:17:15 -07:00
Kurtis Rader
fb0921249f add \r equivalent binding
Add a binding that was overlooked by commit
d65c63322e.

Fixes #2834
2016-03-20 12:08:46 -07:00
Owen Richardson
9f0417b587 make alt-L output respect multi-line prompts
Fixes #718
2016-03-18 15:53:29 -07:00
Fabian Homborg
0e8a8a7c80 Migrate abbrs from =-separated to space-separated
We silently upgrade existing abbreviations and change the separator when
saving.

This does not yet warn when the user is using the old syntax.

Resolves #2051
2016-03-02 10:59:12 -08:00
Fabian Homborg
fbd53f2da1 Check ssh's KnownhostsFiles in print_hostnames
These are an additional source of information

Thanks to @sysbot (#2313) for the inspiration.

This also stringifies the ssh_config reading
2016-03-02 15:16:52 +01:00
Fabian Homborg
65aeaab054 print_hostname: Avoid matches in fstab comments harder 2016-03-02 15:16:52 +01:00
Fabian Homborg
94c12d84e2 Stringify reading nfs in print_hostnames 2016-03-02 15:16:52 +01:00
Fabian Homborg
a5f5e6c1ef Ignore zero-ips in print_hostnames
This would be a lot of useless options for those who block via hosts.
2016-03-02 15:16:42 +01:00
Jaime Marquínez Ferrándiz
61fd8b9861 history.fish: Fix input handling
Pass the input to 'string', it was accidentally removed in fcdc6a48c0.
2016-03-02 14:26:10 +01:00
Fabian Homborg
fb5a8a089e Use command which in type
Turns out some shells will alias which to be something function-aware,
but doing this on fish would blow up because it would call type which
would then call which which would then call type....

Fixes #2775
2016-02-28 12:12:13 +01:00
Kevin Ballard
d8a497434f Rewrite __fish_urlencode to not encode valid characters
Much better to only encode the characters that are not URL-safe. This
also doesn't involve any forking, and it even handles newlines and NULs
in the input.
2016-02-27 00:14:52 -08:00
Aaron Gyes
613739ba07 Try to just see if grep is happy with --color=auto, or not, as the --help exit status varies in BSD vs. GNU. 2016-02-20 21:11:40 +01:00
Jak Wings
1767681f9a Fix the file URL for Terminal.app
* When using a UTF-8 locale, set locale to C temporarily in order to
  read one byte at a time.
* Use the builtin printf in a forward-compatible way. (GNU)
* Improve the readability of the code.
2016-02-16 21:49:58 -08:00
ridiculousfish
c184c1a81a Correctly handle --merge in the history.fish function
Previously --merge happened to work, but only because it was
smuggled in through the 'print' command
2016-02-16 11:34:36 -08:00
Aaron Gyes
31a617408f Fix typo 2016-02-16 05:14:33 -08:00
Aaron Gyes
a6565bbea8 Fix --merge hitting a case 2016-02-16 05:09:54 -08:00
Sunguk Lee
b72837a0f4 Improve __fish_print_users
Patch from `__make_users_completions` of killall command completion
2016-02-15 19:31:20 +09:00
Fabian Homborg
eb0d18add4 Rewrite abbr.fish to not call seq
This speeds up adding new abbrs by about 50 to 60% - from 2.3s to 1s for
100 abbrs.
2016-02-13 17:08:19 +01:00
Fabian Homborg
585bdf45c8 abbr: Bail early when the abbr already exists
This speeds up the common case of `abbr -a` calls in config.fish by
about 90% - from 900ms to 90ms for 100 calls.
2016-02-13 17:08:19 +01:00
Gordon Tyler
89206d8654 Fix user browser for help in Cygwin
Fixes the invocation of a user-specified browser by the `help` command on Cygwin.

- Use `cygstart` to launch the browser with escaped quotes to avoid problems with spaces in the path to the browser, (e.g. Program Files).
- Use `cygpath` to convert the base help dir to a Windows path before constructing the fie URL to pass to the browser.
2016-02-12 23:53:17 +01:00
Spittie
a00e26b109 Fix package listing for zypper
-E is only supported by BSD sed, switch to -r which is also supported
by GNU sed
2016-02-12 23:00:40 +01:00
Fabian Homborg
52f8707c3e Use string split in export.fish
It's a bit more explicit than replace.
2016-02-10 20:33:43 +01:00
Fabian Homborg
57fcbecb41 Improve __fish_print_service_names
- Reuse systemd completion functions
- Remove a fork
- Fix #2715 - FreeBSD
- Comments
2016-02-07 14:53:12 +01:00
ridiculousfish
25ad8866c9 Merge change for lengthened and configurable escape key timeout 2016-02-04 13:56:49 -08:00
Kurtis Rader
2646d51a0b change default escape timeout
This changes the default escape timeout for the default keybindings (emacs
mode) to 300ms and the default for vi keybindings to 10ms.

I couldn't resist fixing a few nits in the fish_vi_key_bindings.fish file
since I was touching it to set the escape timeout.
2016-02-04 13:39:19 -08:00
Fabian Homborg
b908d0b89b Another stringification (__fish_complete_command) 2016-02-04 13:53:55 +01:00
Fabian Homborg
cadb5d51ea Replace tr invocations 2016-02-03 23:47:46 +01:00
Fabian Homborg
fcdc6a48c0 Stringify history.fish 2016-02-03 23:45:54 +01:00
Fabian Homborg
16aa0b93e9 Stringify __fish_complete_lpr_option 2016-02-03 23:26:41 +01:00
Fabian Homborg
158ea98189 Replace uses of expr with math/string 2016-02-03 23:23:59 +01:00
Fabian Homborg
962f9914c6 Stringify trap 2016-02-03 23:23:04 +01:00
Fabian Homborg
4b2495f28f Skip greeting on empty variable
It used to be that way and we recommend `set fish_greeting` (i.e. set to
empty) in the docs - possibly since we check if the variable is defined
on upgrade.
2016-01-18 21:56:59 +01:00
Fabian Homborg
ed1919b266 abbr: Ensure we don't split on "=" if the given separator is " "
This fails on e.g. an abbr that uses `env a=b`, like the included test demonstrates.

Unfortunately it decreases the speed again (2s vs 2.2s vs 4s original),
but correctness is more important.
2016-01-14 16:58:29 +01:00
Fabian Homborg
ac545940de Optimize and modernize abbr
- Replace __fish_abbr_escape with `string escape`

- Don't double-parse the key

- Replace IFS magic with string

Together, this seems to speed it up by a factor of about 2.
2016-01-14 16:57:07 +01:00
Fabian Homborg
7a8cbcda06 Disable 24bit-color on neovim's terminal
Unfortunately, nvim will, even when running in a terminal that supports
it, swallow the sequences whole, rendering the displayed text _white_.

This means falling back to 256 colors is the lesser evil as at least a
blue-ish color will display as blue while a red-ish will be red, instead
of both showing white.

nvim's behavior does _not_ change depending on
$NVIM_TUI_ENABLE_TRUE_COLOR or any other option I could find and neovim-qt
exhibits the same behavior.

Fixes #2600.
2016-01-14 15:17:49 +01:00
Fabian Homborg
8cc213ed4f hg_prompt: Use string match -q instead of redirection 2016-01-08 14:10:03 +01:00
Nathan Zadoks
92d0d98a24 Pass the full argv to the NixOS command-not-found handler
This patch is currently floated from the NixOS side as part of
https://github.com/NixOS/nixpkgs/pull/12000, but prior versions of the
hook ignore anything but the first argument anyway, so this is
backwards-compatible.
2016-01-03 14:32:12 +01:00
Fabian Homborg
8eca775977 hg prompt: Throw away string match input
This would print redundant characters
2015-12-31 14:21:37 +01:00
Fabian Homborg
c3971957ac hg prompt: Fix indentation 2015-12-31 14:21:37 +01:00
Fabian Homborg
9a7b2b190b hg prompt: Make display slightly nicer
The "/" between branch and bookmark might be mistaken for a path.

Parens (like the git prompt) make it look a bit more like a unit.
2015-12-31 14:21:37 +01:00
Fabian Homborg
6f2f0cfce2 Optimize hg prompt
Mainly replace hg calls since python is slow to start.
2015-12-31 14:21:37 +01:00
Fabian Homborg
3a249bb549 Include mount helpers in filesystem completion
Probably not a thing on OSX, but this should print nothing then.

On linux, it helps detect e.g. ntfs-3g.
2015-12-30 19:02:03 +01:00
Fabian Homborg
1a12071a48 Immediately define command-not-found handler
This skips the weird dance where we'd define a simple handler and then
later overwrite with a fancier one, once the first event came in.

It turns out that isn't necessary, as it doesn't actually improve
startup speed because the checks needed to define fancier handlers are fast.

In case we are non-interactive, still define the simple handler, and
keep the default handler for users to switch to.
2015-12-30 16:26:54 +01:00
Maxim Gonchar
95c30f7a23 Use \$ and \^ instead of their unicode codes 2015-12-30 12:49:44 +01:00
Maxim Gonchar
d5fe5c02a8 Update visual vi key bindings
* Add home/end, $/0 keys
* Add (c)hange key
* Add j/k keys for up/down
2015-12-30 12:49:44 +01:00
Fabian Homborg
759b45ad79 Remove temporary set_default function
This could potentially delete a user-defined set_default on first start.

It's also trivially done with set -q var; or set -U var val.
2015-12-30 12:49:44 +01:00
Fabian Homborg
834ebef53c Simplify greeting
We have already confirmed we're interactive, and `echo` is a builtin now.
2015-12-29 15:58:48 +01:00
lordlycastle
f23c2beb61 Fixed kill-signals completion. Added completions for OS X kill command.
Don't generate killall completions when running on Solaris OS - `killall` there literally kills all processes.
2015-12-28 12:54:13 +01:00
Fabian Homborg
8a6f26ff9b Document prompt_pwd
Fixes #253
2015-12-17 15:25:13 +01:00
Fabian Homborg
fb1a7d9d73 Port linux __fish_print_mounted to string
This adds a few escape sequences, but two out of the three are
theoretical and will fail a bit later.
2015-12-17 12:14:03 +01:00
Fabian Homborg
baa6971a46 Add __fish_vcs_prompt helper function
This is supposed to be used by prompts so they'll get all known vcsen
integrated.

For now, there's no distinction between the different vcsen.
2015-12-16 19:05:28 +01:00
Fabian Homborg
6c8518dd10 Update vte cwd on launch
Fixes #2418
2015-12-12 12:22:08 +01:00
Samantha Marshall
f5dfebb6a3 Add __fish_svn_prompt function
This refactors __fish_print_svn_rev to not depend on english locale
2015-12-10 18:17:40 +01:00
Fabian Homborg
b73bf53bd3 Enable 24-bit mode for selected terminals
Unfortunately, there's no standard way to detect support (importantly,
terminfo doesn't encode it), but there's a variety of terminals that
support it that we can detect.

It's better than letting this functionality go to waste.

Check KONSOLE_PROFILE_NAME instead of DBUS_SESSION because Konsole can be compiled without dbus support.

Check ITERM_SESSION_ID's format for 24bit support

This has changed since the last release, just like 24bit support. So if
we check one, we get the other.
2015-12-10 12:47:45 +01:00
Kurtis Rader
d65c63322e allow \cJ (\n) to be bound separate from \cM (\r)
This makes it possible (on UNIX systems, don't know about MS Windows)
to bind \cJ (\n) independently of \cM (\r, aka [enter]).

Resolves #217
2015-12-08 21:01:31 -08:00
David Adam
ef67fc7ba0 __fish_complete_man: rework AWK script
Adds support for the man-db alias format used in CentOS/RHEL 5
Adds basic support for the output of apropos on Solaris

Work on #2087.
2015-12-04 16:23:57 +08:00
Daniel Matz
c2c4fbf206 Add a function to complete job PIDs. 2015-11-27 16:07:16 -08:00
Fabian Homborg
53fc9a4002 Remove circular dependency in fallback seq
This was subtle because `type` invoked seq.

Fixes #2570
2015-11-27 19:34:27 +01:00
Fabian Homborg
3e0ff6db2a math: Join lines manually
This is an issue with 15-year old versions of bc that don't support BC_LINE_LENGTH.

Closes #2548
2015-11-19 12:04:21 +01:00
Eugene Sharygin
5db811253e psub: add -s, --suffix 2015-11-14 13:15:30 +01:00
ridiculousfish
e50d104399 Remove duplicate \cw binding in default key bindings 2015-11-08 23:52:59 -08:00
Fabian Homborg
c9577394eb vi-mode: Inherit \cf and \cb bindings as well
This makes them {forward,backward}-char instead of -word, which means
they accept suggestions _fully_.

Fixes #2255
2015-11-06 10:25:27 +01:00
maxried
1055864438 Update fish_default_key_bindings.fish
fish_default_key_bindings.fish comments were wrong. Corrected comment about pagination.
2015-10-29 07:51:17 +01:00
Fabian Homborg
be0d9d093c vi-mode: Make \cb do backward-word again
This is mentioned in the documentation, so keep it for now.
2015-10-28 13:20:23 +01:00
Fabian Homborg
bb491742ea vi: Bind \cx to end-of-line in insert mode
This will also accept any autosuggestion completely.
2015-10-28 13:18:27 +01:00
Gary Peck
09bd938e25 Add ability to customize the amount of path shortening in prompt_pwd
Allows the length of each shortened path component to be customized by setting the `fish_prompt_pwd_dir_length` variable to the number of characters to include (plus a leading dot because that's special). Maintains the default behavior of shortening path components to just one character. You can also set `fish_prompt_pwd_dir_length` to an empty or invalid value or 0 to disable shortening completely.
2015-10-26 13:11:13 +01:00
David Adam
f21d826850 fish_complete_subcommand: shadow scope to inherit e.g. $PATH
Closes: #2141.
2015-10-21 15:38:20 +08:00
David Adam
b776327b9d Revert "prompts: more concise way of getting the hostname."
This reverts commit 233c443694.

See discussion in https://github.com/fish-shell/fish-shell/pull/2489
2015-10-16 07:01:12 +08:00
Michael Fogleman
233c443694 prompts: more concise way of getting the hostname. 2015-10-15 11:59:39 +08:00
Fabian Homborg
35bbc1d7b7 vi: Make \cf do forward-word again in insert mode 2015-10-14 18:34:58 +02:00
Fabian Homborg
4e5e04bfda vi: Readd \cx binding 2015-10-14 18:31:45 +02:00
Fabian Homborg
c0e8ad6f1f Make vi bindings inherit the defaults
This reduces code duplication and adds some previously unavailable
bindings that don't quite _violate_ the vi-principle (like
prevd-or-backward-word on alt-left) and matches other "impure" bindings
like \cf for forward-word (a quite emacs-ish binding) we already have.

Fixes #2412
Fixes #2472
Fixes #2255
2015-10-13 21:08:55 +02:00
Fabian Homborg
9865a8c807 Also send konsole cursor sequence for iTerm2
Fixes #1403
2015-10-13 15:36:55 +02:00
Matt Steedman
35e769d494 Make fish_vi_cursor check $TERM or use argument
Fixes #2475
2015-10-13 15:33:45 +02:00
Fabian Homborg
54f215294f export: Fix replacing
Also run it through fish_indent
2015-10-12 11:35:45 +02:00
Fabian Homborg
86471ac21f Remove OSX/Cygwin special cases from prompt_pwd
For cygwin, you can't `cd C:`, so a prompt of "C:/Something" is
misleading.

For OSX, we dereference symlinks elsewhere

This also simplifies prompt_pwd quite a bit.
2015-10-09 17:45:45 +02:00
David Adam
57e22e87c2 functions/man.fish: add fish into MANPATH even if it is already set
Closes #2443.
2015-10-09 21:01:59 +08:00
ridiculousfish
434eabb787 Remove errant slash from the end of cd completions
Fixes #2465
2015-10-07 13:39:42 -07:00
Fabian Homborg
0a99772572 Rewrite __fish_complete_cd
This no longer uses "eval" (which is scary), and is a bit shorter (which
is nice).

Fixes #2299
Fixes #952

Improves #2300
Improves #562
2015-10-07 10:41:05 +02:00
Ian Ray
16061d06a9 prompt_pwd: zero fork prompt in general case
Now only one fork (uname) occurs on first load.
2015-10-04 12:36:49 +02:00
Fabian Homborg
b9b39f7c31 Replace sed -E with string replace
This is to the benefit of systems with ancient GNU sed, which does not
recognize "-E", but only "-r".

Fixes #2305 - even if it doesn't replace all `sed -E` invocations in the
codebase, the others are unlikely to occur on CentOS and other similarly
crusty systems.
2015-09-28 20:06:20 +02:00
Fabian Homborg
126c8c14b8 machinectl: Add "shell" subcommand 2015-09-28 16:22:29 +02:00
Fabian Homborg
3992315505 Normalize cabal* completion 2015-09-28 16:08:01 +02:00
Fabian Homborg
eb4e4fa7ad Normalize aura completions
Also fixes bug related to repo listings
2015-09-28 15:39:51 +02:00
Fabian Homborg
aa37b40d93 __fish_hg_prompt: Clean up a bit
`sort -u | uniq` is completely redundant, calling grep for every
status-pair is unnecessary, `contains` doesn't take the word "in" as
special.

None of these are critical and there's basically no performance benefit
since this function is utterly dominated by hg calls.
2015-09-27 16:30:37 +02:00
Fabian Homborg
8eccf8a6f7 __fish_hg_prompt: Remove explicit root check again
This doesn't add anything except slowing the function down by about
33%. Checking for a branch is just as good and that is displayed in the
prompt anyway.
2015-09-27 16:23:11 +02:00
Fabian Homborg
2334374fd6 math: Avoid calling env 2015-09-27 12:51:24 +02:00
Fabian Homborg
95908aa2bc __fish_hg_prompt: Only show current bookmark 2015-09-26 21:52:20 +02:00
Fabian Homborg
a19f4dd4c8 __fish_hg_prompt: Add bookmark support 2015-09-26 20:41:18 +02:00
Fabian Homborg
eadd4d9b71 __fish_hg_prompt: Bail early if not in a hg repo 2015-09-26 20:40:48 +02:00
Fabian Homborg
5bb81461f6 Normalize ls completions and bring them up-to-date
This adds the --group-directories-first option for GNU ls and fixes a
typo in --block-size (not --blocksize).

Fixes #2425.
2015-09-26 11:40:04 +02:00
Fabian Homborg
d591cebf44 Introduce __fish_print_pacman_repos helper
This is used in at least 4 places, all of which have a bug in that they
print "options" as a valid repo. It seems better to fix it once,
especially given that there are tons of AUR helpers and pacman wrappers,
all of which might need this info.
2015-09-25 13:37:39 +02:00
Fabian Homborg
f24d5cb5f0 __fish_print_{addresses,interaces}: Better OSX/BSD 2015-09-24 15:32:15 +02:00
Fabian Homborg
79c22c76bf __fish_print_{addresses,interfaces}: Add alternative to net_tools
net_tools, which provides `ifconfig` and `netstat`, among other things,
has last been updated in 2013. This means `ifconfig` on linux is
basically dead.

Instead of ifconfig, use `ip` (from iproute2), which is much more powerful and
provides a much more annoying commandline syntax.

Instead of netstat, just look at /sys/class/net.
2015-09-24 15:32:15 +02:00
Fabian Homborg
20e96df85d export: Enable values with "=" in them
Only split on the first "=" to achieve this.

Closes #2403
2015-09-24 15:28:58 +02:00
Fabian Homborg
54d1d98e39 Fix aliases with whitespace
And document how that stuff works.

Fixes #2220

Also, the string stuff is cool.
2015-09-23 13:28:32 +02:00
Fabian Homborg
6f92781992 Refactor *vi* completions, add nvim wrapper
This assumes `vim` is always vim (or close enough, nvim should also
work), while `vi` could be either.

Fixes #2416
2015-09-23 12:59:05 +02:00
Fabian Homborg
56399b9aa3 systemctl completions: Show instanced services
This unfortunately requires us to do two systemctl calls, but it's still
pretty fast.
2015-09-17 18:16:56 +02:00
Fabian Homborg
b231ab7238 Allow set_color options in general for linux VTs 2015-09-10 15:12:02 +02:00
Fabian Homborg
40df11b162 Also allow bold, underline and printing colors in linux kernel VTs
bold works, printing colors doesn't change anything and underline
doesn't _break_.
2015-09-10 12:27:09 +02:00
Fabian Homborg
bffeb664cc Add __fish_sgrep
Missed in b85a8bb because of `git commit -a`.

Fixes #2372
2015-09-09 21:52:18 +02:00
Fabian Homborg
b85a8bbbfe Rename sgrep to __fish_sgrep
Makes it harder to cause issues with aliases, see fish-shell#2245
2015-09-09 20:55:04 +02:00
Fabian Homborg
cb5511c8db Vcs prompt: Break if vcs isn't installed
Prevents an annoying error message.
Fixes #2363.
2015-09-06 14:58:09 +02:00
Fabian Homborg
f3695b95fc Use $VISUAL before $EDITOR in funced
Closes #2268
2015-09-02 13:55:59 +02:00
Fabian Homborg
5f080fcfc9 Load fish_user_key_bindings for any binding (including vi)
fish_user_key_bindings is the user's, and they should know if they want
vi-ish bindings or emacs-ish (or nano-ish). If they want to define
multiple, they can also do that (e.g. via checking what
$fish_key_bindings is set to).

Fixes #2254

CC @kballard
2015-09-01 11:50:50 +02:00
Fabian Homborg
a21e44c155 Add escape sequences for arrows in some linux VTs
Why this is only in some, I don't know, but these don't seem to
interfere with anything.

Fixes #2309
2015-09-01 11:46:54 +02:00
Fabian Homborg
5043b9d06e Revert "Fix missing variable expansion $ in psub"
That change was a bit too eager as the mkfifo route doesn't currently work.

See #1040 and #2052.

This reverts commit a17b9fdaba.
2015-08-31 19:32:28 +02:00
Fabian Homborg
a17b9fdaba Fix missing variable expansion $ in psub 2015-08-31 19:24:48 +02:00
Fabian Homborg
2f3123e175 Make overriding cnf-handler work
See #1925: This allows users to disable the cnf-logic which can be quite
slow on small hardware (like a raspberry pi).

Squashed commit of the following:

commit 742a59e30d8db24b6bb5067d4204d4b5cc01c1c3
Author: Fabian Homborg <FHomborg@gmail.com>
Date:   Sun Aug 30 18:23:41 2015 +0200

    Erase startup cnf-handler early

    Simplifies the code a bit - in particular it removes the special-casing
    from the startup handler.

commit 638a97e7f31f302b65e044c93c638c03a69e31f5
Author: Fabian Homborg <FHomborg@gmail.com>
Date:   Mon Aug 24 20:14:46 2015 +0200

    Make overriding cnf-handler work

    Do this by renaming the __fish_command_not_found_handler used during
    startup to __fish_startup_command_not_found_handler. That allows us to
    check if __fish_command_not_found_handler has been defined and skip the
    setup of the normal one.

    Now disabling cnf-handling can be done via defining an empty
    __fish_command_not_found_handler in config.fish
2015-08-31 18:39:15 +02:00
Fabian Homborg
17c756971a Add a shell suspend function
Squashed commit of the following:

commit ede9e510751497d61ff0e78fd948e901171cf6f9
Merge: 938da30 239d2a2
Author: Fabian Homborg <FHomborg@gmail.com>
Date:   Thu Aug 6 18:47:43 2015 +0200

    Merge branch 'suspend' of https://github.com/mwm/fish-shell into suspend

commit 239d2a28e1
Author: Mike Meyer <mwm@mired.org>
Date:   Thu Aug 6 11:24:32 2015 -0500

    Handle interactive & login shells, SHLVL checks, and better message.

commit 6334047ebd
Author: Mike Meyer <mwm@mired.org>
Date:   Tue Aug 4 08:53:10 2015 -0500

    Add a description to suspend

commit 080458b31c
Author: Mike Meyer <mwm@mired.org>
Date:   Tue Aug 4 07:05:17 2015 -0500

    Add a shell suspend function
2015-08-30 18:42:35 +02:00
Fabian Homborg
f71e877f18 Improve situation for linux in-kernel VTs (TERM = "linux")
This adds a special colorscheme and prompt function guaranteed to work
on a VT and activates them automatically if $TERM = "linux".

set_color is overridden to only allow the 8 colors VTs have (under the
assumption those are always the same) and the color variables are
shadowed with global ones so they don't pollute our nice capable terms.
2015-08-30 18:30:03 +02:00
Annika Backstrom
d6c97a6a13 Fix spelling 2015-08-30 00:33:04 -04:00
Fabian Homborg
47b9993469 {prev,next}d-or-*-word: Fix for multiple lines
Fixes #2333
2015-08-26 21:30:04 +02:00
Fabian Homborg
7bfad18ec7 Make alt-arrow in iTerm2 do the same thing as elsewhere
nextd-or-forward-word and such

Fixes #1836
2015-08-25 13:49:40 +02:00
Jonas Hietala
5238ed309f Match the whole real home directory in prompt_pwd. 2015-08-08 23:19:01 +02:00
Nicholas Maccharoli
f6ab0b4d07 Making spacing of .fish files uniform. 2015-08-08 11:22:44 -07:00
Fabian Homborg
66f11e9bd3 vi-mode: Make \cc go to normal from insert mode
Keep the behavior for normal mode

Fixes #2228
2015-08-04 14:22:55 +02:00
David Adam
9b2a17eb1e functions/history.fish: whitespace only change
Run through fish_indent, mismatching indents actually confusing.

[skip ci]
2015-07-31 17:12:16 +08:00
David Adam
a7ecc0db1f functions/history.fish: validate command line arguments in wrapper
Closes #2055.

Implements the standard `--` option for delimiting options from
arguments; to search for "--", use `history --search -- --`.
2015-07-31 17:07:27 +08:00
David Adam
d1d36cc9af Merge branch 'death_of_mimedb' 2015-07-25 13:04:28 +08:00
PythEch
b32f770a69 Fix Unknown Signal 'winch'
Fixes an annoying error that affects machines with Turkish locales
2015-07-24 08:56:14 -07:00
David Adam
78d4f22ce4 __fish_print_mounted: expand scope on non-Linux platforms 2015-07-24 18:35:10 +08:00
Fabian Homborg
3925929979 Fix mountpoints with spaces on linux
Signed-off-by: David Adam <zanchey@ucc.gu.uwa.edu.au>
2015-07-24 18:33:35 +08:00
David Adam
6c668868e9 death of mimedb: remove mimedb from the tree 2015-07-23 14:35:35 +08:00
David Adam
6add8a7df9 open: drop mimedb dependency 2015-07-23 14:26:38 +08:00
David Adam
7fa69ef8be __fish_complete_suffix: don't provide file description by default
Drops dependency on the mimedb tool and reflects the changes made to the
default chooser for files in #279.
2015-07-23 14:26:38 +08:00
David Adam
f77f71c17e __fish_{filter,complete}_mime: drop from tree
These are undocumented and unused, and rely on mimedb which is being removed
from the tree.
2015-07-23 14:26:38 +08:00
Fabian Homborg
3b0805f4d7 Normalize *diff completions 2015-07-20 15:19:03 -07:00
Fabian Homborg
0c1485c325 Normalize *grep completions 2015-07-20 15:19:03 -07:00
Fabian Homborg
6475d763d0 Remove function and descriptions from rc-service completion
The descriptions are "Start: Start the service"
				 	 "Stop : Stop the service"
					 "Restart: Restart the service"
2015-07-20 15:19:03 -07:00
Fabian Homborg
7add4d5782 Normalize *tex completions 2015-07-20 15:19:03 -07:00
Fabian Homborg
f70b1ffbbf Normalize python* completion 2015-07-20 15:19:03 -07:00
Fabian Homborg
8a9b7dc63a Normalize *sum (md5sum et al) completions 2015-07-20 15:19:03 -07:00
Fabian Homborg
3f30096727 Normalize svn completion 2015-07-20 15:19:02 -07:00
Fabian Homborg
52ff997bf0 Normalize atool completions
Remove function, use wrapping.
2015-07-20 15:19:02 -07:00
ridiculousfish
2109af0987 Implement lowercase-r replace in fish_vi_mode
Fixes #1595
2015-07-20 00:29:08 -07:00
Fabian Homborg
882f4714ac pacman completion: Turn into regular completion
This used to be a function because we didn't have complete -w

Use that and it becomes a bit simpler.

This also simplifies the code in a few other ways (like removing a
useless-use-of-cat)
and adds comments about a few edgecases.
2015-07-19 18:03:01 -07:00
Fabian Homborg
616d848fac Add .fish suffix to funced's tempfile name
This allows editors (like emacs) to pick up on the fact that it's a fish script.
2015-07-19 17:22:09 -07:00
Jesse Nazario
466806fb11 ctrl-p as up-or-search and ctrl-n as down-or-search 2015-07-19 17:13:44 -07:00
Vladimir Rudnyh
d49f6e1b29 __fish_git_prompt: fix stateseparator color in informative_status
In informative_status mode stateseparator did not use
fish_git_prompt_color settings.
2015-07-12 14:53:52 -07:00
David Woods
4a3cda1495 update function parameter for EXIT signal
changed `function __trap_handler_EXIT --on-exit %self` to `function __trap_handler_EXIT --on-process-exit %self`

I'm guessing the on-exit syntax was from an older version? Trapping EXIT with that syntax caused errors.
2015-07-12 14:21:05 -07:00
Derek Harland
05daedf7c6 Improve dirs output and add -c option
Adds behaviour similar to bash:
- shorten dirs output by representing $HOME as ~;
- provide a '-c' option to clear the stack
2015-07-12 12:20:44 -07:00
Derek Harland
f07d59c55d Alter pushd to add more bash-like behaviour
The following behaviour is added:
- an empty pushd exchanges the top two directories in the stack;
- pushd +<n> rotates the stack so that the n-th directory (counting from the left of the list shown by dirs, starting with zero) is at the top;
- pushd -<n> rotates the stack so that the nth directory (counting from the right of the list shown by dirs, starting with zero) is at the top.
2015-07-12 11:57:14 -07:00
Fabian Homborg
25d19f7d63 Add completions for systemd's machinectl 2015-07-02 14:36:48 +08:00
David Adam
976ce1e8fd Add completions for Debian's Apache tools, a2{en,dis}{mod,conf,site}
Work on #2141.
2015-06-26 16:14:01 +08:00
David Adam
7d94b7fd1b __fish_print_hostnames: ignore errors from getent
Closes #2137.
2015-06-19 16:42:48 +08:00
ridiculousfish
4115a2f2d1 Tweak and add tests for abbr
1. When run with no arguments, make abbr do the equivalent
   of `abbr --show`
2. Enable "implicit add", e.g. `abbr gco git checkout`
3. Teach `abbr --show` to not use quotes for simple cases
4. Teach abbr to output -- when the abbreviation has
   leading dashes

Add some basic tests to abbr too.
2015-06-14 14:12:29 -07:00
ridiculousfish
767742c7e7 Rework how the mode is reported in fish_vi_mode
Add a new function fish_mode_prompt which (if it is defined) has its output
prepended to the left prompt. Rather than replacing the prompt wholesale, make
fish_vi_mode enable this function by setting a variable __fish_vi_mode. This
enables vi mode to interoperate nicely with custom prompts. Users who want
to change how the mode is reported can either redefine this function or
erase it entirely. Fixes #1988.
2015-06-14 11:36:11 -07:00
David Adam
18d7465592 Merge branch 'Integration_2.2.0' 2015-06-05 14:02:25 +08:00
David Adam
b6b6de3304 vi bindings: clear commandline with Ctrl-C
Closes #2077.
2015-06-05 14:01:43 +08:00
Michael Steed
cb984cf761 Add 'bigword' vi key bindings
- Add four new functions: forward-bigword, backward-bigword,
  kill-bigword, backward-kill-bigword
- Add new enum move_word_style_whitespace and related state machine
  method
- Change vi key bindings to operate on bigwords: B, gE, W, E, dW, diW,
  daW, dE, dB, dgE, cW, ciW, caW, cE, cB, cgE, yW, yiW, yaW, yE, yB,
  ygE
2015-06-04 12:09:02 -07:00
ridiculousfish
3a190bbe49 Revert "Notify vte-based terminals when a command completes."
Backing out fix for #2096 until we know how to avoid
spamming other terminals (#2102)

This reverts commit 5c4acc8ee1.
2015-05-30 11:57:31 -07:00
Ben Liblit
5c4acc8ee1 Notify vte-based terminals when a command completes.
Notification is sent using an OSC 777 escape sequence as described at
http://known.phyks.me/2014/local-notifications-for-weechat-and-urxvt.
The specific notification is crafted to match that emitted by bash
when running under Fedora 22 with the "vte-profile" RPM installed.
See the code for "__vte_prompt_command" starting at
http://pkgs.fedoraproject.org/cgit/vte291.git/tree/vte291-command-notify.patch#n307
to see exactly what bash produces.  My approach is, however, a bit
more paranoid about control characters embedded in commands.

Gnome-terminal 3.16 responds to this escape sequence by posting a
desktop notification if the containing terminal window does not have
focus.  This lets the user know that a long-running background command
has completed.  Job notification is promoted as a Fedora 22 feature
(http://fedoramagazine.org/terminal-job-notifications-in-fedora-22-workstation/),
so it would be good for fish users to be benefit from it.

Conversely, anyone who does not want this feature can use "functions
--erase __notify_vte_command_completed" to turn it off.
2015-05-28 03:10:56 -05:00
David Adam
c0cf25cf0b abbr: rename --remove to --erase
for consistency with other fish commands

Closes #2071.
2015-05-22 09:48:39 +08:00
ridiculousfish
7a1fc028e3 Only pass the command name to command-not-found
With the fix for #365, fish_command_not_found event handlers
receive the command and all of its arguments. But commands
like /usr/lib/command-not-found expect only the command name.
So when invoking an external command, just pass the command
name, not all of the arguments.
2015-04-20 02:22:54 -07:00
ridiculousfish
97aa1c033b Switch back to insert mode after executing a command in vi mode
Fixes #1933
2015-04-08 10:31:48 -07:00
ridiculousfish
87428672d8 Fix funcsave to not delete the function it just created
In 73f344f41b, we allowed autoloaded functions to be deleted.
For some reason, funcsave immediately deletes the function it
creates. This previously did very little, since the function would
immediately be re-autoloaded, but with the fix for 73f344f41b
the function gets tombstoned. So the effect is that funcsave
makes the function disappear! This simply removes the erase call,
which dates back to fish 1.x.
2015-04-06 22:40:13 -07:00
Sanne Wouda
cad1dc5293 Fix #1978:"ul: unknown escape sequence" when asking for help
It seems that `ul` can't handle the escape sequences for bold text that `nroff` generates on my system.  Fixed by either removing `| ul`, or adding `-c` to the `nroff` command.

Needs testing for old (OSX?) versions of nroff.
2015-04-04 12:03:58 -07:00
David Adam
900a8a1408 __fish_complete_python: fix regex to be POSIX-compatible
Closes #2004.
2015-03-30 15:13:04 +08:00
David Adam
384cb2d735 Revert "__fish_config_interactive: warn users that fishd is going away"
This reverts commit ad61c3f0d6.

Work on #1730.
2015-03-30 13:42:59 +08:00
David Adam
ad61c3f0d6 __fish_config_interactive: warn users that fishd is going away
Work on #1730
2015-03-26 16:24:52 +08:00
David Adam
48d353610f abbr: coalesce multiple arguments to --add
Makes the behaviour of the script match the documentation.
2015-03-13 16:32:05 +08:00
Fabian Homborg
16e65c849c systemctl completions: Only list matching units on enable/disable 2015-03-06 23:05:24 -08:00
Fabian Homborg
33c0d93b20 systemctl completions: Add more unit types and commands
It should now support all unit types mentioned in systemd.unit(5)
2015-03-06 23:05:24 -08:00
Fabian Homborg
3e32715693 systemctl completions: Support user-mode 2015-03-06 23:05:24 -08:00
David Adam
597dda5a4b isatty: use command test instead of redirections
Adds a fork but can't use builtin test yet.

Closes #1870.
2015-02-01 18:18:34 +08:00
David Adam
66acd17bc0 isatty: revert to previous behaviour
This partially reverts commit 60808a4820.
2015-02-01 18:18:34 +08:00