在 neovim 中调用术语命令时如何连接字符串以作为输入提供
How to concatenate strings to provide as input when calling the term command in neovim
我有以下例子:
autocmd FileType python nnoremap <buffer> <leader>c :let python_file=expand('%:p')<CR>:term 'python ' . python_file<CR>
这是 运行 python 代码的示例脚本,但是每当我尝试在 python 文件中使用此键绑定时,我都会收到以下错误:
''python' is not recognized as an internal or external command,
似乎正在发生的事情是术语命令可能没有正确连接字符串 ('python ' . python_file
),我将其作为命令提供。
有什么办法可以解决这个问题吗?
请注意,这只是我正在尝试做的事情的一个简化示例,请不要提出诸如 :term python expand('%:p')
之类的解决方案,我知道它适用于大多数常见情况,但不适用于我的情况。
:terminal
需要一个字符串,而不是一个表达式。您将不得不使用 :help :execute
将您的命令放在一起:
nnoremap <key> :let python_file=expand('%:p')<CR>:execute 'term python ' .. python_file<CR>
(Please note that this is just a simplified example of something which I am trying to do please do not suggest a solution such as :term python expand('%:p')
which I know will work for most common cases but it will not work in my case)
嗯,还可以进一步简化:
autocmd FileType python nnoremap <buffer> <leader>c :term python %:p<CR>
提问时要聪明。您发布的映射没有任何意义,因此回答者关注 您 给他们的示例并根据您提交的示例提出建议是非常合理的:XY 问题是这些部分确实存在问题。
例如,您的问题可以用很多简单的术语来说明,不会引起对您设计的映射的不必要的注意:
I have a file path in variable ...
but I can't make :term
use it. I have tried ...
and ...
but nothing worked. What did I do wrong?
只有一个答案,这不会对您的意图做出任何假设。
我有以下例子:
autocmd FileType python nnoremap <buffer> <leader>c :let python_file=expand('%:p')<CR>:term 'python ' . python_file<CR>
这是 运行 python 代码的示例脚本,但是每当我尝试在 python 文件中使用此键绑定时,我都会收到以下错误:
''python' is not recognized as an internal or external command,
似乎正在发生的事情是术语命令可能没有正确连接字符串 ('python ' . python_file
),我将其作为命令提供。
有什么办法可以解决这个问题吗?
请注意,这只是我正在尝试做的事情的一个简化示例,请不要提出诸如 :term python expand('%:p')
之类的解决方案,我知道它适用于大多数常见情况,但不适用于我的情况。
:terminal
需要一个字符串,而不是一个表达式。您将不得不使用 :help :execute
将您的命令放在一起:
nnoremap <key> :let python_file=expand('%:p')<CR>:execute 'term python ' .. python_file<CR>
(Please note that this is just a simplified example of something which I am trying to do please do not suggest a solution such as
:term python expand('%:p')
which I know will work for most common cases but it will not work in my case)
嗯,还可以进一步简化:
autocmd FileType python nnoremap <buffer> <leader>c :term python %:p<CR>
提问时要聪明。您发布的映射没有任何意义,因此回答者关注 您 给他们的示例并根据您提交的示例提出建议是非常合理的:XY 问题是这些部分确实存在问题。
例如,您的问题可以用很多简单的术语来说明,不会引起对您设计的映射的不必要的注意:
I have a file path in variable
...
but I can't make:term
use it. I have tried...
and...
but nothing worked. What did I do wrong?
只有一个答案,这不会对您的意图做出任何假设。