Czy jest ktoś kto nie słyszał o Console2? Alternatywnej aplikacji linii poleceń do nudnego, ciężko (prawie w ogólne) nie konfigurowalnego Command Prompt z Windows. Jeżeli ktoś z was nigdy o Console2 nie słyszał to proponuje na początku zapoznać się z postem Hanselmana i zobaczyć co traciliście i jak naprawdę zajebiste było to narzędzie.

Piszę było, bo w tym tygodniu przesiadłem się na ConEmu i już na pewno do Console2 nie wrócę :)

Wszystko zaczęło się, podobnie jak w przypadku Console2, od postu Haselmana, który pokazał, że takie narzędzie istnieje. W postcie wyczytałem po prostu wyczesz funkcjach, o których wżyciu bym nie pomyślał, że mi ich brakuje. Jednak, nie podaje on żadnych informacji konfiguracyjnych – co, jak i z czym się je.

Więc dla laika nowego narzędzia, jak się zobaczy ekran konfiguracyjny:

1

To włos się zaczyna jeżyć.

Po kilku nieudanych próbach z konfigurowania narzędzia do swoich potrzeb olałem cała sprawę aż do momentu kiedy po prostu ograniczenia Console2 nie pozwalały mi zrobić tego co chciałem i musiałem. Dla przykładu w firmie zaczęliśmy mieć dziwną sytuację z umieszczeniem projektów w TFS – nagle tak naprawdę mamy jeden projekt w jednej kolekcji od którego dwa inne projekty w dwóch różnych kolekcjach mają referencje (proszę bez komentarzy, z TFS jest naprawdę ciężko, i to co chłopaki na miejscu wymyślili, jeżeli każdy będzie miał taką samą strukturę katalogów to ma to ręce i nogi – krótkie ale ma). A, że od jakiegoś czasu jestem fanem GIT-TFS (nie powiem, że Procent ma w tym trochę duży udział, w szczególności jak się go pyta: co tam? I odpowiedź pada git to jakoś ten GIT zapada w pamięć), to nawet nie muszę korzystać z VS by pobrać kod źródłowy – wystarczy szybka komenda pull i po kłopocie.

Jednak skakanie pomiędzy katalogami mi w ogóle nie odpowiadało, chciałem móc kliknąć OPEN CMD i mieć all przygotowane i na miejscu. I tu właśnie znalazło zastosowanie ConEmu – za co jestem mu bardzo wdzięczny :)

Poniżej postaram się wam trochę przybliżyć proces konfiguracji tego narzędzia – może się to komuś przydać, albo przynajmniej nadmiar opcji nie zniechęci was do tego narzędzia :)

Instalowanie

Eee, ściągacie .7z i rozpakowujecie – potem się samo aktualizuje, zajebiste nie? :)

Jak to COŚ skonfigurować?

Mała informacja, ConEmu ma FarManager – prawie jak Norton, ale że ja jakoś już za takim interfejsem nie przepadam, to tutaj nic na ten temat nie znajdziecie.

Konfiguracja do prostych nie należy, po pierwsze mimo iż ConEmu ma zakładki, to dana zakładka nie nazywa się Tab a Task. To właśnie taski umożliwiają wam tworzenie specyficznych zakładek – zwykły cmd, VS CMD, GIT Bash itp. dziwne ale potem zaczyna nabierać to sens :)

VS Console

Więc jeżeli chcemy skonfigurować sobie VS Command Line, to w oknie opcji (Win+Alt+P, lub PPM na title bar i Settings) należy wybrać opcję Tasks

2

Jeżeli na niej nic nie mamy, to klikamy +, to nam stworzy predefined task. Wybierając ten task, możemy ustalić jego nazwę (pierwsze pole tekstowe), parametry uruchomienia (drugie pole tekstowe), oraz co ma być odpalone (trzecie pole tekstowe) i z jakimi parametrami.

Dla VS Command możemy więc podać:

Task Name: VS Console

Task Parameters: nic

Commands: %comspec% /k ""C:Program Files (x86)Microsoft Visual Studio 10.0VCvcvarsall.bat"" x86

Następnie klikamy Save settings i mamy swój nowy task utworzony – fajnie nie? Teraz za pomocą Win+W w ConEmu będziemy mogli tworzyć sobie tą zakładkę – także istnieje opcja z myszką (górny prawy róg, rozwijamy przycisk + i wybieramy naszą zakładkę).

No dobrze, ale nie dlatego lubię ConEmu, że mogę odpalić VS Console ;)

