Emacs + ruby

Zamieniłem ostatnio vima na emacsa i jak na razie jest całkiem fajnie, ale irytuje mnie kilka rzeczy.

Używam emacs-starter-kit, w razie czego tutaj są moje dodatki: https://github.com/drogus/emacs-starter-kit/blob/master/drogus.el

Jedna z rzeczy, która mnie aktualnie wpienia i nie mogę nigdzie znaleźć jak to poprawić:

[code]def something

zamiast takiego formatowania

@something ||= begin
# …
end

dostaję takie

@something ||= begin
# …
end[/code]
Wie ktoś jak to można zmienić?

EDIT: EMACS RULZ!

Najpewniej trzeba poprawić ruby-mode. Też mnie to czasem irytowało, jednak na tyle rzadko, że nigdy nie chciało mi się w tym grzebać.

Prawidłowo! :stuck_out_tongue:

Dzięki za info, będę walczył :wink:

Możesz zhakować emacsa sendmailem w ten sposób:

  1. Lokalizujesz ruby-mode.el

  2. Albo zmieniasz w tym pliku albo nadpisujesz w swojej konfiguracji funkcję ruby-calculate-indent (gdzie całe obliczanie aktualnego wcięcia się odbywa) czymś takim (nie zapomnij skompilować do .elc jeśli Twój emacs tego używa)

  3. Chodzi o zmianę zachowania “begin” na takie jak ma “do”, odszukujesz w tej fukcji (looking-at “do\…” i zamieniasz na (looking-at "do\|begin\…)
    (iter block is a special case)

  4. Jeśli nie chcesz zmieniać konfiguracji na stałe tylko jednorazowo na czas trwania sesji to wklejasz tego gista do bufora scratch i M-x eval-current-buffer

Zmieniłeś emacsa na vima czy na odwrót bo trochę niejasno napisałeś i jeszcze ktoś mógłby pomyśleć, że się przesiadłeś z najpotężniejszego edytora na jakiś marny substytut polecany przez adminów tylko dlatego, że nie trzeba go instalować w Centosie bo już jest ? ;p

Do vim ściągnij sobie config i dodatki jakiegoś ,guru’’ jest ich sporo na github i kilka wątków z chwaleniem się swoim vimrc było. Sam używam vim od zawsze i w sumie nigdy takiego problemu nie miałem, więc ciężko powiedzieć gdzie to masz ustawione.

Jeśli jednak chodzi ci o emacsa ;] To tu masz konfigi guru emacsa z UG, doktora W. Bzyla:

https://github.com/wbzyl/emacs-starter-kit

Może znajdziesz coś ciekawego

Hah :smiley:

Już poprawiłem :wink:

Przecież w Centosie nie ma emacsa :>

Gratuluje Drogus!

Od dzisiaj bedziesz tak naprawdę szczesliwym i spelnionym czlowiekiem!

pozdrawiam
Slawek

ps.
aha … zapomnialem dodac, ze w Emacsie caly czas uzywa sie CTRL i ALT wiec mozesz sobie zrobic taka instalacje:
http://www.cb1.com/~john/computing/emacs/handsfree/pedals.html
ja jeszcze do tego nie doroslem - na razie zmienilem Caps Locka na CTRL

http://platypope.org/blog/2006/9/8/i-need-a-cool-european-accent <- Tu jest fajnie wyglądająca implementacja

Posiedziałem ostatnio chwilę nad ruby-mode-1.1 dostarczonym z elpa i poprawiłem to co mnie najbardziej wkurzało:

Dalej zupełnie nie czaję lispa (nie miałem czasu, żeby coś o nim przeczytać, a jak zacząłem się tym bawić byłem offline), więc nie do końca wiem czy to na pewno załatwia wszystkie przypadki, ale jak na razie działa :wink:

@hosiawak: dzięki za naprowadzenie! :slight_smile:

Przed scommitowaniem zmian zrobiłem coś dziwnego i zmiany z elpa nadpisały to co zrobiłem, dlatego powyższy commit poprawia tylko case/when :wink:

Rozmawiałem przy tym z qoobą i okazało się, że moja metoda przy okazji zmieniała wcięcia dla hashy, dlatego prawdopodobnie lepsze jest coś takiego:

Tak przy okazji, jakie robicie wcięcia dla hashy jako argumentów metod:

[code]# tak?
something(:a => b,
:b => c, :d => e)

czy tak?

something(:a => b,
:b => c, :d => e)[/code]

Ja też się zdecydowałem ostatnio na emacsa, a jednym z powodów był emacs lisp - fajny język, z którego mocno czerpie przecież ruby. Używając emacsa, uczymy się emacs lispa. A znając emacs lispa, znamy też clojure:)
Dla tych, którzy nie mają czasu an przeczytanie wprowadzenia na stronie GNU, polecam linki które dostałem od firmowego guru emacsa:
http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html
http://xahlee.org/emacs/elisp.html

Nie tak dawno ludzie masowo przechodzili na Vima, kiedy okazało się, że TextMate jest już passe, a teraz widzę, że czeka nas kolejny exodus na Emacsa. Tempo zmian na tym świecie jest zatrważające :wink:

Ja swojego Vima tak szybko nie oddam :wink:

Dobrze że olewam to hipsterstwo i trzymam się swojego jedita :wink:

Szit no to jestem trochę w tyle bo ja dopiero z TM na Vima się przesiadłem :stuck_out_tongue:
Jak na razie MacVIM + https://github.com/carlhuda/janus wciąga wasze Emacsy nosem…

Flame anyone?

:wink:

…i polecam konfig dla true Vim nazi:

" Use the damn hjkl keys nnoremap <up> <nop> nnoremap <down> <nop> nnoremap <left> <nop> nnoremap <right> <nop>

[quote=czak]…i polecam konfig dla true Vim nazi:

" Use the damn hjkl keys nnoremap <up> <nop> nnoremap <down> <nop> nnoremap <left> <nop> nnoremap <right> <nop>
[/quote]
Chyba dla słabo ogarniętych newbe. hjkl to 1 lekcja vim-a, bez tego to tak jakby wiercić żelbeton wiertarką udarową z wyłączonym udarem. Zresztą w Emacs-ie też unikam efektu stempla pocztowego.

Emacs oraz vim to mocne narzędzia i, imho, najlepiej znać oba.

To jest defence przed słabo ogarniętym newbe siadającym do mojej klawiatury.

Jestem słabym trollem :expressionless: