# [SOLVED]Jakie środowisko programistyczne?

## Pryka

Witam, poszukuje jakiegoś fajnego środowiska programistycznego, możecie coś polecić? Interesowała by mnie mnogość w obsługiwaniu wszelakich języków.Last edited by Pryka on Wed Mar 16, 2011 10:00 am; edited 1 time in total

----------

## svL

 *Quote:*   

> Interesowała by mnie mnogość w obsługiwaniu wszelakich języków.

 

eclipse, wtyczek do wyboru do koloru http://marketplace.eclipse.org/

----------

## sherszen

Jeszcze netbeans jest. Co  prawda ten i powyższy są dedykowane dla javy, ale istnieje możliwość rozszerzenia o dodatkowe wtyczki.

----------

## Ahenobarbi

Oczywiście Vim  :Wink: 

----------

## calie981

Witam,

Czy któryś z wymienionych działa pod Ubuntu 10.10?

----------

## soban_

Wszystkie?

----------

## Pryka

A tak w ogóle to [SOLVED]  :Smile:  wyleciało mi z głowy.

Eclipse + gedit fajnie się sprawuje

----------

## soban_

Rowniez uzywam eclipsa (-:

----------

## josel

a ja początkujący, domorosły programista zacząłem i trwam w geany.

Pozdrawiam,

----------

## Garrappachc

Ale Geany nie jest... IDE... To tylko taka obudowa dla GCC, nic więcej. Może teraz Ci to wystarczy, z czasem jednak będziesz potrzebował czegoś więcej. 

Vim wbrew pozorom nie jest tak zły, trzeba go tylko umieć skonfigurować, a to jest już trochę czasu  :Smile:  Ja jednak siedzę na Netbeansie.

----------

## soban_

 *Garrappachc wrote:*   

> Vim wbrew pozorom nie jest tak zły, trzeba go tylko umieć skonfigurować, a to jest już trochę czasu :)

 Z tym sie zgodze. Na youtubie znalazlem pare niesamowitych konfiguracji vima, jednak sam zbyt mocno przyzwyczailem sie do nano - ktore mozna tez fajnie skonfigurowac np wywalic dolny pasek, zrobic kolorowanie skladni, backupowanie plikow zanim zostana zapisane itp.

----------

## Garrappachc

A co do vima - czy ktoś wie może czy można go skonfigurować jakoś do pracy z większymi projektami? Większymi w sensie zawierającymi kilkanaście do kilkudziesięciu plików źródłowych.

----------

## Crenshaw

 *Garrappachc wrote:*   

> A co do vima - czy ktoś wie może czy można go skonfigurować jakoś do pracy z większymi projektami? Większymi w sensie zawierającymi kilkanaście do kilkudziesięciu plików źródłowych.

 

A co ma robic? Automatycznie skakac po kodzie? Otwierac wszystkie pliki na raz?

Byc moze szukasz czegos w stylu:

vim + ctags

cscope

albo powinienes przeczytac jak sie uzywa vsplit i taby

----------

## aqu

Do vim'a jest wtyczka project http://www.vim.org/scripts/script.php?script_id=69

Pomaga ona w okiełznaniu dużych projektów programistycznych.

Jest też ciekawy wpis na temat konfiguracji vim do projektów c/c++

http://www.thegeekstuff.com/2009/01/tutorial-make-vim-as-your-cc-ide-using-cvim-plugin/

----------

## gryf

 *Garrappachc wrote:*   

> A co do vima - czy ktoś wie może czy można go skonfigurować jakoś do pracy z większymi projektami? Większymi w sensie zawierającymi kilkanaście do kilkudziesięciu plików źródłowych.

 

Można. VIma używam do pracy nad projektem, który ma ponad 1,5 tysiąca plików pythonowych, tyleż plików C++, i ponad 1000 innych plików źródłowych. Głównymi narzędziami pomocniczymi przy tylu plikach jest ctags, komenda :lcd, plugin FuzzyFinder i Cygwin (jako że development prowadzony jest na Windowsie). Reszta leży w umiejętnym korzystaniu z narzędzia jakim jest VIm.

----------

## sebas86

 *gryf wrote:*   

