2011-01-25 6 views
15

Używam emacs do edycji mojego kodu SQL. Pracuję 99% czasu na kodzie plggsql postgresql. Wszystkie moje pliki z rozszerzeniem .sql zawierają postgresql. Ciekaw jestem, czy można ustawić sql-highlight-postgres-keywords SQL podświetlając domyślnie zamiast ANSI SQL, ponieważ przełączanie trybu przy każdym otwarciu pliku jest denerwujące.Tworzenie emacsa w celu podkreślenia składni postgresql domyślnie

+1

Czy 'sql-highlight-postgres-keywords' jest zmienną? Nie mogę go znaleźć w Emacsie 23. Użyłem 'M-x sql-mode' który wydawał się działać, ale to było tylko jednorazowe. – SabreWolfy

+1

Używam sql-highlight- -słowa kluczowe w trybie sql do zmiany podświetlania składni w zależności od DB. jeśli nie jesteś w trybie sql, nie będziesz mógł z niego korzystać. –

+0

^Dzięki. Tak, działa w trybie sql :) – SabreWolfy

Odpowiedz

14

Zazwyczaj w emacs, jeśli chcesz zmienić ustawienia za każdym razem, gdy jakiś tryb jest otwarty, używasz haka. Coś podobnego do tego powinno działać:

(add-to-list 'auto-mode-alist 
      '("\\.psql$" . (lambda() 
           (sql-mode) 
           (sql-highlight-postgres-keywords)))) 
+0

Dzięki, wygląda na to, czego szukałem. –

16

Jeśli trzeba pracować z różnymi bazami danych, zamiast haka zawsze przełączyć do PostgreSQL podkreślając, gdy użytkownik otworzy plik .sql, można użyć zmiennych plików Emacs' wyposażone aby ustawić produkt dla pojedynczych plików.

Na przykład, jeśli pierwsza linia pliku .sql jest

-- -*- mode: sql; sql-product: postgres; -*- 

sql-mode automatycznie użyje PostgreSQL podświetlanie.

Pełne dane dotyczące Emacs zmiennych plików here (można również ustawić je w bloku w dowolnym miejscu pliku), oraz wykaz nazw produktów jest prawdopodobnie eaiest znaleźć wykonując M-x sql-set-product, cofając domyślnego ansi i uderzanie TAB, aby zobaczyć lista uzupełnień. Przykładami są "mysql", "oracle", "sqlite", itp. (Około tuzina w mojej instalacji).

Powiązane problemy