gpt4 book ai didi

vim - 如何在:e command in Vim之后获取函数的返回值

转载 作者:行者123 更新时间:2023-12-04 22:02:48 26 4
gpt4 key购买 nike

我写了一个函数获取当前光标下文件的完整路径

nmap <F12> :echo GetFullPath()<cr>
function! GetFullPath()
let currentFile=expand("<cfile>")
let afterChangeSlash=substitute(currentFile,"/","\\","g")
let fullPath="e:\\Test\\".afterChangeSlash
return fullPath
endfunction

当我在 :echo 命令之后调用该函数时,我得到了预期的结果,例如:

:echo GetFullPath()

e:\Test\test.h

但是,当我在 :e(edit) 命令之后调用它时:

:e GetFullPath()

Vim 只是创建一个名为 GetFullPath()

的新文件

为什么命令 :e 会按字面意思处理函数调用而命令 :echo 不会?

最佳答案

您可以使用 :execute构建你的 ex 命令字符串并执行它:

:exe "e ".GetFullPath()

或者使用 `=`扩展 Vim 表达式的语法:

:e `=GetFullPath()`

如果你查看 :edit:echo 的帮助,你会注意到前者期望它的参数是文件名(字面意思),而 :echo 需要一个将被计算的表达式。

关于vim - 如何在:e command in Vim之后获取函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com