2011-01-25 9 views
15

Uso emacs per modificare il mio codice sql. Lavoro al 99% del tempo sul codice postplesql plpgsql. Tutti i miei file con estensione .sql contengono postgresql. Sono curioso c'è un modo per impostare sql-highlight-postgres-keywords SQL evidenziazione predefinita invece di SQL ANSI, perché è abbastanza fastidioso per cambiare modalità ogni volta che apro un file.Creazione di emacs per evidenziare la sintassi postgresql per impostazione predefinita

+1

È 'sql-highlight-postgres-keywords' una variabile? Non riesco a trovarlo in Emacs 23. Ho usato 'M-x sql-mode' che sembrava funzionare, ma era solo una volta. – SabreWolfy

+1

Uso sql-highlight- -keywords in modalità sql per modificare l'evidenziazione della sintassi a seconda del DB. se non sei in sql-mode non sarai in grado di usarlo. –

+0

^Grazie. Sì, funziona in modalità sql :) – SabreWolfy

risposta

14

Di solito in emacs, se si desidera modificare le impostazioni ogni volta che si apre qualche modo, si utilizza un gancio. Qualcosa di simile a questo dovrebbe funzionare:

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

Grazie, sembra che sia quello che stavo cercando. –

16

Se avete bisogno di lavorare con diversi database, piuttosto che utilizzare un gancio per passare sempre a PostgreSQL evidenziazione quando si apre un file sql, è possibile utilizzare le variabili di file Emacs' sono dotate di per impostare il prodotto su una base file per file.

Ad esempio, se la prima riga del file sql è

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

sql-mode utilizzerà automaticamente PostgreSQL evidenziazione.

Tutti i dettagli sulle variabili di Emacs di file here (si può anche impostare in un blocco in qualsiasi parte del file), e l'elenco dei nomi dei prodotti è probabilmente eaiest trovato facendo M-x sql-set-product, backspacing il ansi di default, e colpire TAB per visualizzare la lista di completamento. Gli esempi sono "mysql", "oracle", "sqlite", ecc. (Circa una dozzina nella mia installazione).

Problemi correlati