•  

    pokaż komentarz

    Zakopałbym ale nie pamiętam komendy.

  •  

    pokaż komentarz

    Jak wyjść z tego znaleziska?

  •  

    pokaż komentarz

    pokaż spoiler Tylko nano!

    źródło: 1580742006383.jpg

  •  

    pokaż komentarz

    nauka klawiszologii Vima zmienia mózg człowieka - polecam. nawet jeśli później pracuje się w innym edytorze to pierwsze czego się szuka to "vim mode" żeby " po ludzku edytować tekst".

    usuwanie linii przez zaznaczenie czy jakieś ctrl+x? przecież jest dd. dodawanie znaku na koniec linii jednym naciśnięciem klawisza. ogólnie cała nawigacja - wraz z pionowymi blokami (ah, jakie to Atomy, VSCode były z siebie dumne)...

    Vim or die!

    (dobra, przyznam że często używam Emacsa w trybie zgodności z Vimem :-P

    •  

      pokaż komentarz

      @secret_passenger: doom-emacs to druga najlepsza rzecz jaka mnie spotkała( ͡° ͜ʖ ͡°)

    •  

      pokaż komentarz

      @Ribelo: a ta pierwsza? :-)

      spróbowałem doom-emacsa ale jednak pozostaję wierny Spacemacsowi :-)

    •  

      pokaż komentarz

      @secret_passenger: Pierwszą jest masło orzechowe z dżemem!

      Ze spacemacsa korzystałem długo, ale ciąży nade mną lisp/emacs course. Im więcej dłubię, tym bardziej odchodzę od podstawowej konfiguracji i coraz więcej rzeczy musi być po mojemu. Boję się, że skończę używając https://github.com/ch11ng/exwm

    •  

      pokaż komentarz

      @Ribelo: mówisz że doom-emacs jest łatwiejszy do samodzielnego modyfikowania czy jako baza dla własnej konfiguracji?

      ja już mam dość dłubania po latach ustawiania sobie Vima - podoba mi się że w Spacemacsie jest to jakoś tak zrobione ze jestem zadowolony po niewielu zmianach (małych). mogę się skupić bardziej na tym co chcę zrobić a mniej na tym by dopieszczać sobie edytor

    •  

      pokaż komentarz

      @secret_passenger: Myślę, że każdy edytor pokroju Emacsa i Vima zmienia sposób myślenia o pracy z teksem na lepszy ;-)
      Osobiście zacząłem od Emacsa i póki co nie zamierzam się przesiadać, słyszałem jednak o tym trybie vima w Emacsie, ale do tej pory nie chciało mi się go wypróbować.

    •  

      pokaż komentarz

      wraz z pionowymi blokami (ah, jakie to Atomy, VSCode były z siebie dumne)...

      @secret_passenger: pionowe bloki były modne w poprzedniej dekadzie. Teraz Atomy i VSCode mają multicursor editing. Vim wspiera?

    •  

      pokaż komentarz

      usuwanie linii przez zaznaczenie czy jakieś ctrl+x

      @secret_passenger: akurat używając ctrl+x użyjesz dokładnie tylu znaków co przy dd.

      dodawanie znaku na koniec linii jednym naciśnięciem klawisza

      wrong. akurat jeśli chcesz zrobić to klasycznie w stylu vima to naciśniesz dwa: shifti a a potem wpisujesz. Jeśli chcesz to zrobić jednym przyciskiem to notatnik > vim. wystarczy że naciśniesz klawisz end.

    •  

      pokaż komentarz

      @haxx: w latach 2000-2009? wg mnie wspiera za pomocą właśnie bloków wertykalnych.

      @wathu: myślę że skoro jesteś przyzwyczajony do trybu Emacsa to może nie mieć sensu. ja mam ustawiony tryb zgodności z Vimem bo inaczej nie dałbym sobie w Emacsie rady. stare przyzwyczajenia to druga natura.

      a pomyśleć że kiedyś myślałem że nigdy nie planuje Vima by być w nim produktywnym :-)

    •  

      pokaż komentarz

      @okmanek:

      akurat używając ctrl+x użyjesz dokładnie tylu znaków co przy dd.

      w czy nie łatwiej i szybciej nacisnąć dwa razy 'd'?

      wrong. akurat jeśli chcesz zrobić to klasycznie w stylu vima to naciśniesz dwa: shifti a a potem wpisujesz. Jeśli chcesz to zrobić jednym przyciskiem to notatnik > vim. wystarczy że naciśniesz klawisz end.

      shift+a jest znacznie bliżej głównego obszaru klawiszy niż end.

      już nawet nie wspomnę o możliwości komponowania wielu komend (za pomocą powtórzeń itp) makrach, które są super proste i zabójczo skuteczne. mnie używanie edytora nie w trybie zgodności z Vimem po prostu męczy

    •  

      pokaż komentarz

      multicursor editing. Vim wspiera?

      @haxx: jeśli chcesz zmienić parę linii to jest to spoko feature. Jeśli chcesz zmienić np. trzecią literę w każdej z 10 000 linii, nagle vimowe zaznaczenie pionowego bloku aż do końca pliku robi się chyba lepsze. Nie mówiąc już o tym, że to samo możesz zrobić makrem.

    •  

      pokaż komentarz

      w czy nie łatwiej i szybciej nacisnąć dwa razy 'd'?

      @secret_passenger: porównywalne moim zdaniem

      shift+a jest znacznie bliżej głównego obszaru klawiszy niż end.

      tak, ale jeśli ktoś używa strzałek (wiem że w środowisku vima to jest lamerskie xD) i prawą rękę ma w ich okolicy, używanie end robi się wygodne.

      ogólnie sam używam vima, ale takiego Sublime'a też uważam za wygodnego i umiem przełączać się między różnymi filozofiami edycji bez problemu.

    •  

      pokaż komentarz

      mówisz że doom-emacs jest łatwiejszy do samodzielnego modyfikowania czy jako baza dla własnej konfiguracji?

      @secret_passenger: spacemacs to wielka kobyła, co ma swoje plusy i minusy. Jest też bardzo "ogólny" i nie forsuje na siłę żadnych rozwiązań. Tworzy go masa ludzi i jest on wypadkową ich doświadczenia, potrzeb, upodobań...przez co jest odrobinę mdły. Sam fakt, że ma holy mode mówi samo za siebie. Jeśli zaś chodzi o dooma, na githubie wita nas tekst

      Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite OS.

      ...doom to po prostu lepszy vim. Nie dostarcza 1000 modułów na dzień dobry, z których z 900 i tak nie skorzystam( ͡° ͜ʖ ͡°)

      I daje sobie sprawę, że mogę pieprzyć głupoty, bo z emcsa korzystam kilka lat, a nie 40 jak niektórzy(⌐ ͡■ ͜ʖ ͡■)

    •  

      pokaż komentarz

      @Ribelo: dzięki za opinię na temat doom-emacs - może kiedyś spróbuję, na razie jestem zadowolony ze Spacemacsa i staram się trochę mniej robić "side questów" bo o ile to ciekawe i lubię to jednak czas coraz bardziej ograniczony :-)

    •  

      pokaż komentarz

      w czy nie łatwiej i szybciej nacisnąć dwa razy 'd'?

      @secret_passenger: Najpierw trzeba wyjść z trybu edycji.

    •  

      pokaż komentarz

      @milo1000: nie, w trybie edycji to się jedynie bywa w czasie pisania :) normalnym jest właśnie tryb nawigacji. dla mnie jak i dla wielu użytkowników Vima to naturalne by skracać czas przebywania w trybie edycji (choć to też zależy co się w danym momencie konkretnie robi)

    •  

      pokaż komentarz

      @secret_passenger: usuwanie linii służy do edycji, a nie do nawigacji, tak że ten tego.

    •  

      pokaż komentarz

      @milo1000: jest to edycja w sensie stricte, ale sama akcja nie jest dostępna w trybie edycji. w trybie edycji 'd' to przeccież wpisanie literki 'd'. zatem 'dd' ma sens w kontekście akcji usunięcia linii tylko gdy jesteśmy w trybie poruszania się po dokumencie.

      i tak (z mojej perspektywy) działa wszystko. nawiguję po dokumencie i zmieniam miejsca. ale zmiany te są aktywowane przez różne klawisze / akcje w zależności od potrzeby. ale zawsze punktem wyjścia jest tryb poruszania się / nawigacji.

    •  

      pokaż komentarz

      Vim or die!

      (dobra, przyznam że często używam Emacsa w trybie zgodności z Vimem :-P

      @secret_passenger: do jakiego typu edycji plików używasz VIMa? configi? propertiesy? html?

    •  

      pokaż komentarz

      @PanWiatrak: w sumie to vim jest dla mnie domyślnym edytorem do wszystkiego. z założeniem że nie jest to praca wielogodzinna nad danym projektem.

      ja dużo eksperymentuje z różnymi językami programowania i zauważyłem że nie chce mi się za każdym razem konfigurować Vima pod dany język - więc już tego nie robię.

      oczywiście do configów, do pisania markdown / notatek wszelkiej maści, do edycji plików konfiguracyjnych (ja jestem z #bojowkalinux)

      a do programowania takiego na zasadzie "teraz będę klepał kod przez X czasu" wybieram jednak Spacemacsa z klawiszami w standardzie Vima.

      choć zdarza mi się jakieś mniejsze rzeczy pisać / poprawiać bezpośrednio w Vimie.

    •  

      pokaż komentarz

      w sumie to vim jest dla mnie domyślnym edytorem do wszystkiego. z założeniem że nie jest to praca wielogodzinna nad danym projektem.

      @secret_passenger: to sporo zmienia. Tak dla jasności też jestem #bojowkalinux , ale po sporej już ilości lat w zawodzie nigdy nie korzystałem z niego. Próbowałem oczywiście wiele razy. Kończyło się na zepsuciu edytowanego pliku lub kill -9 aby wyjść xD. Kodowałem kiedyś pod Visual Studio (c++), potem Eclipsy (Javka) i od paru lat teraz IntelliJ. Projekt spory - nie wyobrażam sobie wygodniejszej pracy bez niego. W prosty sposób przeskakuję między wywołaniami metod, znajduję odwołania do propertiesów, configów, zmiennych w jsp do kodu java, css... itd. No nie ma opcji.
      W przypadku krótkich zadań? Moje, ewentualnie krótkie zadania polegają na edycji cfg/properties - jedna/dwie zmienne. Robię to szybko i bez problemu nawet pod nano - wyszukaj zmienną, podmień, ctrl+x - zatwierdź Y. Finito. Może jestem jakiś dziwny, ale tak serio serio nie widzę potrzeby uczenia się jak zrobić rzeczy w trudniejszy sposób zamiast wygodny i intuicyjny.

    •  

      pokaż komentarz

      @PanWiatrak: no ale ja do dużych projektów używam Spacemacsa w trybie zgodności z Vimem. co więcej nawet jeśli zdarzy mi się konieczność używania czegokolwiek z JetBrains to pierwsze co robię to instaluje wtyczkę pozwalająca na edytowanie plików w trybie Vima.

      dlaczego? bo po latach zauważyłem że jest to dla mnie najszybszy, najwygodniejszy, najbardziej intuicyjny sposób.

      nawigowanie po projekcie to sprawa ortogonalna do tego jako sposób edycji zapewnia edytor. w Vimie też da się skakać do definicji metody, wyszukiwać jej wywołania.

      sam też kilka dobrych lat spędziłem zawodowo korzystając z dużych IDE i powiem tak: wolę raczej mniejsze narzędzia i podejście typu Unix way (powiązanie że sobą wieku małych narzędzi w łańcuchu)

    •  

      pokaż komentarz

      sam też kilka dobrych lat spędziłem zawodowo korzystając z dużych IDE i powiem tak: wolę raczej mniejsze narzędzia i podejście typu Unix way (powiązanie że sobą wieku małych narzędzi w łańcuchu)

      @secret_passenger: być może się mylę, nie próbowałem nawet - ale na obecną chwilę nie wierzę, że udałoby Ci się używać VIMa w dużych projektach do skakania po plikach - interface/implementacja - wywołania beanów w innych modułach, podpowiedzi wywołań z klas o tych samych nazwach ale innym pochodzeniu, annotacji itd. nie wspominając od odpalaniu testów lub debugowaniu przez podłączanie się do procesu. Da się tak w VIM?
      Wprawdzie IntelliJ ma wtyczkę edytor VIM, ale do dopisania metody nie potrzebuję skomplikowanych funkcji - klikam w miejscu gdzie chcę pisać i piszę. Jakbym zainstalował wtykę edytor VIM w tym IDE to bym chyba spędził potem godziny aby nie popsuć tego co już jest napisane. Może po prostu za długo pracowałem 'zwyczajnie' i z tym czuję się dobrze.

    •  

      pokaż komentarz

      @PanWiatrak: VIM jak i Eamcs są zaskakujące jeśli chodzi o swoje możliwości. wiele osób widząc osoby korzystające z tych edytorów od lat nie jest w stanie uwierzyć że coś takiego jest możliwe "w zwykłym edytorze". nie upieram się że doświadczenie pisania w Vimie może być takie samo jak w dużym IDE, ale zbliżone na pewno.

      należy też zauważyć że i VIM i Emacs są niepopularne w pewnych kręgach - niewiele osób programujących z użyciem C# używa Vima czy Emacs i tak samo nie wydaje mi się by świecie Javy te edytory były specjalnie popularne.

      co do podpowiedzi (intellisense czy też autocompletion) to jest sporo mechanizmów zapewniających taką pomoc. co więcej wraz z projektami typu "laguage server" to podejście coraz łatwiej jest podpiąć do dowolnego edytora (co myślę, że zmieni przyzwyczajenia i sposób pracy wielu programistów). annotacje również są możliwe. odpalanie testów wprost z edytora? dlaczego nie?

      debugowanie - tutaj raczej wchodzą osobne narzędzia. ale to też jest związane z filozofią Unixa - tj. budowanie sobie toolingu na wielu wyspecjalizowanych narzędziach, a nie budowanie wielkiego narzędzia "do wszystkiego". rozumiem jednak i pamiętam że w środowisku Enterprise (zarówno Java i C#) sposób pracy jest podobny i tam preferowane jest podejście bazujące na dużym IDE.

      trudno mi wytłumaczyć zalety korzystania z VIMa jako edytora. mój mózg automatycznie myśli już komendami Vima jeśli chodzi o nawigowanie i edytowanie. ja cofam sie używając 'b', a na koniec wyrazu przeskakuję używając 'e' - tak samo jak na koniec linii za pomocą '$' i to jest dla mnie naturalne. nie kontroluję już tego, to są nawyki wbite pod moje palce. cenię sobie bardzo tę umiejętność i nawet tekst (notki bloga, dokumenty w markdown, CV etc) piszę w Vimie (bądź w Emacsie - ale znów tutaj używam bindingów jak dla Vima).

      to wszystko pewnie kwestia przyzwyczajenia. ja kiedyś poświęciłem sporo czasu (a początki były ciężkie i malo produktywne) dziś jednak cenię sobie zdobyte doświadczenie. czasami zdarza mi się użyć jakiegoś innego narzędzia (VSCode, IntelliJ / PyCharm) ale są to wyjątki od reguły - czyli od używania VIMa i Emacsa.

    •  

      pokaż komentarz

      @secret_passenger:

      to wszystko pewnie kwestia przyzwyczajenia. ja kiedyś poświęciłem sporo czasu (a początki były ciężkie i malo produktywne) dziś jednak cenię sobie zdobyte doświadczenie

      OOwłaśnie.
      Ja tam uważam że w 2020 roku lepiej ten czas poświęcić na naukę czegoś bardziej sensownego, niż edytora który powstał w innych czasach przy innych założeniach. Pamiętam że korzystałem jeszcze z vi na studiach gdzie zdarzały się terminale bez trybu pełnoekranowego i wtedy to była jedyna opcja. vi zresztą miało tak rozbudowaną klawiszologię głównie dlatego, że były konkrtne opóźnienia w przesyle komend między terminalem a serwerem + odświeżenie tego na ekranie, nie było pełnej interaktywności. Więc komendy typu "przeskocz trzy wyrazy w prawo" wtedy oszczędzały czas. W dzisiejszych czasach? Głowa nie śmietnik! Nie rozumiem po co ktoś miałby się męczyć zamiast dobrać sobie dowolny wspołczesny w pełni konfigurowalny edytor.

    •  

      pokaż komentarz

      @destruktiv_komando:

      Nie rozumiem po co ktoś miałby się męczyć zamiast dobrać sobie dowolny wspołczesny w pełni konfigurowalny edytor.

      no i w tym właśnie sęk. nie zrozumiesz. nigdy. dopóki tego nie opanujesz. mówienie o używaniu Vima jest jak... dyskusja o tym co daje medytacja - jest to kompletnie nieproduktywne zajęcie. albo siądziesz, poświęcisz czas i nauczysz się medytować, albo nie. mówienie, słuchanie wykładów nigdy ale to NIGDY nie przybliży Cię do istoty sprawy.

      dalej... to tak jak z programowaniem funkcyjnym. można zatzymać się na "funkjcach bez side efektów" ale dopóki nie zagłebisz się w zagadnienie dalej, dopóki nie zaczniesz rozumieć szerszego kontekstu to nigdy nie zrozumiesz gdzie jest tutaj sens. i najlpiej (imo) wziąć się za barki z Haskellem - tak by wymusić na sobie podejście nie "pragmatyczne" (Elixir, Clojure, Ocaml) ale właśnie to hardkorowe. tylko tak wyprodukujesz sobie w mózgu nowe ścieżki.

      i nawet jeśli później dojdziesz do wniosku że to jest krok za daleko - masz doświadczenie i perspektywę. a wiedzę - co jak co - ale ja to sobie cenię najbardziej.

      nie zgodzę się zatem że to był czas stracony. ja nadal jestem zadowlony z tego że przestawiłem się na korzystanie z Vima. mój mózg pracuje inaczej w czasie edytowania dokumentów, palce układają się same w komendy. ten proces jest dla mnie totalnnie przezroczysty. trudno wytłumaczyć komuś a czym to polega - samemu trzeba osiągnąć w tym sprawność.

      jeśli ktoś nie chce - jego sprawa. namawiać nie mam zamiaru :) nie czuję się ewangelizatorem Vima. i nie uważam nawet że każdy powinien próbować. tak samo jak programowania funkcyjnego :)

  •  

    pokaż komentarz

    Jeśli ktoś by potrzebował to wklejam pokazywane komendy:
    e = end (koniec, tutaj: słowa)
    b = beginning (początek)
    $ = skok na koniec wiersza
    ^ = skok na początek wiersza
    G = skocz na koniec pliku
    gg = skocz na początek pliku
    7G = skocz do 7 linii
    :3 <enter> = skocz do linni 3
    / <słowo> = szukaj (do przodu)
    ? <słowo> = szukaj (do tyłu)

    pro tip:
    Często jest tak że mała litera robi akcję X a duża <shift> litera przeciwieństwo X

    :set incsearch - szukanie incrementalne czyli pokazuje w locie co znalazło
    n = następny (next) wynik
    N - poprzedni wynik
    :set hlsearch - wyświetla wszystkie znalezione wzorce
    :nohl - wyłącz podświetlenie
    i = wstaw (insert) tekst
    a = dodaj (append) tekst
    A = dodaj na końcu wiersza
    u = confij akcję (undo)
    ^R = [CTRL+r] powtórz (redo)
    o = otwiera (open) nowy paragraf poniżej
    O = nowy paragraf (linię wyżej)
    x = usuń znak spod kursora
    r <znak_zamiany> = zamiana (replace) znaku
    c = większa zamiana (change). Używamy gdy zmieniamy coś więcej jak jedna literę.
    R = podmienia kolejną literę aż naciśniesz <ESC>
    t = aż do(to/till)
    :set autoident = automatyczne wcięcie
    dd = usuwanie (delete) linni
    d5d = usuwa 5 linijek
    i - w środku(in/inside) np ci{ = zmień wszystko w tych nawiasach
    * = skocz do innych wystąpień tego słowa
    % = skocz do odpowiadającego nawiasu
    V = zaznacz tekst (cała linia)
    v = swobodne zaznaczenie
    yy = skopiuj (yanks) linię
    p = wklej (paste)
    P = wklej wyżej
    :q = wyjdź
    :w = zapisz
    :wq = zapisz i wyjdź