我将以下内容添加到我的.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文件不包含任何映射器。 知道发生了什么吗?
答案 0 :(得分:6)
nnoremap <silent> <F5>!python %
将<F5>!python
地图映射到%
。你想要的是这个:
nnoremap <silent> <F5> :!python %<CR>
如果要使用普通的cmd-line命令并且需要以:
结束它以执行命令,则法线贴图需要<CR>
。将右侧的所有内容都视为您自己键入的键。
您可能会发现this vim wiki page on python有用。
答案 1 :(得分:1)
<F5>
可能映射到别处。请尝试:verbose nmap <F5>
查看位置。