> Można. VIma używam do pracy nad projektem, który ma ponad 1,5 tysiąca plików pythonowych, tyleż plików C++, i ponad 1000 innych plików źródłowych. Głównymi narzędziami pomocniczymi przy tylu plikach jest ctags, komenda :lcd, plugin FuzzyFinder i Cygwin (jako że development prowadzony jest na Windowsie). Reszta leży w umiejętnym korzystaniu z narzędzia jakim jest VIm.

  Nieźle. A jak sobie radzicie z refactoringiem? Komunikaty kompilacji sami interpretujecie czy macie jakieś dodatkowe wtyczki, żeby chociaż wskazało miejsce bez żmudnego przeglądania plików?

----------

## Garrappachc

Dobra. A teraz mam pytanko. Powiedzcie mi, czy jest jakieś narzędzie do śledzenia pamięci używanej przez program? Chodzi o to, że jak mam program z całą masą wskaźników, to czy na pewno wszystko dobrze potem czyszczę. Bo mam wrażenie, że im więcej razy odpalam taki program, tym więcej pamięci jest zajmowane i tym mniej system jest potem responsywny. Staram się oczywiście wszystko porządkować, pisać dobre destruktory, etc, etc, ale wiadomo, że coś może się dziać "mimochodem".

----------

## aqu

http://valgrind.org/

----------

## lsdudi

 *sebas86 wrote:*   

>  *gryf wrote:*   Można. VIma używam do pracy nad projektem, który ma ponad 1,5 tysiąca plików pythonowych, tyleż plików C++, i ponad 1000 innych plików źródłowych. Głównymi narzędziami pomocniczymi przy tylu plikach jest ctags, komenda :lcd, plugin FuzzyFinder i Cygwin (jako że development prowadzony jest na Windowsie). Reszta leży w umiejętnym korzystaniu z narzędzia jakim jest VIm.  Nieźle. A jak sobie radzicie z refactoringiem? Komunikaty kompilacji sami interpretujecie czy macie jakieś dodatkowe wtyczki, żeby chociaż wskazało miejsce bez żmudnego przeglądania plików?

 

Dużo piszesz czy rzucasz tylko nazwami poznanymi na wykładzie. Jeśli to nie jest JAVA to faktycznie można się obejść bez kobyły pokroju eclipse (w moim przypadku  python, C/C++ ). Komunikat błędu podczas kompilacji/runtime'u zwykle podają plik i linijkę. To że jest to owrapowane w skok do tej linijki w edytorze to tylko kosmetyka.

Swego czasu słyszałem że  w redmond instaluje sie cygwina tylko po to aby w vimie można było kod pisać  :Smile:  . Ale na ile to prawda to nie wiem.

----------

## sebas86

 *lsdudi wrote:*   

> Dużo piszesz czy rzucasz tylko nazwami poznanymi na wykładzie.

  Nie piszę dużo (tyle co by zarobić na chleb, czasami coś na uczelnie, a czasami dla satysfakcji), ale lubię korzystać z narzędzi ułatwiających życie - jestem wygodnym i nieco leniwym człowiekiem. I zastanawia mnie w jaki sposób ludzie używają VIM-a, że jest im wygodnie (lub uważają, że tak jest). Dlatego też pytam. Co do zacytowanego pytania to nie wiem dla czego miałoby to być związane z nasłuchaniem się na wykładach - czy rzeczywiście ręczne przeglądanie kilkuset linii tego co wypluje GCC jest przyjemne, czy może zawsze robicie make | less i czy zastanawiacie się 10 razy lub debatujecie nad nazwą zmiennej lub podziałem na klasy danego kodu? Kosmetyką to się to wydaje jak masz 10 plików na krzyż i każdy ma jednoznacznie inną nazwę lub lista zawiera góra 10 problemów, które trzeba naprawić - a tak to jedziesz według tej listy, zamiast za każdym razem wracać do niej i szukać od nowa następnego elementu...

Co do ciekawostki o Redmound to z całą złośliwością mógłbym powiedzieć, że widać po jakości oprogramowania.  :Twisted Evil: 

