Unicode karakterler eklenirken bulanık tamamlama


12

C-x 8 RETUnicode karakterleri Unicode adı veya hex koduyla eklemenin bir yolu olarak keşfettim . Tüm Unicode karakter adlarını (henüz?) Ezberlemedim, bu yüzden her zaman doğru karakteri bulamıyorum.

Örneğin, "KAR KAPALI DAĞ" karakteri vardır. Sadece "MOUNTAIN" yazarsam, bu karakter tamamlama listesi görünmez. Tamamlanma listesinde bu belirli karakteri görmek için "KAR" aramayı hatırlamak gerekir.

Tamamlanma içeren herhangi bir şey için İDO'ya bağımlı olan biri olarak, bu esneklik eksikliği oldukça sinir bozucudur. Ben kullanıyorum ido-ubiquitous-mode.

Unicode girişi için IDO benzeri eşleştirmeyi nasıl kullanabilirim? TÜM ŞEYLER için esnek tamamlamayı nasıl kullanabilirim ?

(Daha iyi bir şey olsaydı İDO modundan vazgeçmek iyi olur.)


Aynı sorun için bir geçici çözüm olarak, ben yazın C-q SPC mountain TAB. Bu, herhangi bir karakter adının ilk olmayan kelime olarak "dağ" ile eşleştiği anlamına gelir.
legoscia

1
Göz at emacs.stackexchange.com/a/3139/2094 dümen tabanlı tamamlanması için.
abo-abo

1
Hmm, bu projenin sorun izleyicisinde bildirebileceğiniz bir hata gibi görünüyor .
wasamasa

1
Eğer yazarsanız *cap*mou TAB, tüm tamamlama (lar) ı alırsınız.
Juancho

@Juancho bu doğru, ama istediğim davranış bu değil
rekado

Yanıtlar:


8

@Wasamasa'nın önerdiği gibi , kullanıldığında ido-ubiquitoustamamlanma ile ilgilenmelidir insert-char. 2013'te kapatılan bir hata raporu var , ancak yine de Emacs 24.4 ve ido-ubiquitoussürüm 20140904.1547 ile bu davranışı görüyorum, bu yüzden başka bir hata raporu sundum .

DÜZENLE:

İdame ait ido-ubiquitousbu yazmış:

Tamam, sorunu çözdüm. Çok sayıda unicode karakter var, bu yüzden tamamlama listesi aşılıyor ido-ubiquitous-max-itemsve ido-ubiquitousbu nedenle kendini devre dışı bırakıyor. Sistemimde neredeyse 40 bin tamamlama var ve varsayılan değer 30 ido-ubiquitous-max-itemsbin. 50k olarak ayarlamak benim için idotamamlamayı sağlar insert-char. Bu yüzden özelleştirmeyi deneyin.

Gerçekten, (setq ido-ubiquitous-max-items 50000)düzeltir.


İçin ido-completing-read+, (setq ido-cr+-max-items 50000)bu hatayı düzeltmek için kullanın .
Bach Lien

5

snow capped mountainSadece yazarken dahil olmak için şunları mountyapmak isteyebilirsiniz:

(push '(unicode-name (styles substring)) completion-category-overrides)

Aslında, bu substringstil, arabellek adları için olduğu gibi, unicode adları için varsayılan olarak etkinleştirilmelidir. Belki bunun için lobi yapmalısınız M-x report-emacs-bug.


3

Eğer kullanırsanız Icicles sonra C-x 8 RETsen kullanın sağlayan regexp'in alt dize ya ya bulanık eşleştirme tamamlanması sırasında. Ve birden çok (örneğin basit) kalıplarla eşleştirmek için aşamalı tamamlamayı kullanabilirsiniz .

Seçenek Buna ek olarak, icicle-read-char-by-name-multi-completion-flagolmayan bir nilvarsayılan olarak hangi, o zaman kullanabilirsiniz çoklu tamamlama bunların herhangi bir kombinasyonu karşı maç için:

  • Unicode adı
  • bir onaltılık sayı olarak Unicode kod noktası
  • karakter kendisi (bu metinde göründüğü gibi değil bir tamsayı)

Tamponda gördüğünüz tamamlama adayları *Completions*bu bileşenlerin tümünü içerir - WYSIWYG.

Neden karakterin kendisine karşı maç yapmak istesin ki ? Eski adlar da dahil olmak üzere ilgili Unicode kod noktalarını ve karakter adlarını görmek için. Örneğin, karakter için ` (mezar aksanı) şu iki tamamlama adayını alırsınız:

GRAVE ACCENT      60      `
SPACING GRAVE     60      `

Sanırım bir gün buz sarkıtlarını denemeliyim. Cevabınız için teşekkürler.
rekado

0

Adları normal ifadeyle veya yazdığınız sözcüklerin listesiyle eşleşen tüm Unicode karakterlerini göstermek için apropos-charkitaplıktaki komutu kullanabilirsiniz apu.el. Varsayılan olarak, kelimeler alt dizeler olarak eşleştirilir.

Kibrit listesinde, vurabilir ^için kömürü eklemek Eğer çağrılan tampon içine geçerli satırda gösterilen apropos-charnoktada. Ya da C-yo karakteri öldürme halkasına M-ykopyalamak (veya ikincil seçime kopyalamak için) tuşuna basabilirsiniz . (Karakter REThakkında daha fazla bilgi için tuşuna basın .)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.