2013-04-08 2 views
-2

Мои .vimrc содержит:Почему табуляция (wildmenu) не работает?

set wildmenu     " show list instead of just completing 
set wildmode=list:longest,full " command <Tab> completion, list matches, then longest common part, then all. 
set wildignore+=.cache,.gem,.ivy2,.extras.bash,.themes 
set wildignore+=.subversion,.subversion_IDEA 
set wildignore+=.Trash 
set wildignore+=Desktop,Documents,Downloads 
set wildignore+=Library,Movies,Pictures 
set wildignore+=spf13vim2 
set wildignore+=.CFUserTextEncoding,.DS_Store 
set wildignore+=.bash_history,.extra.bash,.irb-history 
set wildignore+=.lesshst,.mysql_history,.pry_history 
set wildignore+=.reviewboard-cache,.rnd,.sbt.cache.lock 
set wildignore+=.scala_history,.sqlite_history,.viminfo 
set wildignore+=*.o,*.obj,.git,vendor/rails/**,vendor/gems/** 
set wildignore+=*.swp 

Вы можете найти мою полную vimrc here. Когда я редактирую файл в vim, нажатие tab создает пробелы, но без автозаполнения.

+0

Вы вводите в заблуждение завершение _insert-mode_ с помощью справки по завершению работы _command-line_ wildmenu. –

ответ

-2

Я не знаю, если это было необходимо, но закладки завершение работало после того, как я добавил это к моим .vimrc:

function! Smart_TabComplete() 
    let line = getline('.')       " current line 

    let substr = strpart(line, -1, col('.')+1)  " from the start of the current 
                " line to one character right 
                " of the cursor 
    let substr = matchstr(substr, "[^ \t]*$")  " word till cursor 
    if (strlen(substr)==0)       " nothing to match on empty string 
    return "\<tab>" 
    endif 
    let has_period = match(substr, '\.') != -1  " position of period, if any 
    let has_slash = match(substr, '\/') != -1  " position of slash, if any 
    if (!has_period && !has_slash) 
    return "\<C-X>\<C-P>"       " existing text matching 
    elseif (has_slash) 
    return "\<C-X>\<C-F>"       " file matching 
    else 
    return "\<C-X>\<C-O>"       " plugin matching 
    endif 
endfunction 

inoremap <tab> <c-r>=Smart_TabComplete()<CR> 
5

Что?

wildmenu является меню, которое появляется при попытке табуляции завершения в командной строке:

enter image description here

Это полностью несвязанный для вставки завершения режима и настроек в вашем вопросе будет никогда помогите вам заполнить что-либо во время редактирования файла.

Факты лучше, чем спекуляции: вы должны привыкнуть читать внутреннюю документацию Vim. Сам первое предложение :h 'wildmenu' бы рассеиваться ваше замешательство, если бы вы нашли время, чтобы прочитать его:

When 'wildmenu' is on, command-line completion operates in an enhanced mode. 

Слепого копирование настройки из случайных источников интернета не добьются. Прочтите :help.

+1

Это могло бы сделать работу без педантичного тона. – ereOn

Смежные вопросы