PS. Korzystałbym z VIM-a ale nie umiem go porządnie skonfigurować pod swoje wymagania (używałbym go również dla tego, że ma wsparcie dla masy egzotycznych języków, ale na razie wolę skupić się na czymś innym i przeboleć aktualne braki Eclipse posiłkując się od czasu do czasu innym edytorem). Eclipse'a wystarczy ściągnąć i rozpakować.  :Wink: 

PPS. A CTAGS nie ma problemów wydajnościowych przy dużej bazie zindeksowanych plików? I czy przypadkiem nie trzeba ręcznie uaktualniać indeksów? Zdaje się, że nie obsługuje także podpowiedzi kontekstowych?

----------

## Garrappachc

@sebas86, trafiłeś w sedno. Takie same pytania ja tez sobie zadaję. W netbeansie mam taką ciekawą funkcję - jak nacisnę Ctrl i nazwę jakieś funkcji/zmiennej, która była zainicjalizowana w innym pliku, automatycznie przenosi mnie do tego pliku i pokazuje wszystkie szczegóły. Czy automatyczne generowanie pliku makefile, podkreślanie "nieznanych" zmiennych, etc etc. Jak to wszystko jest rozwiązane w vimie?

----------

## unK

 *Quote:*   

> Bo mam wrażenie, że im więcej razy odpalam taki program, tym więcej pamięci jest zajmowane i tym mniej system jest potem responsywny.

 

Jak wyłączasz program, to cała przypisana mu pamięć jest zwracana systemowi, więc taki efekt nie może mieć miejsca.

----------

## Garrappachc

 *unK wrote:*   

>  *Quote:*   Bo mam wrażenie, że im więcej razy odpalam taki program, tym więcej pamięci jest zajmowane i tym mniej system jest potem responsywny. 
> 
> Jak wyłączasz program, to cała przypisana mu pamięć jest zwracana systemowi, więc taki efekt nie może mieć miejsca.

 

To po co w takim razie operator delete? To nie java.

----------

## lsdudi

 *sebas86 wrote:*   

> Nie piszę dużo (tyle co by zarobić na chleb, czasami coś na uczelnie, a czasami dla satysfakcji), ale lubię korzystać z narzędzi ułatwiających życie - jestem wygodnym i nieco leniwym człowiekiem. I zastanawia mnie w jaki sposób ludzie używają VIM-a, że jest im wygodnie (lub uważają, że tak jest).

 

widocznie są bardziej leniwi od Ciebie

 *sebas86 wrote:*   

> Dlatego też pytam. Co do zacytowanego pytania to nie wiem dla czego miałoby to być związane z nasłuchaniem się na wykładach - czy rzeczywiście ręczne przeglądanie kilkuset linii tego co wypluje GCC jest przyjemne, czy może zawsze robicie make | less i czy zastanawiacie się 10 razy lub debatujecie nad nazwą zmiennej lub podziałem na klasy danego kodu? Kosmetyką to się to wydaje jak masz 10 plików na krzyż i każdy ma jednoznacznie inną nazwę lub lista zawiera góra 10 problemów, które trzeba naprawić - a tak to jedziesz według tej listy, zamiast za każdym razem wracać do niej i szukać od nowa następnego elementu...

 

To nie jest java gdzie wyjatek to 3 strony tekstu z ktorego nic tak naprawde nie wynika. Pierdu pierdu o 3 plikach na krzyż (kolega podał przykład z życia że plików jest do groma), jak sobie zrobiłes burdel w projekcie to nie jest wina żadnego narzędzia (tak po prawdzie przeczytaj sobie jakiegoś plepa na temat tego jak powinna wygladac funkcja/package) to o czym piszesz dla małegio projektu powinno być zastosowane i większym. Nie zastanawiałeś się nad tym że aby napisać parę linijek kodu musisz odpalić kobyłe która waży kilka GB w Ram. Czy to jest postęp czy uwstecznienie?

Robienie make |less mija sie z celem make > log.log 2>&1 jest sensowniejsze, o ile nie chcialo ci sie zrobić logowania/debug z prawdziwego zdarzenia.

 *sebas86 wrote:*   

> 
> 
> Co do ciekawostki o Redmound to z całą złośliwością mógłbym powiedzieć, że widać po jakości oprogramowania. 

 