Zmodyfikujmy lekko swój przykład, na przykład nadajmy mu inną ikonkę. Po raz kolejny Hanselman nam w tym pomaga, ściągamy zip, rozpakowujemy do katalogu w którym jest ConEmu (na przykład icons) i modyfikujemy Task Parameters:

/icon PATH_TO_ICO_FILE

Jeżeli chcemy ustalić inny katalog startowy to w Task Parameters dodajemy:

/dir PATH_TO_DIR

Ale to nie wszystko :) Czasami chcemy wykonywać jakieś akcję jako Administrator (iisreset itp.) w tym przypadku, nie uda nam się to (Access denied), w końcu każdy z nas zna Run As Administrator i aż do wy…ia.

Z ConEmu, nie ma nic prostszego, do Commands na samym początku dodajemy gwiazdkę * i kłopot z głowy :)

* %comspec% /k ""C:Program Files (x86)Microsoft Visual Studio 10.0VCvcvarsall.bat"" x86

Jeszcze jedna rzecz nie jest tutaj taka jakaś super fajna – mamy przedziwną nazwę zakładki, a w końcu task sam w sobie mówi, że powinien być on specyficzny, dla jakiegoś celu na przykład VS Console (ee tak, kiepsko u mnie z nazwami ;))

W tym wypadku musimy trochę zmodyfikować nasz Commands:

%comspec% /k RenameTab "VS Console" && "C:Program Files (x86)Microsoft Visual Studio 10.0VCvcvarsall.bat" x86

Gdzie:

  • RenameTab to skrypt ConEmu ustawiający nazwę zakładki.
  • && to łączenie komend w cmd, podwójny && oznacza wykonaj drugie polecenie jak pierwsze się uda, pojedyncze & wykonaj drugie polecenie niezależnie od pierwszego

PowerShell

Mając tak podstawową wiedzę, stwórzmy sobie teraz task PowerShell:

Task name: PowerShell

Task Parameters: /icon "PATHiconsvspowershell.ico"

Commands: %SystemRoot%syswow64WindowsPowerShellv1.0powershell.exe

Niestety, z PowerShell będziemy mieć kłopot z nazwą zakładki. Nie udało mi się zrobić tak by mieć Nazwę zakładki i kolorki PowerShell (niebieskie tło). Mogę mieć to lub to. Jeżeli wam się uda zrobić tak by mieć nazwę i kolorki to dajcie znać!

Jeżeli teraz odpalicie nowo utworzony task, to otworzy wam się czarne okno PowerShell (kolorki błędów itp. będą zachowane, ale tło z PS już nie). By mieć tło niebieskie otwieramy okno ustawień i przechodzimy do ustawienia App Distinct.

Dodajemy + nowe ustawienie i w Executables wpisujemy powershell.exe i zaznaczamy opcję Color palette override i wybieramy PowerShell z listy dostępnych możliwości – jeżeli mieliśmy otwartą zakładkę PowerShell to zmiany będą widoczna od razu (też fajny feature!)

9

3

Nad tytułem okna możemy popracować w opcji Tabs w oknie ustawień – jednak za dużo tam niestety nie osiągniemy.

GIT Bash

To teraz z opcji pozostało nam jedynie ustawienie GIT :) Sprawa jest tutaj dość prosta:

Task name: GIT Bash

Task Parameters: /icon "C:Program Files (x86)Gitetcgit.ico"

Commands: C:WindowsSysWOW64cmd.exe /k RenameTab "Git Bash" && """C:Program Files (x86)Gitbinsh.exe" –login -i""

Notka na temat wydajności – WAŻNE bo zrezygnujecie z ConEmu

Wyłączcie opcję w ustawieniach Features – Inject ConEmuHK. Ona znacząco spowalnia na przykład GIT i PowerShell!!

Jump list

Jeżeli mamy już ConEmu skonfigurowane, to możemy otworzyć ustawienia tasków i na samym dole w sekcji Windows 7 Taskbar (Jump List) wybrać checkbox Add ConEmu tasks to taskbar i kliknąć Update Now! Po tym czymś jeżeli mamy przypięty ConEmu do taskbar, pod PPM będziemy mieli takie coś:

4

Wiele zakładek na raz

Tak jak wspominałem na samym początku, projekt nad którym pracuje znajduje się w trzech miejscach. W jednym pracuje w dwóch pozostałych robię tylko pull zmian by mieć dostęp do najnowszego kodu. W tym celu trzeba było stworzyć coś co za jednym razem da mi trzy GIT Bash w odpowiednich miejscach z odpowiednią nazwą :)

Jeżeli przypatrzyliście się dokładniej w tasks to na pewno przeczytaliście opis pola Commands – każda komenda w nowej linijce to nowa zakładka.

Jednak, w tym momencie w Task Parameters nie można podać nazwy katalogu (bo dostaniemy 3 zakładki w tym samym katalogu :/), więc trzeba to obejść w Commands.

A więc by osiągnąć wiele zakładek na raz w różnych katalogach wystarczy:

Task Name: Project Name

Task Parameters: /icon PROJECT_SPECIFIC_ICON

Commands:

>cmd /c RenameTab "PROJ_NAME" && chdir /d PATH_TO_PROJ && """C:Program Files (x86)Gitbinsh.exe" –login -i""

