Cmder – skąd wziąć te fajne aliasy

W poprzednim poście zachwalałem Cmdera, jednak od publikacji zauważyłem, że nie wszystkie rzeczy, o których napisałem, są dostępne out of the box…

Biję się zatem w pierś i naprawiam błąd. Oto pierwsza rzecz: „skąd wziąć te fajne aliasy”.

Googlanie „cmder aliases” zwraca w większości porady co zrobić gdy aliasy nie działają w ogóle. Ale już ta sama fraza wzbogacona o kilka aliasów z mojego screena: „git aliases gl gs” zwraca na przykład taką stronę:

https://github.com/dufferzafar/Cmder/blob/master/config/aliases

Jest tam następująca lista:

clear=cls

grep=grep -nRi $*

ga=git add -A $*
gac=git add -A :/ $T git commit -e
gacm=git add -A :/ $T git commit -m $*
gau=git add -u

gb=git branch -v $*

gbb=git bisect bad $*
gbg=git bisect good $*
gbr=git bisect reset $*

gc=git commit $*
gch=git checkout $*
gchm=git checkout master
gcm=git commit --amend
gcount=git rev-list HEAD --count

gd=git diff -w $*
gdc=git diff -w --cached
gdf=git diff -w --full-index

gf=git fetch $*
gfu=git fetch upstream $T git rebase upstream/master

gg=git grep $*

gl=git log --date=short --pretty=format:"%C(auto) %h %ad %<|(35)%ar %<(70,mtrunc) %s %d" -n 20 $1
gla=git log --date=short --pretty=format:"%C(auto) %<(18,trunc) %an %<|(35) %ar %<(70,mtrunc) %s %d" -n 20
glc=git --no-pager log --format=%B $*
gll=git log --date=short --pretty=format:"%C(auto) %h %ad %<|(35)%ar %<(70,mtrunc) %s %d" $*
glu=git log --graph --abbrev-commit --decorate --date=relative --format=format:"%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)" --all
gm=git merge --squash $*

gp=git push $*
gpl=git pull $*
gpm=git push origin master
gps=git push origin source

gr=git reset head $*
grbc=git rebase --continue
grbs=git rebase --skip
grb=git rebase master
grbi=git rebase -i master
gru=git remote update

gs=git status
gsa=git stash apply
gsl=git shortlog -n -s
gsp=git stash pop
gst=git stash $*
gstl=git stash list

gwhat=git whatchanged --oneline

hb=hub browse $*
hbb=hub browse -- branches
hbi=hub browse -- issues
hbp=hub browse -- pulls
hbc=hub browse -- commits
hbw=hub browse -- wiki
hbm=hub browse -- milestones
hpr=hub pull-request $*

alembic = env\Scripts\alembic.exe $*
ea=env\Scripts\activate.bat
ed=env\Scripts\deactivate.bat
epip=env\Scripts\pip $*
epy=env\Scripts\python.exe $*
pip2=C:\Python27\Scripts\pip.exe $*

venv2=C:\Python27\Scripts\virtualenv.exe $*
venv=virtualenv $*

kill=taskkill /f /t /im $*
ls=ls --color --width=115 -F $*
now=time /t $T date /t
path=echo %path% | sed "s/;/\n/g"| sort | uniq | sed "s/\"//g"
rot13=tr a-zA-Z n-za-mN-ZA-M

cal="F:\Powerpack\Cmder\vendor\gcal\bin\gcal.exe" $*
convert="F:\Powerpack\Cmder\vendor\imagemagick\convert.exe" $*
date="F:\Powerpack\Cmder\vendor\UnxUtils\usr\local\wbin\date.exe" $*
essentia="F:\Powerpack\Essentia\streaming_extractor_music.exe" $*
ffmpeg="F:\Powerpack\Cmder\vendor\imagemagick\ffmpeg.exe" $*
ghost="F:\Powerpack\Cmder\vendor\ghostscript\bin\gswin64c.exe" $*
javac="C:\Program Files\Java\jdk1.7.0_21\bin\javac.exe" $*
java="C:\Program Files\Java\jdk1.7.0_21\bin\java.exe" $*
lj="D:\Compilers\luajit\luajit.exe" $*
mn="D:\Compilers\Moon\moon.exe" $*
mysql="C:\xampp\mysql\bin\mysql.exe" $*
subl="F:\Powerpack\Sublime\subl.exe" $*
ted="youtube-dl.exe" -c -i -w --no-mtime -f medium --restrict-filenames -o "%(title)s.%(ext)s" $*
ytb="youtube-dl.exe" -c -i -w --no-mtime -f 18 --restrict-filenames -o "%(title)s.%(ext)s" $*

beet="F:\Powerpack\Cmder\vendor\beets\env\Scripts\beet.exe" $*
cheat="F:\Powerpack\Cmder\vendor\cheat\env\Scripts\python.exe" "F:\Powerpack\Cmder\vendor\cheat\env\Scripts\cheat" $*
jrnl="F:\Powerpack\Cmder\vendor\jrnl\env\Scripts\jrnl.exe" $*
pie="F:\Powerpack\Cmder\vendor\httpie\env\Scripts\http.exe" $*
scrapy="C:\Python27\python.exe" "C:\Python27\Scripts\scrapy.py" $*
sub="F:\Powerpack\Cmder\vendor\subliminal\env2\Scripts\subliminal.exe" -l en -- $*

 

Polecam przejrzeć listę i wywalić to czego nie znamy/nie korzystamy. No i oczywiście dodać swoje własne 🙂

Polecam np:

gtd=cd c:\dev\
Reklamy

Cmder – lepsza konsola. O niebo lepsza.

cmder.png

Oglądając kursy online zwracam uwagę na narzędzia jakich używają prowadzący. Gdy kurs nie jest totalną klapą, można założyć że autor ma spore doświadczenie w tym co robi i bardzo możliwe, że narzędzia z których korzysta są warte wypróbowania.

W szkoleniach, które ostatnio oglądałem, najczęściej pojawiała się mała, zielono-oliwkowo-szara konsolka. Nazywa się ona Cmder i już po pierwszych testach poczułem, że… warto!

W tym poście chcę wymienić kilka elementów, którymi mnie do siebie przekonała.

Używam jej dopiero od niedawna, ale już na pierwszy rzut oka na panel ustawień widać, że ma ona potencjał żeby zbałamucić ludzi, którzy lubią dostosowywać narzędzia pod siebie. Okno ustawień jest ogromne. Jak na małą, prostą konsolkę, liczba opcji jest przytłaczająca.

cmdersett.png

Przypomina ona pod tym względem Mirandę – aplikację, którą kiedyś używałem jako zamiennika GaduGadu. Tam też, pomimo, że program z pozoru był prosty i malutki, okno ustawień było tak ogromne, że miało długą listę kategorii.

Konsolka korzysta z linuxowych komend – także można śmiało jej pisać „ls” zamiast „dir”. Ma sporo integracji – np z Gitem. A zaznaczanie, kopiowanie i wklejanie tekstu jest poezją! Można nawet zaznaczyć tekst kolumnowo (np 2 i 3 znak w każdej lini) – i to za pomocą myszki!

Jedne z ciekawszych ustawień to oczywiście skróty klawiszowe. Pozycji do których możemy sobie ustawić skróty jest około 200. Dwieście różnych funkcji! Oczywiście nie chodzi o to, żeby je wszystkie używać. Ale gdy często wykonujemy jakąś żmudną czynność, bardzo możliwe, że jest ona na liście, i można to zamienić na skrót klawiszowy. Zwłaszcza, że można pisać własne makra!

Jednym ze skrótów, które mi się podobają jest skrót do otwierania konsolki z dowolnego miejsca w Windowsie. Domyślnie jest to „CTRL + ~”. Jeśli nie masz niczego przypisanego do tego skrótu – spróbuj. Wciśnij „CTRL + ~” na klawiaturze kilka razy. Nie jest wygodne?

Kolejna rzecz to integracja z GITem. Przykładowo po wejściu w folder z repozytorium, w linijce z aktualną ścieżką, mamy nazwę brancha. Z konsoli GitBash korzystam już tylko gdy uruchomię ją przez przypadek – a i wtedy jedyne z czego korzystam to wyłącznik.

cmder3.png

Następna fajna rzecz to aliasy. Ale nie te zwykłe gitowe aliasy, gdzie trzeba wpisać „git” spacja i dopiero alias. Niżej podaję klika przykładowych, domyślnych aliasów dla Gita:

  • gl – git log – i to nie taki zwykły git log, ale piękny, jedno-linijkowy (można to oczywiście wpisać z palca, ale jest to długie polecenie).
  • gs – git status
  • gb – git branch – również piękny, wyświetlający więcej danych niż zwykły git branch, ale jednocześnie nadal jest 1 branch na 1 linię tekstu

