0

不知何故,我的 macvim/vim 实例正在将每个选项卡扩展到自动完成菜单,这阻止了我在代码中添加选项卡。我真的不知道为什么。

我的 vimrc 在这里:https ://github.com/jvanbaarsen/dotfiles/blob/master/vimrc

问题截图:

(“发生”文本是自动完成列表中的第一次出现,但我在换行符上加了标签)

我希望有人能帮助我,这让我发疯了!

4

3 回答 3

0

我在网上找到了这个并在我的 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>
于 2013-07-11T18:55:18.767 回答
0

supertab插件旨在保持<Tab>键的通常缩进功能并完成它。我个人不使用自己编写的函数来使用它,但是您的问题的可能原因在项目主页上可用的 README 文件中的常见问题解答中的第一个问题中进行了描述:

  • 为什么 supertab 不遵守我的配置设置(尝试在行首完成,总是执行关键字完成而不是我配置的默认设置等)?

    很可能你安装了一个非常旧的 snipmate 版本,或者类似的东西,当没有找到片段时会发出一个 <cn> 。Supertab 用于映射到 <cn>,因此此行为将作为对 supertab 的回退,但当前版本的 supertab 不再这样做,导致 snipmate 完全绕过 supertab。

    您可以通过在 vim 中运行以下命令来检查是否是这种情况,以查看映射到 <tab> 的内容:

     :verbose imap <tab>
    

    要解决此问题,您可以:

    1. 安装我的叉子
    2. 升级到更新的 snipmate fork,例如garbase/vim-snipmate

    有关其他详细信息,请参见#74

于 2013-07-11T20:02:36.630 回答
0

我想我找到了问题,它是 'ervandew/supertab' 包,删除它后,我能够正常使用 vim。

于 2013-07-11T18:50:21.993 回答