3

我将以下内容添加到我的 .vimrc 文件中:

nnoremap <silent> <F5>!python %

当我按 F5 时,它应该在 Python 中运行当前文件。相反,它给出了以下错误:

Trackback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 349, in f_with_update
  File "<string>", line 358, in run_this file
NameError: global name 'send' is not defined
Press Enter or type command to continue

如果我每次运行 VIM 时都手动重新映射 F5,则此命令有效:

:map <silent> <F5>!python %

我不记得将任何东西映射到 F5,而且我的 .vimrc 文件不包含任何映射器。知道发生了什么吗?

4

2 回答 2

6
nnoremap <silent> <F5>!python %

映射<F5>!python%. 你想要的是这样的:

nnoremap <silent> <F5> :!python %<CR>

法线贴图需要:,如果你想使用一个普通的命令行命令,你需要结束它<CR>来执行命令。将右侧的所有内容视为您自己输入的键。

你可能会发现这个关于 python 的 vim wiki 页面很有用。

于 2012-09-21T04:11:05.777 回答
1

<F5>可能映射到其他地方。试试看:verbose nmap <F5>在哪里。

于 2012-09-21T05:36:45.837 回答