cmd4.png

Są proste do zapamiętania, bo to przecież pierwsze litery każdego z wyrazów. I najlepsze, że to wszystko można zedytować. Wystarczy zajrzeć do pliku „c:\Programs\cmder_mini\config\user-aliases.cmd” (w zależności gdzie go zainstalowaliśmy):

cmder5.png

Po prawo komenda pełna, po lewo komenda skrócona. Proste!

Mój główny folder na projekty to „C:/dev”. Mimo, że wystukanie „cd c:\dev” nie zajmuje dużo czasu, to napisałem sobie komendę „gtd” (go to dev). Dla niektórych będzie to oczywiście niepotrzebna zabawa, ale ja do tego folderu zaglądam z konsoli na prawdę często i ta komenda szybko weszła mi w palce 🙂

Dość często muszę też rozłączać się z sieci Ethernetowej i przechodzić na WiFi. Mogę przejść do ustawień sieci, dalej do ustawień adapterów sieciowych, znaleźć na liście Ethernet i w menu pod prawym klikiem znajdziemy „Disable”… Ale gdy zrobię to piętnasty raz tego samego dnia to coś się we mnie zaczyna gotować. A tu ustawiłem sobie komendy „de” (disable ethernet) oraz „ee” (enable ethernet) i gotowe. Wciskam jak z automatu „CTRL + ~”, wpisuję „de” i już.

I jeszcze jedna rzecz odnośnie aliasów – już ostatnia 🙂 :

W Cmderze jest podpowiadanie 🙂

Wpisujesz pierwsze litery komendy, naciskasz Tab Tab i masz listę komend, które pasują! Dlatego mogę mieć więcej moich „Go to …” i nawet gdy po jakimś czasie nieużywania, zapomnę jedno z nich, Cmder mi szybko je przypomni.

 

Kończąc już. Temat cmdera tylko dotknąłem, bo sam znam go dopiero od niedawna. Narzędzie jest przeogromne, mega elastyczne, ma ogromną liczbę fanów i bardzo ładnie się rozwija. W necie można znaleźć multum stron pokazujących jak coś w nim zrobić/jak je rozszerzyć/zmodyfikować. Z drugiej strony pomimo tego ogromu funkcji, działa super sprawnie i nawet nie myśli się przywiesić. Zdecydowanie jest to najlepszy zamiennik konsoli jaki widziałem!

Polecam!

A, no i link: www.cmder.net

VirtuaWin – fajne wirtualne pulpity dla Windowsa

Ostatnio kilka osób zapytało mnie o narzędzie którego używam do zarządzania pulpitem, toteż pomyślałem, że można by parę zdań o nim tutaj napisać 🙂

W pracy zajmuję się kodzeniem stron i serwisów internetowych. Projektów, które rozwijam jest sporo i stosunkowo często muszę się pomiędzy nimi przełączać. Efektem tego jest bałagan na pulpicie oraz spora liczba okien siedzących na pasku zadań. Czas temu jakiś, wpadłem na pomysł, żeby zacząć używać jakiegoś narzędzia, które by mi tę pracę usprawniło. Mamy co prawda w Windowsie 10 funkcję wirtualnych pulpitów, jednak przez brak dobrych skrótów klawiszowych, ciężko mi się z niego korzysta :/

