Konuşma tanıma ile kullanmak için bir emacs uzantısı yazıyorum ve belirli bir özellik için yardım arıyorum. Konuşma tanıyıcısının (Dragon) tutarlı bir şekilde kötü tanıdığı bazı kelimeler - kaç kez antrenman yaptığınız önemli değil, sadece belirli kelimeleri tanımayı emiyor. Aynı zamanda genellikle bir konu üzerine yazarken veya kodlama yaparken aynı kelimeleri tekrar tekrar kullanacaksınız.
Bu yüzden kelimelerin arabellekte nasıl işlendiğini değiştirmek için yer paylaşımları kullanan bir mod yazdım. Kelimede rastgele bir harf alır, rastgele bir rengin altını çizer ve üstüne rastgele bir aksan işareti (aksan, işaret, vb.) Yerleştirir. İşte bir ekran görüntüsü (işaretleri / alt çizgileri görmek için muhtemelen yakınlaştırmanız gerekecektir):
Sonra "mor p saç" diyebilirsiniz ve "a" nın altında mor bir alt çizgi olan kelimeyi saça benzeyen aksan işaretiyle arayacak ve sizin için bu kelimeyi yazacaktır. Yani yukarıdaki ekran görüntüsünde emacs'ın sizin için "regexp-quote" yazmasına neden olacağını söyleyerek.
Buradaki fikir, tanıyıcıyı tanımakta sürekli olarak iyi olan sınırlı bir kelime kümesi kullanarak, daha önce kullandığınız herhangi bir kelimeyi ifade etmenizi sağlar.
Oldukça iyi çalışıyor, ancak bazen bir çarpışma var. Bunu yapmak için tutarlı bir şekilde kelimelere atıfta bulunmayı öğrenebilirim (random)
. Sadece 6 kolayca ayırt edilebilir renk buldum (alt çizgi sadece bir karakter genişliğinde ve tek bir piksel kalınlığında zor) ve 3 kolayca ayırt edilebilir aksan işareti (birbirinden ayırt etmek kolay ve aynı zamanda yukarıdaki alt çizgiyle karıştırılamaz) satırını veya alt çizgiyle üst üste bindirme).
Çarpışma sıklığını azaltmak için oluşturmayı değiştirmek için daha fazla yola ihtiyacım var. İdeal olarak bir oluşturma değişikliği:
- Metnin geri kalanından sarsılmaz. Bu, örneğin ters video özelliğini reddetmeme neden oldu.
- Diğer değişikliklerle kolayca karıştırılmamalıdır. Üst çizgiler, önceki satırdaki alt çizgilerle kolayca karıştırılır. Yazı tipi boyutunuz pratik olarak büyük olmadıkça birçok aksan işareti benzer görünür.
- Diğer değişikliklerin olduğu yere uzamsal olarak yaklaşın. Şu anda gözüm hedefleme karakterini bulduktan sonra tüm bilgiler orada, işaretçi, alt çizgi ve harf.
- Diyakritik işaretleri doğru bir şekilde sabitleyen sabit genişlikli bir yazı tipiyle (kodlama için gerekli) güzel çalışın (işaretlerin doğru bir şekilde oluşturulması için Consolas'tan DejaVu Sans Mono'ya geçmek zorunda kaldım)
- Latin alfabesi harfleri üzerinde çalışmak. Örneğin arapça birleştirici işaretler vardır, ancak latin alfabesi karakterleri üzerinde birleştirilmezler.
- Sözdizimi vurgulaması için zaten kullanıldığından, harf rengini değiştirmeyin.
- Aslında emacs lisp ile emacs yapılabilir;)
Belki de yeni olasılıkları açmak için kötüye kullanılabilen oluşturmayı kontrol eden özel unicode karakterler vardır? Ya da daha fazla rengi kolayca ayırt edebilmem için alt çizgileri kalınlaştırmanın bir yolu mu? Veya unicode dışında karakterlerin üstünde işaretler oluşturmanıza izin veren diğer bazı belirsiz emacs özelliği?
(char-to-string ?\uFEFF)
ve diğeri azaltılmış bir hedef karakterdir her ikisi de sığacak şekilde boyutlandırın. Başka bir fikir , kütüphanede kullanılana benzer dikey bir çarpma ( bazı yazı tiplerinde kullanılabilir, ancak hepsi değil) kullanmak olacaktır.vline.el
Emacswiki.org/emacs/VlineMode