Discussion:
emacs - otomatik tamamlama
Zekeriya KOÇ
2007-04-03 13:40:34 UTC
Permalink
Herkese Merhaba,
İşimde emacs ile sql-oracle modunu yoğun bir şekilde kullanıyorum.
Sadece sql anahtar kelimelerinin <TAB> tuşu ile otomatik tamamlanmasını
sağlamanın bir yolur var mıdır acaba? Nereden başlamak gerekir? Büyük
ihtimalle sql.el dosyasında bu konu ile ilgili değişiklik gerekecek diye
tahmin ediyorum ama nereden başlıyacağım hakkında bir bilgi bulamadım.

Fikri olan?

Teşekkürler, iyi çalışmalar.
--
Zekeriya KOÇ - http://zekus.metkoi.com
Volkan YAZICI
2007-04-03 14:24:47 UTC
Permalink
Post by Zekeriya KOÇ
İşimde emacs ile sql-oracle modunu yoğun bir şekilde
kullanıyorum. Sadece sql anahtar kelimelerinin <TAB> tuşu ile otomatik
tamamlanmasını sağlamanın bir yolur var mıdır acaba? Nereden başlamak
gerekir?
Bunun için sanırım sql-mode-abbrev-table tablosunda ilgili
değişiklikleri yapmak yeterli olabilir. Eğer sadece sql-mode'undaki
anahtar kelimeler tamamlansın, diğer major mode'lardaki tamamlamaları
istemiyorum diyorsanız, global-abbrev-table ve local-abbrev-table
tabloları ile oynayabilirsiniz.

Cevap biraz sesli düşünme tarzında oldu ama, umarım yardımcı olur.


İyi çalışmalar.
Zekeriya KOÇ
2007-04-03 20:55:12 UTC
Permalink
Post by Volkan YAZICI
Post by Zekeriya KOÇ
İşimde emacs ile sql-oracle modunu yoğun bir şekilde
kullanıyorum. Sadece sql anahtar kelimelerinin <TAB> tuşu ile otomatik
tamamlanmasını sağlamanın bir yolur var mıdır acaba? Nereden başlamak
gerekir?
Bunun için sanırım sql-mode-abbrev-table tablosunda ilgili
değişiklikleri yapmak yeterli olabilir. Eğer sadece sql-mode'undaki
anahtar kelimeler tamamlansın, diğer major mode'lardaki tamamlamaları
istemiyorum diyorsanız, global-abbrev-table ve local-abbrev-table
tabloları ile oynayabilirsiniz.
sql-mode-abbrev-table tablosuna .emacs dosyamda istediğim kısaltmaları eklediğimde amacıma ulaştım. Sesli düşündüğünüz için teşekkürler.
Örnek olarak ben şu kısaltmaları tercih ettim SQL*Plus kullanırken;

(define-abbrev sql-mode-abbrev-table "sel" "select * from" nil)
(define-abbrev sql-mode-abbrev-table "sc" "select count(*) from" nil)
(define-abbrev sql-mode-abbrev-table "co" "count(*)" nil)
(define-abbrev sql-mode-abbrev-table "se" "select" nil)
(define-abbrev sql-mode-abbrev-table "fr" "from" nil)
(define-abbrev sql-mode-abbrev-table "gr" "group by" nil)
(define-abbrev sql-mode-abbrev-table "od" "order by" nil)
(define-abbrev sql-mode-abbrev-table "wh" "where" nil)
(define-abbrev sql-mode-abbrev-table "de" "delete" nil)
(define-abbrev sql-mode-abbrev-table "be" "between" nil)
(define-abbrev sql-mode-abbrev-table "ha" "having" nil)
(define-abbrev sql-mode-abbrev-table "pl" "police" nil)
(define-abbrev sql-mode-abbrev-table "pd" "polodeyen" nil)
(define-abbrev sql-mode-abbrev-table "ze" "zeyl" nil)
(define-abbrev sql-mode-abbrev-table "tm" "tahsmaster" nil)
(define-abbrev sql-mode-abbrev-table "th" "tahsilat" nil)
(define-abbrev sql-mode-abbrev-table "mf" "mhfis" nil)
(define-abbrev sql-mode-abbrev-table "md" "mhfisdet" nil)
(define-abbrev sql-mode-abbrev-table "up" "update" nil)
Post by Volkan YAZICI
Cevap biraz sesli düşünme tarzında oldu ama, umarım yardımcı olur.
İyi çalışmalar.
_______________________________________________
cs-lisp mailing list
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp
--
Zekeriya KOÇ - http://zekus.metkoi.com
Volkan YAZICI
2007-04-03 21:26:35 UTC
Permalink
Post by Zekeriya KOÇ
(define-abbrev sql-mode-abbrev-table "sel" "select * from" nil)
(define-abbrev sql-mode-abbrev-table "sc" "select count(*) from" nil)
(define-abbrev sql-mode-abbrev-table "co" "count(*)" nil)
(define-abbrev sql-mode-abbrev-table "se" "select" nil)
(define-abbrev sql-mode-abbrev-table "fr" "from" nil)
(define-abbrev sql-mode-abbrev-table "gr" "group by" nil)
(define-abbrev sql-mode-abbrev-table "od" "order by" nil)
...
Nacizane önerim, bu iş için fonksiyon kullanırsanız işiniz epey bir
kolaylaşır. Örneğin benim abbrev.el dosyamdan ufak bir alıntı:

(defun define-abbrev-list (table abbrev-specs)
(loop for spec in abbrev-specs
do (apply 'define-abbrev
(cons table spec))))

(define-abbrev-list
sql-mode-abbrev-table
'(("sel" "select ..." (lambda () ...) ...)
("fro" "from")
...))

Ek olarak, bildiğim kadarı ile DEFINE-ABBREV'in 4. argümanı isteğe
bağlı, o yüzden ayrıca nil olarak belirtmenize gerek yok.)


İyi çalışmalar.

Loading...