不知何故,我的 macvim/vim 实例正在将每个选项卡扩展到自动完成菜单,这阻止了我在代码中添加选项卡。我真的不知道为什么。
我的 vimrc 在这里:https ://github.com/jvanbaarsen/dotfiles/blob/master/vimrc
问题截图:
(“发生”文本是自动完成列表中的第一次出现,但我在换行符上加了标签)
我希望有人能帮助我,这让我发疯了!
不知何故,我的 macvim/vim 实例正在将每个选项卡扩展到自动完成菜单,这阻止了我在代码中添加选项卡。我真的不知道为什么。
我的 vimrc 在这里:https ://github.com/jvanbaarsen/dotfiles/blob/master/vimrc
问题截图:
(“发生”文本是自动完成列表中的第一次出现,但我在换行符上加了标签)
我希望有人能帮助我,这让我发疯了!
我在网上找到了这个并在我的 vimrc 中使用它来“修复”问题。但这仍然有点痛苦,所以我只是重新训练自己使用ctrl-p
. 评论中的网址不是一次有效,但不再有效..
" Remap the tab key to do autocompletion or indentation depending on the
" context (from http://www.vim.org/tips/tip.php?tip_id=102)
function! InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-p>"
endif
endfunction
inoremap <silent> <tab> <c-r>=InsertTabWrapper()<cr>
inoremap <s-tab> <c-n>
该supertab
插件旨在保持<Tab>
键的通常缩进功能并完成它。我个人不使用自己编写的函数来使用它,但是您的问题的可能原因在项目主页上可用的 README 文件中的常见问题解答中的第一个问题中进行了描述:
为什么 supertab 不遵守我的配置设置(尝试在行首完成,总是执行关键字完成而不是我配置的默认设置等)?
很可能你安装了一个非常旧的 snipmate 版本,或者类似的东西,当没有找到片段时会发出一个 <cn> 。Supertab 用于映射到 <cn>,因此此行为将作为对 supertab 的回退,但当前版本的 supertab 不再这样做,导致 snipmate 完全绕过 supertab。
您可以通过在 vim 中运行以下命令来检查是否是这种情况,以查看映射到 <tab> 的内容:
:verbose imap <tab>
要解决此问题,您可以:
- 安装我的叉子或
- 升级到更新的 snipmate fork,例如garbase/vim-snipmate
有关其他详细信息,请参见#74。
我想我找到了问题,它是 'ervandew/supertab' 包,删除它后,我能够正常使用 vim。