Nie zrzucaj na programistów tego za co odpowiada zarząd/architekci/marketing itd. (sami programiści są jednymi z najlepszych ale od nich zależy tylko ich wycienek a nie całość)

----------

## lsdudi

 *Garrappachc wrote:*   

>  *unK wrote:*    *Quote:*   Bo mam wrażenie, że im więcej razy odpalam taki program, tym więcej pamięci jest zajmowane i tym mniej system jest potem responsywny. 
> 
> Jak wyłączasz program, to cała przypisana mu pamięć jest zwracana systemowi, więc taki efekt nie może mieć miejsca. 
> 
> To po co w takim razie operator delete? To nie java.

 

a jak chcesz usunąć cos czego nie ma ? Po zakończeniu (zamierzone/niezamierzone) sie programu pamiec wraca do systemu jako free. Delete pozawala na zwolnienie pamieci podczas działania programu.

----------

## Crenshaw

 *Garrappachc wrote:*   

> @sebas86, trafiłeś w sedno. Takie same pytania ja tez sobie zadaję. W netbeansie mam taką ciekawą funkcję - jak nacisnę Ctrl i nazwę jakieś funkcji/zmiennej, która była zainicjalizowana w innym pliku, automatycznie przenosi mnie do tego pliku i pokazuje wszystkie szczegóły. 

 

ctagsy z vim'em daja identyczna funkcjonalnosc (juz nie mowiac o cscope ktore umie duzo wiecej)

 *Quote:*   

> Czy automatyczne generowanie pliku makefile, podkreślanie "nieznanych" zmiennych, etc etc. Jak to wszystko jest rozwiązane w vimie?

 

Nie bardzo rozumiem o co chodzi z podkreslaniem "nieznanych" zmiennych  :Wink: 

A tak w ogole to:

http://vim.wikia.com/wiki/Omni_completion

chociaz nie chcialo mi sie tego nigdy skonfigurowac i uzywam "glupiego podpowiadania" (ctrl + p/ ctrl + n)

----------

## sebas86

 *lsdudi wrote:*   

> widocznie są bardziej leniwi od Ciebie

  A czy to, że są leniwi oznacza, że nauczyli się korzystać z VIM-a i nie chce im się uczyć czegoś innego (lepszego), czy VIM jest po prostu tak zarąbisty? Bo na razie piszesz/piszecie wymijająco...

 *lsdudi wrote:*   

> To nie jest java gdzie wyjatek to 3 strony tekstu z ktorego nic tak naprawde nie wynika. Pierdu pierdu o 3 plikach na krzyż (kolega podał przykład z życia że plików jest do groma), jak sobie zrobiłes burdel w projekcie to nie jest wina żadnego narzędzia (tak po prawdzie przeczytaj sobie jakiegoś plepa na temat tego jak powinna wygladac funkcja/package) to o czym piszesz dla małegio projektu powinno być zastosowane i większym. Nie zastanawiałeś się nad tym że aby napisać parę linijek kodu musisz odpalić kobyłe która waży kilka GB w Ram. Czy to jest postęp czy uwstecznienie?

  A co ma system logowania/debugowania wspólnego z kompilatorem? Ja mówiłem tylko o błędach, ostrzeżeniach, które kompilator wyrzuca - Eclipse w logowaniu z aplikacji wcale nie jest lepszy od zwykłej konsoli, fajniejsze jest jedynie połączenie z IDE debuggera (GDB, Valgrind). Eclipse śmiga mi aż miło na netbooku (Atom N550 1GB RAM, bez SWAP-a skoro już się czepiamy szczególików) i nie jest to jedyna zasobożerna aplikacja chodząca na tym komputerze. Pierdu pierdu o trzech plikach... a na ilu z tych plików pracuje na raz i czy pamięta zawartość i położenie każdego na pamięć? Poza tym nikt Ci nie karze odpalać specjalnego narzędzia do napisania kilku linijek kodu... chyba, że właśnie tutaj mówisz, że do mniejszych projektów lepiej zastosować coś innego od Eclipse (ale chyba pisałem, że posiłkuję się także innym edytorem tekstów?) czy może o tym, że VIM jest fajny bo jest uniwersalny przez brak jakiś specjalnie wyszukanych funkcji pomocniczych dedykowanych konkretnej platoformie/językowi - ale w sumie to ciężko mi teraz wyczuć o co Ci chodzi. I w sumie czy gdzieś jest napisane do jakiego języka ma to być IDE, ma być uniwersalnie ale też nie wiadomo jak bardzo... Jeśli autor tego wątku będzie chciał używać Javy, C++. PHP, Pythona to w Eclipsie powinien znaleźć wszystko czego mu trzeba bez poświęcania czasu na wbijanie na blachę komend i czytaniu kilometrowych poradników... a jeśli potrzebuje czegoś małego, szybkiego i prostego do projektów na zaliczenie przedmiotu, które będą miały do kilkudziesięciu plików to równie dobrze może użyć czegoś w stylu gedit, Geany, jedit, notepad++, scite... do wyboru do koloru i żaden z tych edytorów nie wymaga zupełnej zmiany przyzwyczajeń (jeśli ktoś jest przyzwyczajony do prostych edytorów tekstowych i w życiu nie miał z VIM-em do czynienia).

 *lsdudi wrote:*   

