从vim映射用于编译/运行不同语言代码的相同密钥

use*_*651 1 vim

map <F8> : w <bar> !clang -o %< % && ./%< <CR>在.vimrc里面,但我想映射F8以运行python代码.怎么可能?(显然我不希望clang运行python,我希望有条件或某些东西来重定向F8映射到的命令,基于已经指定的语言,例如通过:setf python等)

Ing*_*kat 5

您正在寻找特定文件类型的映射.将Python变体放入~/.vim/after/ftplugin/python.vim,并将<buffer>关键字添加到:map命令:

nnoremap <buffer> <F8> : w <bar> !python % <CR>
Run Code Online (Sandbox Code Playgroud)

这需要:filetype plugin on,但你可能已经有了.同样,您可以将原始映射移动到ftplugin/c.vim,或将其保留为所有文件类型的全局回退.

其他提示

  • 你应该使用:noremap ; 它使映射不受重映射和递归的影响.
  • 最好指定具体的模式,这也适用于在这种情况下,正常模式下通过:n[nore]map.