Как я могу включить CamelCase Vim Search - PullRequest
19 голосов
/ 30 декабря 2011

Существует ли плагин, сценарий или функция vim, которые позволяют расширять поиск в vim, чтобы соответствовать словам, написанным на верблюде, когда я последовательно набираю его заглавные буквы?

Вот пример для уточнения:

Допустим, я ищу WordInQuestion.

Я бы хотел набрать /wiq, чтобы найти его.

В качестве дополнительного бонуса было бы неплохо, если бы я мог найти getWordInQuestion, набрав /gwiq, что означает, что первая буква слова, которое я ищу, может быть строчной.

Ответы [ 2 ]

13 голосов
/ 30 декабря 2011

Описанная функциональность может быть легко реализована с помощью скрипта Vim.Давайте рассмотрим следующие пользовательские отображения.

nnoremap <expr> <leader>/ SearchCamelCase('/')
nnoremap <expr> <leader>? SearchCamelCase('?')
function! SearchCamelCase(dir)
    call inputsave()
    let ab = input(a:dir)
    call inputrestore()
    let l = filter(split(toupper(ab), '\zs'), 'v:val =~ "\\w"')
    if len(l) > 0
        let l[0] = '[' . l[0] . tolower(l[0]) . ']'
    end
    let @/ = '\C\<' . join(map(l, 'v:val . "[0-9a-z_]*"'), '') . '\>'
    return a:dir . "\r"
endfunction
0 голосов
/ 19 января 2012

Есть хороший плагин, который называется нечеткий искатель, который может быть полезен.

http://www.vim.org/scripts/script.php?script_id=1984

FuzzyFinder предоставляет удобные способы быстрого достижения буфер / файл / команда / закладка / тег, который вы хотите. FuzzyFinder ищет с нечеткий / частичный образец, такой как случай верблюда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...