> Robienie make |less mija sie z celem make > log.log 2>&1 jest sensowniejsze, o ile nie chcialo ci sie zrobić logowania/debug z prawdziwego zdarzenia.

  Tak jak wyżej, pisałem o błędach i ostrzeżeniach rzucanych przez kompilator nie aplikację.

 *lsdudi wrote:*   

> Nie zrzucaj na programistów tego za co odpowiada zarząd/architekci/marketing itd. (sami programiści są jednymi z najlepszych ale od nich zależy tylko ich wycienek a nie całość)

  Nic nie zarzucam zauważ, że była to ironia.  :Wink: 

Krótko mówiąc możecie się skupić na zaletach VIM-a i wyłożyć jasno kawę na ławę dla czego warto? Sam mam w TODO wrzucone kilka stron pt. "Jak stworzyć z VIM-a kombajn do C/C++", ale mam w pamięci jeszcze wielką porażkę z Emacsem i szkoda mi czasu - dla regexpów w wyszukiwarce po buforach to się jednak nie przesiądę... chyba, że w pobliżu walnie jakaś bomba elektromagnetyczna i jakimś cudem VIM zostanie jedynym sensownym oprogramowaniem do edycji...  :Wink: 

Z mojej strony Eclipse to proste środowisko integrujące najpotrzebniejsze narzędzia (zaawansowana edycja kodu, kontekstowe podpowiedzi, podświetlanie składni, zintegrowany GDB, Valgrind, parsowanie komunikatów kompilatora, zarządzanie projektem, filtrowanie w projekcie tagów TODO, itp., możliwość skorzystania z dodatkowych wtyczek np. Subclipse, narzędzia do refactoringu i automatycznego formatowania kodu) i to wszystko w prekonfigurowanych paczkach pod konkretne języki, bez potrzeby poświęcania długiego czasu na naukę. Kobyła to to jest, ale na telefonie czy automacie do parzenia kawy tego przecież nie używam.  :Wink: 

----------

## lsdudi

Jest pewna zaleta vima którego widzę w ogóle nie bierzesz pod uwage:

-Nieodrywania rąk od klawiatury.

dodatkowo:

-Dostępu do narzędzi systemowych, prze shell (svn valgrind itp)

-Wbudowany sed oraz skoki do linii (wystarczy się nauczyć kilku podstawowych zastosowań poźniej samo poleci) regexpy to jedna z najmocniejszych stron vima

- skoki do blocków kodu (nawias otwarty/zamkniety, byc moze eclipse tez mam jakiegoś skróta)

-Wiele buforów (jak sie nauczysz to docenisz)

-autoformat  jest, ale zależy co przez to rozumiesz.

-zaznaczenia kolumnowe raz na ruski rok się przyda ale wtedy jest nieocenione 

-taby/splity/diff (to już wyższa szkoła jazdy)

Wszystko to i wiele wiecej dostępne po wciśnięciu  kilku znaków na klawiaturze.

