2010-06-05 21 views
5

Chciałbym wiedzieć, czy można zmienić kod R w ESS. Używanie wyszukiwania i zamiany w Emacsie nie wydaje się być dobrą alternatywą.Refaktoryzacja kodu R za pomocą ESS/R

+0

co dokładnie chcesz osiągnąć? czy możesz podać przykład? –

+1

Zmiana nazwy zmiennych. Można to łatwo zrobić za pomocą wtyczki statet of eclipse, ale nie w ess. – ggg

+0

Refaktoryzacja AFAIK w Eclipse znacznie wyprzedza proces refaktoryzacji w Emacs. Ogólnie Eclipse rozumie język, podczas gdy Emacs (rodzaj) rozumie składnię (rodzaj). Ale z jakiegoś powodu nadal używam Emacsa do wszystkiego oprócz Javy. –

Odpowiedz

6

Sam ESS nie zapewnia żadnych obiektów do refaktoryzacji. Zamiast tego możesz użyć funkcji emacs.

Oto przykład, jak zastąpić wszystkie słowa zaczynające się od "xxx" i kończąc na "yyy" na "zzzzzz" we wszystkich otwartych plikach R w katalogu projektu.

  • Cx d (wprowadzić Dired)

  • % mr $ (znak wszystkie pliki kończące się na R lub R)

  • Q (wprowadzić dired-to-query-replace-regexp)
  • typ xxx. * Zzz i zzzzzz w kura poprosiła o wzory zastępcze.
  • przyjąć, pomiń z y, n

Here to kompletny poradnik, jak szukać, zastąpić w wielu plikach. oraz sposób zapisywania wszystkich zmodyfikowanych buforów przy użyciu ibuffer.

+0

Refaktoryzacja w dobrym IDE jest znacznie bardziej wyrafinowana niż znajdowanie i zastępowanie tekstu. Na przykład możesz zmienić nazwę metody w klasie 'Foo' z' value' na 'getValue', a ona znajdzie wszystkie instancje gdzie' Foo.value' zostanie wywołane (poprawnie obsługuje podklasy 'Foo'), zmieniając ich nazwy na' Foo.getValue', bez dotykania łańcuchów "wartości" w niepowiązanych miejscach.IDE musi w pełni zrozumieć kod, aby było to możliwe. –

2

W Emacs można wykonać wyszukiwanie zastępując M-%, a następnie ! zastąpi każde wystąpienie w bieżącym buforze.

Jeśli tego nie chcesz, możesz to wyjaśnić, czy możesz wyjaśnić (edytować komentarz lub komentarz tutaj), co robi Statet i co dokładnie chcesz robić w Emacs + ESS?

Powiązane problemy