I'm install node with FNM after that throw this text on terminal :
function -- create a function
Synopsis
function [OPTIONS] NAME; BODY; end
Description
function creates a new function NAME with the body BODY.
A function is a list of commands that will be executed when the name of
the function is given as a command.
The following options are available:
· -a NAMES or --argument-names NAMES assigns the value of successive
command-line arguments to the names given in NAMES.
· -d DESCRIPTION or --description=DESCRIPTION is a description of what
the function does, suitable as a completion description.
· -w WRAPPED_COMMAND or --wraps=WRAPPED_COMMAND causes the function to
inherit completions from the given wrapped command. See the
documentation for complete for more information.
· -e or --on-event EVENT_NAME tells fish to run this function when the
specified named event is emitted. Fish internally generates named
events e.g. when showing the prompt.
· -v or --on-variable VARIABLE_NAME tells fish to run this function
when the variable VARIABLE_NAME changes value.
· -j PGID or --on-job-exit PGID tells fish to run this function when
the job with group ID PGID exits. Instead of PGID, the string
'caller' can be specified. This is only legal when in a command
substitution, and will result in the handler being triggered by the
exit of the job which created this command substitution.
· -p PID or --on-process-exit PID tells fish to run this function when
the fish child process with process ID PID exits.
· -s or --on-signal SIGSPEC tells fish to run this function when the
signal SIGSPEC is delivered. SIGSPEC can be a signal number, or the
signal name, such as SIGHUP (or just HUP).
· -S or --no-scope-shadowing allows the function to access the
variables of calling functions. Normally, any variables inside the
function that have the same name as variables from the calling
function are 'shadowed', and their contents is independent of the
calling function.
· -V or --inherit-variable NAME snapshots the value of the variable
NAME and defines a local variable with that same name and value when
the function is executed.
If the user enters any additional arguments after the function, they
are inserted into the environment variable array $argv. If the
--argument-names option is provided, the arguments are also assigned to
names specified in that option.
By using one of the event handler switches, a function can be made to
run automatically at specific events. The user may generate new events
using the emit builtin. Fish generates the following named events:
· fish_prompt, which is emitted whenever a new fish prompt is about to
be displayed.
· fish_command_not_found, which is emitted whenever a command lookup
failed.
· fish_preexec, which is emitted right before executing an interactive
command. The commandline is passed as the first parameter.
Note: This event will be emitted even if the command is invalid. The
commandline parameter includes the entire commandline verbatim, and may
potentially include newlines.
· fish_postexec, which is emitted right after executing an interactive
command. The commandline is passed as the first parameter.
Note: This event will be emitted even if the command is invalid. The
commandline parameter includes the entire commandline verbatim, and may
potentially include newlines.
Example
function ll
ls -l $argv
end
will run the ls command, using the -l option, while passing on any
additional files and switches to ls.
function mkdir -d 'Create a directory and set CWD'
command mkdir $argv
if test $status = 0
switch $argv[(count $argv)]
case '-*'
case '*'
cd $argv[(count $argv)]
return
end
end
end
This will run the mkdir command, and if it is successful, change the
current working directory to the one just created.
function notify
set -l job (jobs -l -g)
or begin; echo 'There are no jobs' >&; return 1; end
function _notify_job_$job --on-job-exit $job --inherit-variable job
echo -n \a # beep
functions -e _notify_job_$job
end
end
This will beep when the most recent job completes.
~/.config/fish/functions/npm.fish (line 1): function npm -d "javascript package manager" -w npm
__fnm_run_bin_as "npm" $argv
^
from sourcing file ~/.config/fish/functions/npm.fish
called on standard input
in command substitution
called on standard input
function: Unknown option “-w”
~/.config/fish/functions/npm.fish (line 1): function npm -d "javascript package manager" -w npm
^
from sourcing file ~/.config/fish/functions/npm.fish
called on standard input
in command substitution
called on standard input
function -- create a function
Synopsis
function [OPTIONS] NAME; BODY; end
function: Type “help function” for related documentation
After close an reopen the terminal the node version i installed do not remember in terminal and I should type fnm use 9.6.4 every-time I open a terminal or tab.
with nvm I have the same issue
Could you type fish -v on your terminal and tell us which fish shell version you are using?
fish, version 2.2.0
Ubuntu 16.04
@hemedani What version of fisherman are you using?
fisherman version 2.11.0 ~/.config/fish/functions/fisher.fish
@hemedani fisherman ought to work with fish 2.2, so this may be a problem with fnm.
Can you update fish? 2.2 is pretty old :)
fixed with
fish, version 2.4.0
many tanks
@jbucaran So it seems fish 2.2.0 doesn't support the -w after the function
@hemedani @FabioAntunes
fish 2.2.0 doesn't support the -w after the function
Another case solved!
We need to update fnm to indicate it requires at least fish 2.3.
Most helpful comment
fixed with
fish, version 2.4.0
many tanks