Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Function not found

On Wed, Dec 19, 2012 at 10:44:23PM -0800, czech@xxxxxxxxx wrote:
> Greetings!
> I have a function I use to connect to remote hosts. I call my function _ssh:
> _ssh() {
>     ssh -XC "czechar@$@"
> }
> I keep my functions in a directory under my home dir. I call the directory
> .zfuncs. I read my functions in my .zshrc via autoload and add them to my
> fpath:
> autoload -- ~/.zfunc/[^_]*(:t)
> fpath=( ~/.zfunc $fpath )

The autoload command you have here appears to be your problem. You
probably want something like:

    autoload _ssh
    fpath=( ~/.zfunc $fpath )

If your _ssh function is defined in the file ~/.zfunc/_ssh, your
original command *could* work, but you would have to remove the '[^_]'
which prevents files beginning with underscores.

To be clear, autoload wants the names of the *functions*, not the names
of the files. Your approach above could work so long as each function is
in a separate file, and both (file and function) share the same exact
name (i.e. can't be _ssh.zsh).

> But when I try to use _ssh, zsh tells me:
> Grendel:czech:~> _ssh adc2201650
> zsh: correct '_ssh' to 'ssh' [nyae]?
> I thought I had told zsh not to correct my spelling for ssh via:
> alias ssh='nocorrect ssh'

I think that you have the wrong idea here. From my reading of the
manpage, nocorrect only disables correction for the current command.
What you're attempting to do with it, would have to be accomplished by:

    alias _ssh='nocorrect _ssh'


    $ function _ssh() { echo "HERE"; }
    $ alias _ssh='nocorrect _ssh'
    $ _ssh

Now when you run the _ssh function, the alias will expand the call to
"nocorrect _ssh" forcing auto-correct to ignore '_ssh'.

> The function was working without issue until I ran compinstall. I have
> commented out the lines added to my .zshrc by compinstall, but the problem
> persists.
> Any ideas on what the problem is here?
> Thanks in advance.
> Corwin

Disclaimer: I know none of this for sure as I don't use CORRECT or my own
autoloads/fpath. I just gleaned this from the manpages, and poking at it
in a shell, so it's entirely possible that I don't know what I'm talking
about as I'm no zshell wizard.
Brandon Sandrowicz

Messages sorted by: Reverse Date, Date, Thread, Author