Используйте блок. GetTypes () - это получит Вас набор всех типов, и затем можно получить свойство Namespace для каждого из них.
Тогда я предполагаю, что можно просто проверить, что все типы имеют то же значение Пространства имен и используют это значение. Иначе добавьте некоторую другую логику для обнаружения что пространство имен считать основным.
Из блога chromatic (немного адаптировано, чтобы иметь возможность использовать одно и то же отображение во всех режимах).
vmap ,pt :!perltidy<CR>
nmap ,pt :%! perltidy<CR>
hit , pt
в нормальном режиме для очистки всего файла или в визуальном режиме для очистки выделения. Вы также можете добавить:
imap ,pt <ESC>:%! perltidy<CR>
Но использовать команды из режима ввода не рекомендуется.
" Create a command :Tidy to invoke perltidy.
" By default it operates on the whole file, but you can give it a
" range or visual range as well if you know what you're doing.
command -range=% -nargs=* Tidy <line1>,<line2>!
\perltidy -your -preferred -default -options <args>
Вот пара моих настроек .vimrc. Возможно, они не относятся к Perl, но я не смог бы без них работать:
set nocompatible " Use Vim defaults (much better!) "
set bs=2 " Allow backspacing over everything in insert mode "
set ai " Always set auto-indenting on "
set showmatch " show matching brackets "
" for quick scripts, just open a new buffer and type '_perls' "
iab _perls #!/usr/bin/perl<CR><BS><CR>use strict;<CR>use warnings;<CR>
.vimrc:
" Allow :make to run 'perl -c' on the current buffer, jumping to
" errors as appropriate
" My copy of vimparse: http://irc.peeron.com/~zigdon/misc/vimparse.pl
set makeprg=$HOME/bin/vimparse.pl\ -c\ %\ $*
" point at wherever you keep the output of pltags.pl, allowing use of ^-]
" to jump to function definitions.
set tags+=/path/to/tags
См. Также perl-support.vim (Perl IDE для Vim / gVim). Поставляется с предложениями по настройке Vim (.vimrc), gVim (.gvimrc), ctags, perltidy и Devel: SmallProf помимо многих других.
Вот интересный модуль, который я нашел на выходных: App :: EditorTools :: Vim
. Его наиболее интересной особенностью является способность переименовывать лексические переменные. К сожалению, мои тесты показали, что он, похоже, еще не готов для любого производственного использования, но, похоже, за ним стоит следить.
Лучшие практики Perl содержат приложение о конфигурациях редактора . vim - первый редактор в списке.
Энди Лестер и другие поддерживают официальные файлы поддержки Perl, Perl 6 и Pod для Vim на Github: https://github.com/vim-perl/vim-perl
У меня 2.
Первый, который я знаю, я взял его часть от кого-то другого, но не могу вспомнить, кто. Извините, неизвестный человек. Вот как я заставил автозавершение "C ^ N" работать с Perl. Вот мои команды .vimrc.
" to use CTRL+N with modules for autocomplete "
set iskeyword+=:
set complete+=k~/.vim_extras/installed_modules.dat
Затем я настроил cron для создания файла installed_modules.dat. Моя предназначена для моей системы мандривы. Отрегулируйте соответственно.
locate *.pm | grep "perl5" | sed -e "s/\/usr\/lib\/perl5\///" | sed -e "s/5.8.8\///" | sed -e "s/5.8.7\///" | sed -e "s/vendor_perl\///" | sed -e "s/site_perl\///" | sed -e "s/x86_64-linux\///" | sed -e "s/\//::/g" | sed -e "s/\.pm//" >/home/jeremy/.vim_extras/installed_modules.dat
Второй позволяет мне использовать gf в Perl. Gf - это ярлык для других файлов. просто поместите курсор на файл и введите gf, и он откроет этот файл.
" To use gf with perl "
set path+=$PWD/**,
set path +=/usr/lib/perl5/*,
set path+=/CompanyCode/*, " directory containing work code "
autocmd BufRead *.p? set include=^use
autocmd BufRead *.pl set includeexpr=substitute(v:fname,'\\(.*\\)','\\1.pm','i')