How to alias quit() to quit?
这只是一种方便,但我认为很有用。注意,ipython和matlab一样允许纯退出。因此,在Julia中允许使用别名是合理的。
谢谢你对如何做这件事有任何想法。
在茱莉亚辞职
如果从命令行使用Julia,则ctrl-d有效。但是,如果您打算通过键入命令退出,这是不可能的,这正是您想要的方式,因为在repl中键入quit已经具有返回与quit相关的值的含义,即函数quit。
1 2 3 4 5 | julia> quit quit (generic function with 1 method) julia> typeof(quit) Function |
也Python
但这并不罕见,例如,Python有类似的行为。
1 2 | >>> quit Use quit() or Ctrl-D (i.e. EOF) to exit |
使用宏
在julia repl中使用q可能很好,就像在postgres repl中一样,但不幸的是也已经有了意义。但是,如果您正在寻找一种简单的方法来实现这一点,那么宏如何
1 2 3 | julia> macro q() quit() end julia> @q |
Causes Julia to Quit
如果将宏定义放在.juliarc.jl文件中,则每次运行解释器时都可以使用该宏定义。
正如Wateim所指出的,当您在repl中键入
但是,您可以做的是更改函数的显示方式。这是非常糟糕的,并不能保证有效,但是如果您非常希望这种行为,您可以这样做:将这种行为黑客到显示方法中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | julia> function Base.writemime(io::IO, ::MIME"text/plain", f::Function) f == quit && quit() if isgeneric(f) n = length(f.env) m = n==1 ?"method" :"methods" print(io,"$(f.env.name) (generic function with $n $m)") else show(io, f) end end Warning: Method definition writemime(IO,MIME{symbol("text/plain")},Function) in module Base at replutil.jl:5 overwritten in module Main at none:2. writemime (generic function with 34 methods) julia> print # other functions still display normally print (generic function with 22 methods) julia> quit # but when quit is displayed, it actually quits! $ |
不幸的是,没有比
还要注意,这是非常意外和有点危险的。有些库最终可能会试图显示函数