映射同一个键以从vim编译/运行不同语言的代码

映射同一个键以从vim编译/运行不同语言的代码,vim,Vim,我有地图:w!在我的.vimrc中,铿锵-o%

我有地图:w!在我的.vimrc中,铿锵-o%<%&&./%<,但是我想映射F8来运行python代码。这怎么可能?显然,我不想让clang运行python,我希望有一个条件或某些东西,根据已经指定的语言(例如,via:setf python等)重定向F8命令映射到的内容。

非常可行。下面是一个示例,其中我映射了用于整理不同类型文件的相同密钥:

 autocmd FileType perl nnoremap <buffer> <F12> mz:%!perltidy<CR>`z
 autocmd FileType javascript nnoremap <buffer> <F12> :call JsBeautify()<CR>

我已经有一段时间没有把它添加到我的vimrc中了,但是如果内存和一个快速的google对我有好处的话,它会监视文件类型为perl或javascript的事件,然后对发生的任何事件运行nnoremap命令。我相信还有很多其他的方法来实现它

非常可行。下面是一个示例,其中我映射了用于整理不同类型文件的相同密钥:

 autocmd FileType perl nnoremap <buffer> <F12> mz:%!perltidy<CR>`z
 autocmd FileType javascript nnoremap <buffer> <F12> :call JsBeautify()<CR>
我已经有一段时间没有把它添加到我的vimrc中了,但是如果内存和一个快速的google对我有好处的话,它会监视文件类型为perl或javascript的事件,然后对发生的任何事件运行nnoremap命令。我相信还有很多其他的方法来实现它

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

这需要:filetype插件打开,但您可能已经有了。类似地,您可以将原始映射移动到ftplugin/c.vim,或者将其作为所有文件类型的全局回退

附加提示 ; 它使映射不受重映射和递归的影响。 最好通过:n[nore]映射指定适用的具体模式,在这种情况下为正常模式。 您正在寻找特定于文件类型的映射。将Python变量放入~/.vim/after/ftplugin/Python.vim中,并将关键字添加到:map命令:

这需要:filetype插件打开,但您可能已经有了。类似地,您可以将原始映射移动到ftplugin/c.vim,或者将其作为所有文件类型的全局回退

附加提示 ; 它使映射不受重映射和递归的影响。 最好通过:n[nore]映射指定适用的具体模式,在这种情况下为正常模式。
我不知道这样做的方法。今晚我将重构我的vimrc。@chooban:您的解决方案也可以,但会弄乱vimrc中的所有配置。有些人喜欢单一的、集中的大型配置,但大多数用户使用Vim中内置的抽象会更好。通过建立一个vimrc来了解你在vim中喜欢什么,然后在它稳定的时候把它放在正确的位置。我不知道这样做的方法。今晚我将重构我的vimrc。@chooban:您的解决方案也可以,但会弄乱vimrc中的所有配置。有些人喜欢单一的、集中的大型配置,但大多数用户使用Vim中内置的抽象会更好。通过建立一个vimrc,了解您喜欢vim中的什么,然后在它稳定时将其放在正确的位置。