TL;DR
使用 vim 的文件类型插件机制。
文件类型特定代码
对此有(至少)两种解决方案,其中一种优于另一种。
autocmd FileType
这已经作为答案发布了,但一般形式是
augroup your_group
autocmd!
autocmd FileType python your good code
augroup END
这很有效,并且具有在 vimrc 中对代码进行分组的优势。
但还有第二个更强大、可能更高效的替代方案。它
是my preferred
solution。
after/ftplugin
我有written
extensively 关于使用文件类型
vim 中的插件。
它的要点是您需要文件类型检测和插件(至少filetype plugin
on,尽管您可能需要filetype plugin indent on)。然后你
在~/.vim/after/ftplugin/<filetype>.vim(或几个
变体,请参阅:h add-filetype-plugin、:h ftplugin-name、:h ftplugin)。
所以最终,
" ~/.vim/after/ftplugin/python.vim
inoremap # X#<left><backspace><right>
一些注意事项
正确设置b:undo_ftplugin 是一个好习惯:它会有所帮助(相信我)。
你可以借用我的undo script on
Github。
考虑使用<buffer>、-buffer、setlocal 和<LocalLeader>,其中
可能的。毕竟这是本地的东西。
开机
与单行自动命令相比,脚本为您提供了更多的灵活性。你有
在自动命令中跳过更多的障碍来做任何复杂的事情,其中
脚本他们可以坐下来。此外,您感觉更像是在编写程序
(你是)而不是一次性配置。
模块化也非常适合组织:您所有的 python 自定义
代码在一个地方。
而且打字少了很多:)
关于性能
我没有测量过任何东西。别开枪。
拥有大量自动命令会降低 vim 的速度,因为它们必须被检查
当他们的事件发生时。而不是用文件类型阻塞自动命令
东西,使用已经为你提供的文件(一个 ftplugin)。
借助现有的自定义机制,您可以获得所有好处
并且没有任何风险。同样,几乎可以肯定让 vim 更有效
按需为您获取文件,然后尝试重新实现它的 ftplugin 轮。