Leniwość większości osób używających vima wynika z tego że zrobią to szybciej bez klikania/dotykania myszki. Co z tego że klikniecie oszczędzi ci wpisania 5 znaków skoro w ciagu tej 1 sekundy jestes w stanie wpisać ich osiem bez tracenia focusa. Łatwiej jest wpisać daną komendę bez patrzenia na ekran  niż strzelaniem myszką w ciemno.

----------

## soban_

@lsdudi Tutaj niestety nie popre Cie, zwlaszcza z tym "dynamicznym" budowaniem kodu. W eclipse mozesz to zrobic bardzo szybko, a wrecz wyklikac myszka (w doslownie kilka sekund) - bylem tego swiadkiem. Po co mam z palca budowac konstruktor, skoro w pare klikniec jest gotowy. To tylko przyklad - nie znam na tyle VIma, aby sugerowac cus na jego temat. Jednak uwazam tez, ze wszystko zalezy od osoby oraz co preferuje. Mnie jedno drazni w eclipsie przy czym Cie popre - ta krowka dosyc dlugo sie laduje, no ale za czesto (podczas parcy) nie odpalasz jej/jego... Najlepiej gdyby sie wypowiedziala osoba, ktora uzywa to i to na codzien tak btw http://i.imgur.com/usftZ.png ( : uwazam tez, ze przy VImie czlowiek moze rownie dobrze kodzic na kartce - co jest moim zdaniem zaleta. Wystarczy zapytac eclipsiarza z javy, jak wyglada klasa main na kartce (mowa o tych uzywajacych skrotow klawiszowych). Wlasnie, jak wyglada? d-: chyba "main" ctrl+spacja, a no i enter? Z drugiej strony mamy 7 klawiszy wcisnietych, a uzyskujemy 44 znaki (myszki nie musimy dotykac nawet):

```
public static void main(String[] args) {

   //<-tutaj licze jako tabulator, a nie jako spacje

}
```

Drugi prosty przyklad "syso" ctrl+spacja (bez entera nawet juz) 6 klawiszy i mamy 21 znakow:

```
System.out.println();
```

Jest tego cala masa, nie wiem jak w VImie sprawa wyglada. Warto tez zwrocic uwage na to, ze nie chodzi o to jak szybko sie kodzi, ale jak sie kodzi. Sami doskonale wiecie o czym mowie, skoro uzywanie Gentoo.

----------

## lsdudi

@soban_ Dlatego piszę do wszystkiego poza javą. (może jeszcze jakieś języki których nie znam ). Pisanie w javie bez narzędzia typu eclipse to masochizm. 

P.S.  O klikalnym programowaniu mam bardzo niskie zdanie.

----------

## Garrappachc

To nie kwestia skrótów klawiaturowych, bo dam sobie głowę uciąć, że te się da i w vimie ustawić. Chodzi o to, że na konfigurację i oswojenie vima trzeba mieć czas. Gdyby było w sieci jakieś how-to, które pokazałoby, jak przystosować vima do duzych projektów, pokazało masę fajnych wtyczek i podało kilka przydatnych skrótów klawiaturowych, migiem bym się przerzucił. Ale musiałem napisać kilka programów w Javie, zainstalowałem netbeansa i do widzenia - przyzwyczaiłem się. Jest na co narzekać, bo krowa to niesłychana, zdarza sie, że przymuli, ma kilka bugów, ale, bądź co bądź, jest wygodna.

----------

## soban_

@lsdudi, apropos tego PS -  to jesli ktos doskonale wie, co klikana rzecz robi to raz zaoszczedza czasu. Dwa zmniejsza szanse na zrobienie glupiej literowki. O ile dobrze pamietam to bylo pare minut i kilka kartek A4 kodu, wystarczylo odpowiednio skonfigurowac eclipsa pod siebie (pod ta osobe), glownie korzystala ze swojego kodu ktory byl przypisane pod odpowiednie skroty klawiszowe. Niskie zdanie tyz mam o tych co nie wiedza co to robi. Co do javy, to sam mam jej dosc - glownie przez uczelnie, to troche tak jakby ktos wmawial ze windows jest jedynym slusznym systemem operacyjnym. Dopiero na zawansowanych systemach operacyjnych pisalismy uzywajac Linuxa i C/C++ (no dobra na pierwszym roku tez - ale na pewno nie na takim poziomie) ale tak jak wspomnialem tutaj kodze uzywajac nano (podoba mi sie w nim prostota i wystarczy mi samo kolorowanie skladni), chetnie bym uzywal VIma - jesli mnie do niego przekonacie, w zasadzie to nawet przekonywac nie trzeba. Co do innych jezykow, to eclipsa tez mozna skonfigurowac pod takowe, sa wtyczki do tego.

