向vim解释器添加和删除目录’;导入路径
以下代码的mzscheme等价物是什么向vim解释器添加和删除目录’;导入路径,vim,scheme,racket,Vim,Scheme,Racket,以下代码的mzscheme等价物是什么 python: python import sys, vim python sys.path.append(vim.eval("var")) <...> python sys.path.remove(vim.eval("var")) python导入系统,vim python sys.path.append(vim.eval(“var”)) python系统路径移除(vim.eval(“var”)) perl: perl push @IN
- python:
python导入系统,vim python sys.path.append(vim.eval(“var”)) python系统路径移除(vim.eval(“var”))python import sys, vim python sys.path.append(vim.eval("var")) <...> python sys.path.remove(vim.eval("var"))
- perl:
perl push @INC, [VIM::Eval("var")]->[1]; <...> perl @INC=(grep {$_ ne VIM::Eval("var")} @INC);
perl-push@INC[VIM::Eval(“var”)]->[1]; perl@INC=(grep{$\nevim::Eval(“var”)}@INC);
- 卢阿:
let str=';'.var.'/?.lua;'.var.'/?/init.lua' lua package.path=package.path..vim.eval("str") <...> let ppath=[] lua vim.eval("add(ppath,"..string.format("%q", package.path)..")") let importidx=stridx(ppath[0], str) let importendidx=importidx+len(str) let ppath[0]=((importidx>0)?(ppath[0][:(importidx-1)]):("")). \ppath[0][(importendidx+1):] lua package.path=vim.eval("ppath[0]")
let str=';'。变量“/?.lua;”。变量“/?/init.lua” lua package.path=package.path..vim.eval(“str”) 设ppath=[] luavim.eval(“add(ppath,“…string.format(“%q”,package.path)”)) 设importix=stridx(ppath[0],str) 设importendidx=importidx+len(str) 设ppath[0]=((importix>0)?(ppath[0][:(importix-1)]:(“”)。 \ppath[0][(importendidx+1):] lua package.path=vim.eval(“ppath[0]”)
- 红宝石:
ruby $LOAD_PATH << VIM::evaluate("var") <...> ruby $LOAD_PATH.delete(VIM::evaluate("var"))
ruby$LOAD\u路径这取决于您希望对脚本执行的操作。(它已经很久没有被称为“mzscheme”)与模块一起工作了,因此您很少使用“向动态加载路径添加路径”之类的工作流。相反,模块是使用
表单从库的核心集合或您安装的软件包导入的 如果您真的需要动态加载东西,一个选项是设置参数,然后使用require
将从所提供目录中的dynamic require
文件中拉出add.rkt
函数。注意:我还没有测试这段代码,因为我找不到一个版本的vim,其中编译了Racket支持add
您可以在Racket中找到vim接口的文档。Racket的一般文档。您是如何安装软件包的?我需要的是让frawor用户能够将目录添加到他们的插件中,这些插件将作为模块导入路径,而不需要他们自己添加这个路径。我从未见过lua、tcl或racket/mzscheme需要插件,因此它们的代码只是为了完整性。如果一个典型的racket用户希望将其使用vim接口的racket源代码包含在一个单独的文件中,并且只有几个从映射/命令中调用的函数,那么他会怎么做?如果您需要从另一个文件(位于同一目录中)中调用函数,您可以按名称引用它。像
。这适用于任何相对路径。如果不能保证文件具有固定的相对路径,则可能需要使用(需要“foo.rkt”)
。谢谢,这意味着我不需要在frawor中执行任何操作。dynamic require
silent tcl lappend auto_path [::vim::expr "dir"] <...> silent tcl set auto_path \ [lreplace $auto_path \ {*}[lrepeat 2 \ [lsearch -exact $auto_path \ [::vim::expr "a:fdict.imported"]]]]
(require (prefix-in vim- vimext)) (parameterize ([current-directory (vim-eval "var")]) (define add (dynamic-require "add.rkt" 'add)))