“*.foo”外壳函数

发布于 2024-11-01 13:52:09 字数 256 浏览 3 评论 0原文

我想添加到我的 .zshrc 函数中,该函数将对具有“.c”后缀的文件执行操作。例如,

*.c () {
    gcc $0 -o ${0%.*}
}

当我输入“foo.c”时必须执行“gcc foo.c -o foo”

但是当我将此函数添加到“.zshrc”时,我的shell开始在登录时打印“no matches find: *.c” 。

我可以用其他方式做这个或者让这个函数变得“懒惰”吗?

I want to add to my .zshrc function that will perform operations with file that has ".c" suffix. For example,

*.c () {
    gcc $0 -o ${0%.*}
}

must perform "gcc foo.c -o foo" when I am entering "foo.c"

But when I added this function to ".zshrc", my shell begins prints "no matches found: *.c" on login.

Can I do this other way or make this function "lazy"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗喜 2024-11-08 13:52:09

您需要 alias -s 行为。从联机帮助页中:

 ALIASES
   Suffix aliases are supported in zsh since version 4.2.0. Some examples:

       alias -s tex=vim
       alias -s html=w3m
       alias -s org=w3m

   Now pressing return-key after entering foobar.tex starts vim with foobar.tex. Calling
   a html-file runs browser w3m. www.zsh.org and pressing enter starts w3m with argument
   www.zsh.org.

将您编写的函数与后缀别名结合起来,您就可以开始了!

首先,以这种形式编写您的函数:

compile_c () {     
   gcc $1 -o ${1%.*}
}

然后后缀别名

alias -s c='compile_c'

将按预期工作。

You'll want alias -s behaviour. From the manpages:

 ALIASES
   Suffix aliases are supported in zsh since version 4.2.0. Some examples:

       alias -s tex=vim
       alias -s html=w3m
       alias -s org=w3m

   Now pressing return-key after entering foobar.tex starts vim with foobar.tex. Calling
   a html-file runs browser w3m. www.zsh.org and pressing enter starts w3m with argument
   www.zsh.org.

Combine your written function to a suffix alias and you should be set to go!

First, write your function in this form:

compile_c () {     
   gcc $1 -o ${1%.*}
}

And then the suffix alias

alias -s c='compile_c'

will work as intended.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文