Przejdź do treści

2010

vim snippetsemu i liquibase

W ostatnim wpisie pisałem o snippetsEmu dla vim'a, a dziś załączam xml_snippets.vim, których używam przy pracy z liquibase.

Liquibase to całkiem miłe narzędzie napisane w Javie do śledzenia, zarządzania i wprowadzania zmian w bazach danych. Zmiany opisuje się w pliku (plikach) xml i wpisywanie oraz pamiętanie tej składni można sobie uprościć przy pomocy vim'a i snippetów.

Snippet umieszczamy razem z pozostałymi, najczęściej w .vim/after/ftplugin/.

Najprościej zacząć otwierając np. migration.xml, wpisując lhelp i wcisnąć TAB. Otrzymamy małą pomoc i możemy zaczynać wpisywać kolejną migrację :)

best vim plugins

Dziś robiłem porządki w ~/.vim/ . Aktualizacje do nowych wersji pluginów, wyrzucanie nieużywanych, porządki w ~/.vimrc. W trakcie tej pracy powstała lista pluginów, dzięki którym miło mi się pracuje

vimball

Plugin zajmujący się pluginami dostarczanymi w paczkach .vba i pozwalający też takie paczki tworzyć, w praktyce potrzeby mi by instalować paczki .vba

snippetsEmu

Emuluje zachowanie snippetów z TextMate. Na przykład w pliku sometest.py wpisujesz 'for<tab>', uzupełniasz brakujące miejsca poruszając się klawiszem <tab> i otrzymujesz pełną pętle. Inne użyteczne snippety dla pythona to:

  • prop - property
  • get - def get_..
  • set - def set_..
  • def - def ..
  • cm - classmethod
  • cl - class
  • ifn, ifmain, sb, sbu, sbl1, trye, tryf, tryef, unittest

Domyślnie dostarczone są 32 zestawy snippetów dla wielu języków programowania, opisu oraz frameworków (django, rails, symfony)

neocomplcache

System tzw 'dopełniania' (podpowiadania) i to właśnie robi. Dopełnia nazwy metod, funkcji, atrybuty html, nazwy plików, itp. Trzeba po prostu zobaczyć i używać.

project

Bardzo prosty i skuteczny system pozwalający w bocznym oknie przeglądać wybrane lub wszystkie pliki z jednego lub wielu projektów. Każdy projekt ma zdefiniowany katalog, dzięki czemu otwarcie pliku z projektu (wciskamy 'enter' bedąc 'nad' plikiem) nastąpi równocześnie z przejściem do katalogu projektu. W ten sposób pliki projektu jak np 'tags' (ctags) zostaną poprawnie wczytane.

simple pairs

Proste dopełnianie dla ", ', {, (, [ . Wpisanie znaku otwierającego powoduje automatyczne dopisanie znaku zamykającego. W przypadku {, (, [ gdy sami wpiszemy znak zamykający, nie zostanie on zdublowany. Kursor po prostu przesunie się dalej. Dla ", ' zostanie jednak stworzona kolejna para. Krótkie i skuteczne.

vcscommand

Plugin pozwalający wykonywać komendy dla CVS, SVN, SVK, git, bzr, and hg przy pomocy vim'a. Jeden zestaw komend bez względy na system kontroli wersji.

Niewiele tego, ale te pluginy, git (post/pre hooki), bash + zestaw skryptów wystarcza mi do pracy :)

git php syntax check pre-commit

Załączam używany przeze mnie i sprawdzający się pre-commit dla git'a sprawdzający commitowane pliki .php.

Przy wykonaniu commit w repozytorium skrypt dla każdego commitowanego pliku '.php' wykonuje 'php -l' w pętli, aż otrzyma odpowiedź, że składnia jest ok lub nie ok. Przypadku wystąpienia błędy przerywa commit. Sam skrypt napisany jest w python'ie

Dlaczego w pętli? Dlatego, że 'php -l' losowo się urywa zwracając SIGFAULT i należy wtedy powtórzyć próbę z '-l'

Plik do pobrania:

devhelp + django 1.1

Ostatnio biegałem z lapkiem po centrum handlowym i łapałem wifi, żeby spojrzeć do dokumentacji django. I tylko się nabiegałem :).

Aby drugi raz pracować nie biegać w domu szybko podłączyłem dokumentację django do devhelp i tak na szybko procedura:

apt-get install devhelp

mkdir -p ~/bin; cd ~/bin
wget http://htmlhelp.googlecode.com/svn/trunk/misc/devhelp-install
chmod +x devhelp-install

cd ~/; wget http://onjin.net/files/django1.1-doc.tgz 
/bin/devhelp-install ./django1.1-doc.tgz

Teraz wystarczy uruchomić devhelp'a i cieszyć się offline :)

django1.1-doc jest ściągnięte z .chm i potraktowana hhconvert.py do formatu devhelp'a)