Я впервые пытаюсь использовать snipmate с VIm 7.3 в ubuntu 12.04.
Моя .vimrc
конфигурация:
" kill vi compatibility
set nocompatible " be iMproved
" -------------------------------------
" ---------snipmate--------------------
" -------------------------------------
Bundle "MarcWeber/vim-addon-mw-utils"
Bundle "tomtom/tlib_vim"
Bundle "honza/vim-snippets"
Bundle "garbas/vim-snipmate"
" -------------------------------------
filetype plugin on
Я считаю, что это все, что я хочу, за которым следует :BundleInstall
.
Древовидная структура моего .vim/bundle
такова
prayag@prayag:~$ tree -d .vim/bundle/
.vim/bundle/
|-- vim-colors-solarized
| |-- autoload
| |-- bitmaps
| |-- colors
| `-- doc
|-- vim-snipmate
| |-- after
| | `-- plugin
| |-- autoload
| |-- doc
| |-- ftplugin
| |-- plugin
| `-- syntax
|-- vim-snippets
| |-- UltiSnips
| |-- autoload
| `-- snippets
| |-- coffee
| `-- javascript
`-- vundle
|-- after
| |-- ftplugin
| `-- plugin
|-- autoload
| `-- vundle
|-- doc
|-- ftplugin
|-- plugin
|-- syntax
`-- test
`-- files
139 directories
НО, когда я пробую некоторый код Java для тестирования фрагмента main
,
$ vi App.java
main
После нажатия <TAB>
выдает следующий результат/ошибку
main<Plug>snipMateNextOrTrigger
:verbose imap <Plug>snipMateNextOrTrigger
дает мне
No mapping found
с разделом finish
, прокомментированным в plugin/snipMate.vim
, :verbose imap <Plug>snipMateNextOrTrigger
дает мне следующую информацию,
i <Plug>snipMateNextOrTrigger * <C-R>=snipMate#TriggerSnippet()<CR>
Last set from ~/.vim/bundle/vim-snipmate/plugin/snipMate.vim
и При нажатии <TAB>
Error detected while processing /home/prayag/.vim/bundle/vundle/autoload/snipMate.vim:
line 15:
E122: Function <SNR>84_RemoveSnippet already exists, add ! to replace it
Тот же результат/ошибка, которую я получаю со следующей конфигурацией в .vimrc
,
:imap <C-J> <Plug>snipMateNextOrTrigger
:smap <C-J> <Plug>snipMateNextOrTrigger
Та же конфигурация отлично работала на другом компьютере с ubuntu 13.04.
Я должно быть делаю что-то не так, но не мог понять это.
:verbose map <TAB>
и:verbose set cpo?
? Отметьте:version
для версии ‹size›, где ‹size› — это один из вариантов Tiny, Small, Big, Huge (возможно, я что-то упускаю). - person benjifisher   schedule 05.03.2014:verbose map <TAB>
и т. д. - person prayagupd   schedule 06.03.2014:imap
вместо:map
. Вероятно, он покажетi <Tab> <Plug>snipMateNextOrTrigger
. А как насчет:verbose imap <Plug>snipMateNextOrTrigger
? Удивительно, что одна и та же конфигурация ведет себя по-разному на другой машине. У вас одна и та же версия snipMate на обоих? Если нет, возможно, один из них глючит. - person benjifisher   schedule 06.03.2014:verbose imap <Plug>snipMateNextOrTrigger
дает мнеNo mapping found
- person prayagupd   schedule 07.03.2014inoremap <silent> <Plug>snipMateNextOrTrigger <C-R>=snipMate#TriggerSnippet()<CR>
. Либо у вас нет этого файла, либо отсутствует эта строка, либо он не:source
d при запуске vim. Или, может быть, переменнаяloaded_snips
определена где-то еще. Посмотрите на файл, отметьте:scriptnames
сразу после запуска vim и найдите load_snips в других ваших файлах запуска. Я предполагаю, что есть и другие возможности, например:imapclear
, но это маловероятно. - person benjifisher   schedule 07.03.2014:scriptnames
дает мне~/.vim/bundle/vim-snipmate/after/plugin/snipMate.vim
загрузить. К сожалению, это не соответствует github.com/garbas. /vim-snipmate/blob/master/plugin/snipMate.vim - person prayagupd   schedule 10.03.2014after/plugin/
иplugin/
(оба относительноmaster/
в URL GitHub и относительно~/.vim/bundle/vim-snipmate/
в вашей установке). Версия «после» сопоставляет<Tab>
с чем-то, начинающимся с<Plug>
, а версия без «после» сопоставляет это с чем-то другим; вторая карта, кажется, отсутствует. - person benjifisher   schedule 10.03.2014~/.vim/bundle/vim-snipmate/plugin/snipMate.vim
есть файлvim
, похожий на github. com/garbas/vim-snipmate/blob/master/plugin/snipMate.vim со строкойinoremap <silent> <Plug>snipMateNextOrTrigger <C-R>=snipMate#TriggerSnippet()<CR>
.But ЗДЕСЬ мойafter/plugin/snipMate.vim
- person prayagupd   schedule 11.03.2014after/plugin/
, а вы? Я дал несколько вещей для проверки 4 комментария назад: теперь, когда вы знаете, что у вас есть нужный файл в каталогеplugin/
, убедитесь, что он получен из:scriptnames
. Если это так, то либоloaded_snips
определено где-то еще (это легко проверить, закомментировав строкуfinish
в плагине), либо сопоставление будет удалено позже. - person benjifisher   schedule 11.03.2014finish
в плагине закинулError detected while processing /home/prayag/.vim/bundle/vundle/autoload/snipMate.vim
. Я удалил этот файл вместе сvim-snipmate
и переустановил. Работает нормально. Пожалуйста, оставьте свои комментарии в качестве ответа. \,,/ - person prayagupd   schedule 12.03.2014<tab>
должен был хорошо работать на моем Mac. - person llinfeng   schedule 22.03.2016