Показаны сообщения с ярлыком vim. Показать все сообщения
Показаны сообщения с ярлыком vim. Показать все сообщения

суббота, 5 апреля 2008 г.

за vimper'ию !

Привет:)

я опять про софт, недавно на одном форуме наткнулся на упоминание аддона для безартельнативного пока браузера firefox под названием vimperator. Такого я не ожидал:) Полное погружение, минимализм и контроль с клавиатуры например новая вкладка октывается ... :tabnew www.ya.ru, а закладку можно добавить :bmark вобщем я доконца его не изучил еще, но прусь:)

Версию для ff3 надо брать из svn, инструкции на сайте.

Кстати за это время я уходил на эклипс, но вернулся, ибо когда число строк кода достигло нескольки тыщ работать стало очень трудно: слетает подсветка, тормоза и прочие мелкие гадости и пока отлично обхожусь вимом.

А в чем пишете и отлаживаете код вы ?

четверг, 8 ноября 2007 г.

vim: сниплеты своими руками

многие интересующиеся видели в навороченных иде, редакторах крутых программистов или по телевизору как при наборе кода автоматически выстраиваютя целые конструкции. Т.е. набирает программист if, а редактор ему в ответ:
if ( {statement} {
{code} 
}

вобщем, сразу всю конструкцию рисует и курсор заболитво в ключевые точки подставляет. Я давно себе такое хотел, но встроенный вимовский аббревиатор вроде не позволяет на лету подставлять эти самые куски кода в нужные места. Посмотрел я в репозитории решения вроде tSkeletons и плюнул на них:) ибо совсем непонятный огород нагорожен, но попути освоил то, что помогло сделать собственный механизм подобно рода, итак строчка вида:

добавленная в .vimrc позволи по нажатию клавиш Control+j перепрыгивать между встречающимся в коде <++> заменяя их на вводимый текст. Теперь надо создать хранилище наших сниплетов, на моей Portable версии это $VIMRUNTIME/abbrs/. В вашем unixподобии может быть ~/.vim/abbrs или чтоугодно. Создаем соотв каталог и в нем первый файлик, например, phpabr.vim. В него прописываем первый сниплет:

здесь ffunc это выражение которое будет заменяться конструкцией (т.е. подстановка будет происходить после того как я наберу ffunc и нажму пробел) и после пробела собственно конструкция, где <++> это точки в которые я буду вставлять свой код, перемещаясь между ними сочетанием Control+j. Теперь надо сделать, чтобы этот и другие в будущем сниплеты подгружались только когда я редактирую php файлы. Это делается опять же строкой в .vimrc:

 autocmd FileType php source $VIMRUNTIME/abbrs/phpab.vim

т.е. autocmd FileType {тип файла} source {путь до файла со сниплетами}

Вот собственно и все, осталось наделать сниплетов под нужные типы файлов и радоваться возможностям любимого редактора;) Следует задавать оригинальные сочетания для вставки конструкций, чтобы они не вворачивались где не попадя (вроде как с этим можно бороться, но пока это в разработке;).

p.s. Еще я добавил возврат в нормальный режим по сочетаниям Control+i, Control+a в дополнению к Esc, по-моему довольно логично

понедельник, 5 ноября 2007 г.

опрятный vim

Нет пророка в своем отечетстве, нет у программистов идеального редактора общего назначения (быстро превращающегося в среду обработки и обратно). У каждого свои помидоры. Одни куцые другие монструозные и проч. Не идеален и vim, но так уж получилось, что ни в полуживом юниксе находящемся в другой точке земного шарика, ни в чужой венде-калеке, в том, чтобы с минимальным оверхедом сесеть и начать работать конкурентов у него нет. По крайней мере для меня. Вот и пользуемся:)

У вима есть одна особенность. На время редаткрирования, он создает временную копию файла с которой работает, а потом еще и бэкап файла. Эта фича не раз спасала мне нервы и время и ругаться я на нее не буду. Но иногда уж очень надоедает вычищаять проекты от этих резервных копий~. Конечно можно одной строчкой (но движений итак делаешь кучу:) Поэтому я наконец быстренько выудил рецептик заставляющий vim складывать весь мусор в один специальный каталог. Поскольку источник уже закрыл свой блог я продублирую информацию выуженную из кэша яндекса у себя, даже не столько с целью сохранить (аналогичных решений уверен море), а дабы обратить внимание. Итак заветные строчки для ~/.vimrc:

if has("win32")
    set backupdir=$VIMRUNTIME\backup
    set directory=$VIMRUNTIME\backup
elseif has("win32unix")
    set backupdir=$VIMRUNTIME/backup
    set directory=$VIMRUNTIME/backup
else
    set backupdir=~/backup
    set directory=~/backup
endif

в комментариях sakhnik предложил еще довольно изящное решение - использовать системную переменную:

 let &backupdir=$TEMP

let &directory=$TEMP

но мне как-то комфортнее знать куда все посыпется