Narzędzie, które znalazłem nazywa się VirtuaWin (link: http://virtuawin.sourceforge.net/), działa na Windowsie i służy tworzeniu wirtualnych pulpitów. Zacząłem z niego korzystać dobre kilka lat temu i od tamtej pory niczego lepszego nie znalazłem.

Wadą narzędzia, jest to, że po zainstalowaniu trzeba je sobie ustawić – to może odstraszać bo zwykle oczekujemy, że coś będzie śmigać z pełną mocą zaraz po instalacji. Ustawienie trwa jednak tylko chwilę i po tym można już wpadać w zachwyt nad tym jacy to efektywni się staliśmy 🙂

Ale do sedna – ustawieniem, które trzeba wykonać po starcie jest przypisanie skrótów klawiszowych. Dla przykładu wezmę swoją konfigurację – czyli 4 pulpity, dwa na górze (prawo, lewo) i dwa na dole.

Do nawigacji między nimi potrzebujemy 4 skrótów klawiszowych:

  • przejście w prawo (np: CTRL + ALT + PRAWO)
  • przejście w lewo (np: CTRL + ALT + LEWO)
  • przejście w dół (np: CTRL + ALT + DÓŁ)
  • przejście w górę (np: CTRL + ALT + GÓRA)

A oto i ustawione skróty:

vw1.png

Dodatkowo, co mega ułatwia pracę, to przeciąganie aktywnego okna z aktualnego pulpitu na inny. W moim przypadku ustawiłem sobie, że okna będę przeciągał z Shiftem, więc porobiłem takie same skróty klawiszowe, dodając do nich Shift:

vw2.png

I tyle – pulpity śmigają jak ta lala.

Jeśli tak jak ja, też uznacie,  że CTRL + ALT + ___ jest dla Was wygodne – śmiało wpinajcie to w konfigurację i używajcie. Jedynym dodatkowym wymaganiem może być usunięcie tych skrótów klawiszowych z innych narzędzi/aplikacji, które mogę z nich korzystać. Na przykład jeśli macie zintegrowaną grafikę od Intela, CTRL + ALT + Strzałka są używane do obracania ekranu… Klawisze te są mega wygodne, a obracanie ekranu, przynajmniej w mojej opinii, nie jest czymś co wykonuje się 1000 razy dziennie (chociaż może ktoś lubi). Warto więc je albo wyłączyć w ustawieniach grafiki Intela, albo przynajmniej przemapować na inne.

Jeszcze jedną rzeczą wartą zwrócenia uwagi są ikonki – VirtuaWin siedzi na pasku start obok zegara. Warto go nie ukrywać po to, aby zawsze gdy potrzeba można było zobaczyć na którym pulpicie się znajdujemy. Jednak standardowe ikonki są okropne i bardzo się wyróżniają obok prostych, białych ikonek z nowego Windowsa. Wystarczy jednak ściągnąć paczkę Metro (link: http://virtuawin.sourceforge.net/?page_id=48) i skopiować z niej ikonki do folderu „icons” w katalogu, w którym mamy zainstalowane VirtuaWin.

A tak wygląda nowa ikonka (pierwsza od lewej):

vw3.png

Różne kolory dla środowisk

Kolejny z serii banalnych, ale przydatnych tricków.

Jeśli korzystasz z podziału środowisk na DEV, STAGE i LIVE, teoretycznie powinny one być jak najbardziej do siebie podobne. Czasem jednak to podobieństwo może zaprowadzić nas do tego, że testując coś na DEVie, tak naprawdę omyłkowo wprowadziliśmy zmianę na STAGE lub nawet na LIVE.

Fajną sztuczką ułatwiającą nam rozróżnienie serwerów jest ustawienie odpowiedniego koloru pulpitu na każdym ze środowisk:

DEV:

dev.png

STAGE:
stage.png

LIVE:

live.png

 

Nie zabezpieczy nas to w żaden sposób, ale czasem może ostrzec.

Dodatkowo, w zależności od systemu, wykonalne może być ustawienie koloru paska zadań. To jest jeszcze bardziej przydatne. Tapetę można bowiem zasłonić oknem i o niej zapomnieć, natomiast pasek zadań widoczny jest cały czas.

I jeszcze jedno – podobna sprawa ma się jeśli chodzi o CMSy. Do niektórych z nich istnieją specjalne wtyczki dodające paski z wybranymi kolorami w zależności od środowiska. Oto jedna z takich wtyczek do Umbraco:

https://our.umbraco.org/projects/backoffice-extensions/cms-environment-indicator/

SourceTree – dlaczego warto

Kilka słów o super narzędziu do obsługi repozytoriów Gitowych – SourceTree.

No to po kolei, dlaczego SourceTree jest fajny?

Wszystko na tacy

W aplikacji widać kupę rzeczy na pierwszy rzut oka. Niżej na screenie pokazane jest jak aplikacja wygląda na Windowsie z otwartym przykładowym repo:

hao-source-tree-red.png

Zaczynając od lewej mamy więc panel z listą branchy (A) oraz panel z historią zmian (B). Ponad nimi są przyciskami głównych poleceń (C), a pomiędzy tym wszystkim, zakładki do szybkiego przełączania się pomiędzy repozytoriami (D).

Jest jeszcze kilka schowanych paneli, jednak w tej chwili nie są one istotne.

Lista branchy (A)

OK to zaczynamy od pierwszego – Panel A. Najważniejszym jego zadaniem jest listować branche w obrębie aktualnie otwartego repozytorium. Mamy Branches – czyli branche lokalne, oraz Remotes – branche na serwerze. Pomiędzy branchami przełączamy się dwuklikiem.

Dzieki Remotes można łatwo pobrać branch żeby pracować na nim lokalnie – dwuklik na wybranym branchu i jest na dysku a my jesteśmy na niego przełączeni.

Okienko branches wyświetla też foldery (to akurat nie jest żadna nowość – inne narzędzia do gita też to mają). Warto jednak o nich pamiętać i je tworzyć – np wszystkie branche hotfixowe nazywać z prefiksem „hotfix/” a branche funkcjonalnościowe prefixem „feature/”. Ułatwia to pracę gdy projekt się rozrośnie.

Okno ma też fajną listę wyboru pod prawym przysiskiem myszy. Np, jako, że w gicie mergujemy się WCIĄGAJĄC zmiany z innego brancha „do siebie”, bardzo naturalnym jest robienie tego przez prawoklik na branchu i wybranie opcji „merge XXX into current branch”. Spowoduje to wprowadzenie zmian z wybranego brancha do brancha, na którym aktualnie jesteśmy (pogrubiony na liście). Lista wyboru ma też wiele innych komend – warto sobie ją przejrzeć. W przypadku wydania w konsoli, kosztowałyby one nas bardzo dużo pisania na klawiaturze.

hao-source-tree-right-click.png

Panel historii zmian (B)

Najważniejsza zaleta tego panelu to to, że jest wyświetlany praktycznie cały czas. Uprzyjemnia to pracę z gitem bo wszystkie dane mamy widoczne non stop. Nie musimy używać wielu poleceń konsolowych lub przełączać się pomiędzy mikroskopijnymi okienkami wtyczki do VS’a. Szukamy zmiany po dacie – spoko, wystarczy spojrzeć na kolumnę Date, szukamy gdzie dana zmiana była wmergowana albo ‚skąd wyszła’ – nie ma problemu, rzut oka na drzewo i już wiemy. Nigdzie nie klikamy, niczego nie przełączamy. W najgorszym wypadku musimy użyć rolki myszy 😛

Panel aktualnych zmian (niezakomitowanych)

Gdy mamy jakieś niezakomitowane zmiany, w panelu historii zmian, na samej górze wyświetli się pozycja „Uncommited changes”. Po jej wybraniu wysunie nam się okno podzielone na dwie części. W dolnej są zmiany „unstaged” a w górnej „staged”.

W gicie przed każdym commitem wybieramy zmiany, które mają być w commicie zamieszczone. Nie musimy wybierać wszystkich. Często wręcz nie powinniśmy. Zgodnie z zasadami „clean code”, commity powinny być stosunkowo silnie rozdrobnione. Np w jednym commicie możemy uwzględnić dodanie modeli do projektu, a w kolejnym dodanie metod „ToString()” do tychże modeli.

I to okno bardzo nam w tym wszystkim pomaga. Łatwo wybierzemy pliki do commita. Co więcej, możemy wybrać poszczególne partie kodu albo nawet pojedyncze linie, które mają być w commicie, albo mają być pominięte.

st2.PNG

 

Jest jeszcze kilka rzeczy w SourceTree, o których chcę napisać, ale już schodzi mi i schodzi, więc napiszę o nich osobny post. Tymczasem, link do pobrania:

https://www.sourcetreeapp.com/

Visual Studio Keymap – rozszerzenie do VS Code blokuje polskie znaki – ‚ó’ i ‚ł’

W VisualStudio Code po instalacji wtyczki Visyal Studio Keymap, nie da się wpisywać ‚ó’ ani ‚ł’.

 

vscode-keymap-vs.png

Co teraz?

VS Code oferuje fajny edytor skrótów klawiszowych. Edytor jest w „File | Preferences | Keyboard Shortcuts”. W nim trzeba nadpisać dwa skróty (CTRL + ALT + L oraz CTRL + ALT + O). Przy nadpisywaniu jednak trzeba pominąć komendę. Pozostawienie jej pustej bądź przeszukiwanie dostępnych opcji w poszukiwaniu czegoś jak „editor.type ó” nie pomoże. Trzeba zupełnie ją pominąć.

vs code ó ł.png

Oto kod:

[

{ "key": "ctrl+alt+l" },

{ "key": "ctrl+alt+o" }

]