vim 判断文件类型并使用imap进行不同的映射无效

发布于 2022-09-12 22:39:45 字数 195 浏览 19 评论 0

image.png
代码如图
imap的内容没有问题,后面的imap都能用,if里面的imap我之前试过也没有问题。

&filetype 我也使用echo看过没有错误,但无论在.c还是.py文件中,{}都无法映射(插入模式下输入完全是普通的输入)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青春如此纠结 2022-09-19 22:39:45

可以添加这两行到的_vimrc或者.vimrc当中:

autocmd FileType c      inoremap <buffer> {} {}<left><cr><esc>kA<cr>
autocmd FileType python inoremap <buffer> {} {}<left>

不过当要执行的Ex命令比较多的时候,在保证filetype plugin on的前提下,可以考虑加到after/ftplugin/xxx.vim当中,xxx代表各种语言名称,after文件夹一般放在设置runtimepath包含的任一路径内。
比如每一次打开C语言的文件都会把after/ftplugin/c.vim里面所有的Ex命令以overrule的方式运行一次。不过我刚刚在vim测试貌似行不通,好久没有鼓捣vim了,现在用的是neovim,然后因为init.vim所在的路径是包含在设置runtimepath里面的,所以可以把after文件夹会跟init.vim放同一路径下

相关信息
:h :map-<buffer>
:h 'runtimepath'
:h ftplugin
:h ftplugin-overrule

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文