gpt4 book ai didi

vim - 让 Vimwiki 与 SnipMate(vim 插件)一起工作

转载 作者:行者123 更新时间:2023-12-01 07:42:20 25 4
gpt4 key购买 nike

我的问题是当我在 vimwiki 文件中时,SnipMate 的 <Tab> 完成不起作用。我正在通过在插入模式下键入 APACHE<Tab> 进行测试,但是我没有像在 .vimrc 中那样得到代码片段。

即使 i_<Tab> 在 vi​​mwikie 文件中不起作用,i_<C-R><Tab> 也可以。我得到一个可用片段列表。奇怪的。

为了让它变得陌生(好吧,至少对我来说),这是 vimwiki 文件中 :imap 的部分输出:

i  <Tab>       * <C-G>u<C-R>=snipMate#TriggerSnippet()<CR>
i <C-R><Tab> * <C-R>=snipMate#ShowAvailableSnips()<CR>

我认为这些是正确的,并且在 <Tab> 完成工作的其他文件中,映射是相同的。

哦,如果您想建议按照 http://code.google.com/p/vimwiki/wiki/ChangeLog 中的建议将 let g:vimwiki_table_auto_fmt = 0 放入我的 .vimrc 中,我试过了,但它不能解决我的问题。这是我在搜索中找到的唯一建议,所以这就是我来这里的原因。

我不知道你想要多少我的 .vimrc,所以我只想给你我认为相关的代码,以保持这个问题的简短:
" Vundle: The plugin manager for vim.                                        
set runtimepath+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
" SnipMate: TextMate snippets for vim.
Bundle "MarcWeber/vim-addon-mw-utils"
Bundle "tomtom/tlib_vim"
Bundle "honza/snipmate-snippets"
Bundle "garbas/vim-snipmate"
" Vimwiki: A personal wiki for vim.
Bundle 'vim-scripts/vimwiki'
let g:vimwiki_hl_headers = 1
let g:vimwiki_hl_cb_checked = 1
let g:vimwiki_folding = 1
let g:vimwiki_fold_lists = 1
let s:vimwiki = {}
let s:vimwiki.path = '~/Vimwiki/wiki'
let s:vimwiki.path_html = '~/Vimwiki/html'
let s:vimwiki.ext = '.md'
let s:vimwiki.syntax = 'markdown'
let s:vimwiki.maxhi = 1
let s:vimwiki.diary_rel_path = 'Journal/'
let s:vimwiki.diary_index = 'index'
let s:vimwiki.diary_header = 'Journal'
let s:vimwiki.diary_sort = 'asc'
let g:vimwiki_list = [s:vimwiki]

谢谢

编辑:

我不知道为什么我在写上面的时候忘记了这一点。上面 :imap 的输出是不完整的。它还显示:
i  <Tab>       *@vimwiki#tbl#kbd_tab()

无论 g:vimwiki_table_auto_fmt 的值如何。这可能是我的问题的根源..如果是这样,我想以某种方式从 .vimrc 中摆脱它。

最佳答案

@ 输出中的 :imap 显示 Vimwiki 定义了一个缓冲区本地 <Tab> 映射,该映射覆盖了 snipMate 的全局映射。一种

:iunmap <buffer> <Tab>

应该解决这个问题。您可以将该命令放入 ~/.vim/after/ftplugin/vimwiki.vim 以使其永久化。但显然 Vimwiki 允许自定义:
" Table mappings
if g:vimwiki_table_mappings
inoremap <expr> <buffer> <Tab> vimwiki#tbl#kbd_tab()
inoremap <expr> <buffer> <S-Tab> vimwiki#tbl#kbd_shift_tab()
endif

因此,您的 .vimrc 中的 :let g:vimwiki_table_mappings = 0 也应该可以工作。

关于vim - 让 Vimwiki 与 SnipMate(vim 插件)一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12033273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com