cmd /c RenameTab "LIB_NAME_1" && chdir /d PATH_TO_LIB_NAME_1_DIR && """C:Program Files (x86)Gitbinsh.exe" –login -i""

cmd /c RenameTab "LIB_NAME_2" && chdir /d PATH_TO_LIB_NAME_2_DIR && """C:Program Files (x86)Gitbinsh.exe" –login -i""

Gdzie w tym wypadku > oznacza aktywną zakładkę

Teraz po aktualizacji Jump List jednym klikiem jestem gotowy do pracy :)

Inne opcje warte wspomnienia

Transparency

W Transparency możecie ustawić sobie przezroczystość okna aktywnego i nie aktywnego. Jako że ja osobiście czasami szukam pewnych komend online a potem by się ich nauczyć, to je przepisuje to w tym momencie przezroczystość czyni cuda :)

Size & Pos

W Size & Pos, możecie ustawić rozmiar okna w liczbie znaków na szerokość i liczbie linii na wysokość, ja mam takie ustawienia:

5

Main

Także możecie zmienić czcionkę i ustawić Anti-aliasing w ustawieniach Main. Ja używam następujących ustawień:

6

Startup

Zaś w Startup możecie ustawić zadania, które mają się domyślnie odpalać jeżeli z Jump List nic nie wybierzecie :)

Info

W Info macie zaś podane informacje jakie procesy są odpalone dla której zakładki, i która jest aktualnie aktywna.

Integration

W Integration możecie ustawić context menu w exploratorze by odpalał wam na przykład wasz task – ja zrobiłem tak by mi odpalał Git BASH. Tutaj macie ustawienia:

7

A tak to wygląda w działaniu:

8

Przydatne :)

Zrzut ekranu

Jak chcecie zrobić screenshot aktualnego okna to Win+H :)

Podsumowanie

Nie powiem, konfiguracja tego jest bardzo czasochłonna, za pomocą prób i błędów zajęło mi to około kilku godzin, a i tak sądzę, że mógłbym to lepiej zrobić :)

Jednak efekt jest niesamowity, mój czas klikania i wybierania skrócił się trzykrotnie, jeżeli potrzebuje nowej zakładki, lub grupy zakładek to zajmuje mi to 2-3 minuty i jestem gotowy do pracy. Nie podobają mi się jakieś kolorki? Nie ma z tym żadnego problemu. Szybka zmiana. Mimo iż nie wykorzystuje 40% możliwości ConEmu to i tak wiem, że już nigdy do Console2 nie wrócę.

Nie wiem czy was zachęciłem do skorzystania z tego narzędzia, ale starałem się jak mogłem ułatwić wam pierwsze kroki które mi zajęły godziny, a i z miejsca zniechęciły na dwa miesiące :)

Na pewno gorąco zachęcam was do spróbowania i pobawienia się narzędziem, może coś nowego i fajnego odkryjecie – jeżeli tak to koniecznie, KONIECZNIE :) podzielcie się tym w komentarzach :) dzięki!

4 KOMENTARZE

  1. tez 3 tygodnie temu po artykule na blogu Scotta Hanselmana przesiadlem sie na ConEmu i to jest po prostu wypas!

  2. Podpisuje się pod tym postem wszystkimi kończynami. "W postcie wyczytałem po prostu wyczesz funkcjach, o których wżyciu bym nie pomyślał, że mi ich brakuje." znam to doskonale z autopsji. :-)

  3. juz dla samego git-bash sie oplaca.co do innych, tez sporadycznie uzywam, ale jak uzywam to mam all w jednym miejscu skonfigurowane jak chce i jak lubie :) a nie nagle "oj znowu te opcje trzeba ustawiac" :)

    od kiedy Console2 zaczalem uzywac o cmd i vs console zapomnialem – all mialem tam, teraz all mam w ConEmu :) i jest dobrze, polecam

Comments are closed.