2010-10-20 19 views
5

q/kdb + dili için bir sözdizimi vurgulama dosyası var ve vim uyumlu bir dosyaya dönüştürmek istiyorum q kodum normalden daha çirkin görünmeyecek.Notepad dönüştürmek + + sözdizimi vim için vurgulama dosyası (veya kimse var mı/kdb + vim sözdizimi vurgulama dosyası?)

Notepad ++ xml sözdizimi vurgulama dosyalarını otomatik olarak dönüştürmek için yardımcı programlar var mı? Etrafa bir göz attım ama hiçbir şey bulamadım.

Alternatif olarak herhangi bir vim q sözdizimi vurgulama dosyası var mı?

cevap

4

Her iki sorunun cevabı hayır (herhangi bir dönüştürücü bilmiyorum ve bir q sözdizimi vurgulama dosyasına sahip değilim), ancak Notepad ++ sözdizimi vurgulama XML biçimi son derece basit görünüyor. Elimde 'Q' var, ama ben website'dan bir tanesine baktım ve çeviri oldukça önemsiz görünüyor. Bu durumda, birlikte işin çoğunu yapabilirdi:

" Remove all the lines that aren't lists of keywords 
" (there doesn't seem to be anything much more complicated 
" than that in the definition file) 
:g!/<Keywords name=/d 
" Convert the lines (fairly poor XML parsing here!) 
:%s/\s*<Keywords name="\([^"]\+\)">\([[:alpha:]_ ]\{-}\)<\/Keywords>/syn keyword \1 \2/ 

Bu satırlar gibi görünen bir sürü oluşturur: Bu durumda (Words1 sözdizimi sınıfını esneteceksiniz

syn keyword Words1 case then do while 

Vim'de vurgulanacak bir şey olmak (veya Vim'de vurgulanacak bir şeye senkronize etmek).

Muhtemelen daha sonra Normal ifadeyle sembollerle ele alabileceği, ancak onları eliyle tıpkı daha kolay olabilir, bu yüzden dönüştürebilir: şudur (

syn match Operators /\<[-!"#$&*,.;[email protected]\\^{|}~+<=>]/ 

:

<Keywords name="Operators">- ! &quot; # $ &amp; * , . ; ? @ \^{ | } ~ + &lt; = &gt;</Keywords> 

içine Bir sözcük sınırını işaretlemek için \<, ardından tüm sembollerin bulunduğu [..] karakter sınıfı.

Daha sonra sadece eklemek gerekir:

if exists("b:current_syntax") 
    finish 
endif 
başında

ve:

let b:current_syntax = "q" 

sonunda.

Elbette, bu size tam olarak ulaşamaz, ancak umarız size istediğiniz sözdizimi dosyasını elde etmeniz için gerekenleri size verecektir.

:help syntax 

ve çalışma zamanı klasörün sözdizimi dizinde örneklere bakarak: mevcut yardım çok şey var.

İyi şanslar!

+0

teşekkürler! Bu bir vim dosyası yapma işlemini kolaylaştırmalı, çok karmaşık görünmüyor. Sadece tembelim. –

7

bir q/KDB + vim sözdizimi vurgulama dosyaları: ipuçları için https://github.com/simongarland/vim

+0

Başka bir şey burada katusk burada kullanılabilir https://github.com/katusk/vim-qkdb-syntax –