在 Julia 中更改 REPL module/namespace
Change REPL module/namespace in Julia
我正在寻找一种方法来 "enter" REPL 中的一个模块,这样我就可以访问 所有 符号而无需限定(不仅仅是导出的) ,并且在 REPL 中定义的任何(重新)函数都会进入指定的模块。 (基本上这是 Common Lisp 的 in-package
宏的功能。)
这在面向 REPL 的工作流中很有用,因为我可以在 REPL 中编写与我正在开发的模块中相同的代码。
手册 recommends a workflow 我在其中限定了所有内容,但这看起来很烦人。
我不久前为此启动了一个名为 REPLMods.jl 的软件包。应该可以打磨一下,可惜没时间。
我与 Julia 的核心成员谈过,他们有兴趣在事情清理干净后将其合并到 base 中,但同样,没时间了!
我知道这不是您要问的,但以防万一 'obvious' 没有发生在您(或该问题的未来访问者)身上,假设您加载了一个令人讨厌的模块繁琐的名称,例如
import LaTeXStrings
而且您不希望一直键入 LaTeXStrings 只是为了探索其可访问性,即
LaTeXStrings.[TAB]
您可以将导入的模块作为一个整体分配给另一个变量,即
const l = LaTeXStrings
我敢肯定,在没有更合适的内置解决方案的情况下,至少输入 l.[TAB]
而不是 LaTeXStrings.[TAB]
更容易接受 :)
(我觉得很奇怪,事实上,julia 似乎不支持 import LaTeXStrings as l
语法...)
现在是 2020 年,我正在使用 Julia 1.4,但无法使 REPLMods.jl 正常工作。我认为以下内容暂时已经足够好了:
- ExportAll.jl - see Exporting all symbols in Julia 讨论(只是那个不应该用ExportAll来代替正常的
export
)
- 和Revise.jl
我正在寻找一种方法来 "enter" REPL 中的一个模块,这样我就可以访问 所有 符号而无需限定(不仅仅是导出的) ,并且在 REPL 中定义的任何(重新)函数都会进入指定的模块。 (基本上这是 Common Lisp 的 in-package
宏的功能。)
这在面向 REPL 的工作流中很有用,因为我可以在 REPL 中编写与我正在开发的模块中相同的代码。
手册 recommends a workflow 我在其中限定了所有内容,但这看起来很烦人。
我不久前为此启动了一个名为 REPLMods.jl 的软件包。应该可以打磨一下,可惜没时间。
我与 Julia 的核心成员谈过,他们有兴趣在事情清理干净后将其合并到 base 中,但同样,没时间了!
我知道这不是您要问的,但以防万一 'obvious' 没有发生在您(或该问题的未来访问者)身上,假设您加载了一个令人讨厌的模块繁琐的名称,例如
import LaTeXStrings
而且您不希望一直键入 LaTeXStrings 只是为了探索其可访问性,即
LaTeXStrings.[TAB]
您可以将导入的模块作为一个整体分配给另一个变量,即
const l = LaTeXStrings
我敢肯定,在没有更合适的内置解决方案的情况下,至少输入 l.[TAB]
而不是 LaTeXStrings.[TAB]
更容易接受 :)
(我觉得很奇怪,事实上,julia 似乎不支持 import LaTeXStrings as l
语法...)
现在是 2020 年,我正在使用 Julia 1.4,但无法使 REPLMods.jl 正常工作。我认为以下内容暂时已经足够好了:
- ExportAll.jl - see Exporting all symbols in Julia 讨论(只是那个不应该用ExportAll来代替正常的
export
) - 和Revise.jl