@Garrappachc, to moze ktos bedzie na tyle dobry i jakies mini-how-to zbuduje dla VIma do programowania (-: z ktorego sam chetnie bym skorzystal. O ile takowe juz nie istnieje...

----------

## gryf

 *sebas86 wrote:*   

> Nieźle. A jak sobie radzicie z refactoringiem? Komunikaty kompilacji sami interpretujecie czy macie jakieś dodatkowe wtyczki, żeby chociaż wskazało miejsce bez żmudnego przeglądania plików?

 

Development głównie prowadzony jest po stronie Pythona. Tu się najwięcej dzieje. Refactoring przy dobrze popisanym kodzie jest banalny (jest grep w cygwinie, jest bicycle repair man, są unit testy, narzędzia do statycznej analizy kodu itd). Błędy wynikające z kompilacji są ładnie wrapowane na tzw bufor quickfix w vimie. Zresztą, sam pisałem parę narzędzi parsujących linty czy inne komunikaty pep8 dla vima, nie jest to wielka filozofia.

----------

## gryf

 *Garrappachc wrote:*   

> @sebas86, trafiłeś w sedno. Takie same pytania ja tez sobie zadaję. W netbeansie mam taką ciekawą funkcję - jak nacisnę Ctrl i nazwę jakieś funkcji/zmiennej, która była zainicjalizowana w innym pliku, automatycznie przenosi mnie do tego pliku i pokazuje wszystkie szczegóły. Czy automatyczne generowanie pliku makefile, podkreślanie "nieznanych" zmiennych, etc etc. Jak to wszystko jest rozwiązane w vimie?

 

```
:help gf
```

```
:help CTRL-]
```

Co do automatycznego generowania makefile. Hm. Ja zwykle pisałem go sam dla prostych projektów. Dla niezbyt prostych to wolę użyć autoconf/automake. Podkreślanie nieużywanych zmiennych można załatwić zależnie od języka odpowiednim narzędziem dla statycznej analizy kodu.

Generalnie polecam "wyjście" poza insert mode w VImie. Można odkryć ogromną liczbę udogodnień, których próżno szukać w dowolnym dostępnym IDE. Z drugiej strony IDE czasami silnie ułatwia pracę z kodem, ale nie samą edycję kodu. Przez to powstały projekty podobne jak Eclim, po to by połączyć zalety IDE z porządnym edytorem, w przypadku, gdy sam edytor przestaje wystarczać.

----------

## gryf

 *soban_ wrote:*   

> @lsdudi Tutaj niestety nie popre Cie, zwlaszcza z tym "dynamicznym" budowaniem kodu. W eclipse mozesz to zrobic bardzo szybko, a wrecz wyklikac myszka (w doslownie kilka sekund) - bylem tego swiadkiem. Po co mam z palca budowac konstruktor, skoro w pare klikniec jest gotowy. To tylko przyklad - nie znam na tyle VIma, aby sugerowac cus na jego temat. Jednak uwazam tez, ze wszystko zalezy od osoby oraz co preferuje. Mnie jedno drazni w eclipsie przy czym Cie popre - ta krowka dosyc dlugo sie laduje, no ale za czesto (podczas parcy) nie odpalasz jej/jego... Najlepiej gdyby sie wypowiedziala osoba, ktora uzywa to i to na codzien tak btw http://i.imgur.com/usftZ.png ( : uwazam tez, ze przy VImie czlowiek moze rownie dobrze kodzic na kartce - co jest moim zdaniem zaleta. Wystarczy zapytac eclipsiarza z javy, jak wyglada klasa main na kartce (mowa o tych uzywajacych skrotow klawiszowych). Wlasnie, jak wyglada? d-: chyba "main" ctrl+spacja, a no i enter? Z drugiej strony mamy 7 klawiszy wcisnietych, a uzyskujemy 44 znaki (myszki nie musimy dotykac nawet):
> 
> ```
> public static void main(String[] args) {
> 
> ...

 

Piszesz o template-ach w Eclipse. VIm posiada komendę :abbrev, która służy wirtualnie temu samemu (prawie), ale również ma system szkieletów dowolnych plików, dzięki któremu jesteś w stanie panować nad tym, jak plik danego typu ma wyglądać przy tworzeniu nowego pliku. To nie jest jakaś super nowość, albo ficzer dostępny jedynie w IDE. Większość dobrych edytorów posiada taką możliwość.

Oprócz tego VIm ma pierdylion pluginów, które udostępniają szereg funkcjonalności, np SnipMate będący odpowiednikiem snippetów z TextMate albo ZenCoding, który zapewne najbardziej pokochają osoby, których głównym zajęciem jest grzebanie się w html/css.

----------

## Garrappachc

Ja tam się ostatnio przeniosłem na KDevelop (przy okazji przesiadki na KDE) i jestem zachwycony  :Very Happy:  Tak kolorowy kod znacznie ułatwia i uprzyjemnia kodzenie.

----------

## soban_

@Garrappachc kiedys mailowalem z Jerzym Greboszem ktory napisal Symfonia C++ standard i wlasnie chwalil to srodowisko.

@gryf owszem, ale to wymaga konfiguracji. Jesli jest prosty sposob - lub mozesz pokazac takowy zeby zaliczyc przesiadke. To chetnie bym zrezygnowal calkowicie z Eclipsa, jesli dasz rade w ten sposob przyspieszyc prace nad kodem przy uzyciu VIma jak w Eclipsie (ewentualnie takowa pokazac).

----------

## gryf

 *soban_ wrote:*   

> @gryf owszem, ale to wymaga konfiguracji. Jesli jest prosty sposob - lub mozesz pokazac takowy zeby zaliczyc przesiadke. To chetnie bym zrezygnowal calkowicie z Eclipsa, jesli dasz rade w ten sposob przyspieszyc prace nad kodem przy uzyciu VIma jak w Eclipsie (ewentualnie takowa pokazac).

 

No to muszę Cię zmartwić, bo prostego sposobu nie ma. Sama nauka posługiwania się VImem jest sporym i czasochłonnym zadaniem - rozdzielenie wprowadzania tekstu od manipulacji i poruszania się po tekście bywa silnie irytujące na początku dla ludzi osiadłych w edytorach pokroju notatnika (tak, edytor z Eclipse podpada pod tą definicję).

Używam VIma od ponad dekady i nie mogę powiedzieć, że w pełni go opanowałem. Co do konfiguracji VIma - w sieci znajdziesz od groma tutoriali i wpisów w blogach w jaki sposób tego dokonać. Wszystko zależy od Ciebie i od tego jak precyzyjnie jesteś w stanie zdefiniować swoje wymagania w stosunku do środowiska. Google nie boli.

VIm jest edytorem tekstu zgodnym z filozofią uniksa (zrób jedną rzecz, ale zrób ją dobrze), więc środowisko ściśle będzie związane z zewnętrznymi narzędziami - nie tylko edytor, ale też ctags, grep, find, dowolne inne narzędzie. Ale to wciąż edytor. Przyspieszenie dotyczy więc głównie operacji na tekście, poruszaniu się i wyszukiwaniu. Jeśli nie opanuje się podstaw, VIm będzie sprowadzony do fikuśnego i niewygodnego substytutu notatnika.

Usiłowałem napisać w miarę zwięzłe wpisy blogowe pod kątem skonfigurowania środowiska pythonowego, ale mam wrażenie, że nie do końca mi to wyszło - można je traktować raczej jako podpowiedzi, a nie gotowe przepisy. Jeśli chciałbym opisać to od a do z, wyszła by mi pokaźna nowela :)

----------

