Что: e64b581865b0f78c78824285fa5e752b989d85dc
Когда: 2016-08-12 23:13:03+03:00
Темы: perl python tip vim
Помощник в вставке import-ов в Python коде Написал небольшого помощника для вставки import-ов в Python коде. Например из pyasn1 библиотеки приходится часто импортировать encode/decode функции, ObjectIdentifier объекты. Запоминать, тем более набирать, длинные "from pyasn1.codec.der.encoder import encode # type: ignore" не хочется в принципе. Часто делается grep/git grep с поиском используемого import и его copy-paste в код. Теперь можно просто набрать encode, нажать <F3> и в виде меню completion он покажет все найденные "from .* encode" строчки. function! ImportCompl() normal diw let output = system('git grep "from .* ' . @" . '" -- "**/*.py" | perl -e "while(<>){s/^.*:\d+://; \$a{\$_}++}; print reverse sort keys %a"') call complete(col('.'), split(output, "\n")) return '' endfunction autocmd FileType python inoremap <F3> <C-R>=ImportCompl()<CR> Выбор git grep вместо grep из-за скорости работы (не хочется чтобы было 100мс или больше времени ожидания результата поиска). Выхлоп git grep можно обработать и внутри vimscript, но это сильно больше кода, хотя и экономия целого процесса. Perl вместо sed+uniq+sort+whatever из-за скорости и экономии процессов.
Сгенерирован: SGBlog 0.34.0