Editor de código fuente para Windows que me permite configurar una fuente para cada script Unicode

Trabajo con código fuente y lenguajes exóticos del mundo.

Quiero editar mi código fuente en una fuente monoespaciada.

Pero también quiero poder incluir texto Unicode arbitrario en scripts raros que solo tengan una o dos fuentes para elegir.

La mayoría de los editores de código fuente solo le permiten elegir una sola fuente simple.

(Cuando digo idiomas exóticos, me refiero a idiomas mucho más raros que el chino, el ruso o el árabe. Por lo tanto, es posible que los editores que los admitan específicamente no satisfagan mis necesidades).

Respuestas (2)

En lugar de tratar de encontrar un IDE o editor que permita que diferentes proyectos/archivos usen diferentes fuentes sin intentar encontrar y usar una fuente Mono Spaced que cubra todos los idiomas requeridos.

Si bien no es la fuente más bonita que conozco, siempre puede descargar e instalar Unifont y configurarla como su editor de código en cualquier editor de código que admita UTF-8. Es monoespaciado, gratuito, GPL 2+ con la excepción de incrustación de fuentes GNU . Funciona en una variedad de máquinas y tiene una amplia gama de páginas de códigos compatibles y actualmente 114,428 glifos en total en este momento.

Cobertura a partir de la versión 8.0.0.1

Plano multilingüe básico Unicode

  Covered      Range       Script
  -------      -----       ------
   100.0%  U+0000..U+007F  C0 Controls and Basic Latin
   100.0%  U+0080..U+00FF  C1 Controls and Latin-1 Supplement
   100.0%  U+0100..U+017F  Latin Extended - A
   100.0%  U+0180..U+024F  Latin Extended - B
   100.0%  U+0250..U+02AF  IPA Extensions
   100.0%  U+02B0..U+02FF  Spacing Modifier Letters
   100.0%  U+0300..U+036F  Combining Diacritical Marks
   100.0%  U+0370..U+03FF  Greek and Coptic
   100.0%  U+0400..U+04FF  Cyrillic
   100.0%  U+0500..U+052F  Cyrillic Supplement
   100.0%  U+0530..U+058F  Armenian
   100.0%  U+0590..U+05FF  Hebrew
   100.0%  U+0600..U+06FF  Arabic
   100.0%  U+0700..U+074F  Syriac
   100.0%  U+0750..U+077F  Arabic Supplement
   100.0%  U+0780..U+07BF  Thaana
   100.0%  U+07C0..U+07FF  N'Ko
   100.0%  U+0800..U+083F  Samaritan
   100.0%  U+0840..U+085F  Mandaic
   100.0%  U+0860..U+089F  Unassigned
   100.0%  U+08A0..U+08FF  Arabic Extended - A
   100.0%  U+0900..U+097F  Devanagari
   100.0%  U+0980..U+09FF  Bengali
   100.0%  U+0A00..U+0A7F  Gurmukhi
   100.0%  U+0A80..U+0AFF  Gujarati
   100.0%  U+0B00..U+0B7F  Oriya
   100.0%  U+0B80..U+0BFF  Tamil
   100.0%  U+0C00..U+0C7F  Telugu
   100.0%  U+0C80..U+0CFF  Kannada
   100.0%  U+0D00..U+0D7F  Malayalam
   100.0%  U+0D80..U+0DFF  Sinhala
   100.0%  U+0E00..U+0E7F  Thai
   100.0%  U+0E80..U+0EFF  Lao
   100.0%  U+0F00..U+0FFF  Tibetan
   100.0%  U+1000..U+109F  Myanmar
   100.0%  U+10A0..U+10FF  Georgian
   100.0%  U+1100..U+11FF  Hangul Jamo
   100.0%  U+1200..U+137F  Ethiopic
   100.0%  U+1380..U+139F  Ethiopic Supplement
   100.0%  U+13A0..U+13FF  Cherokee
   100.0%  U+1400..U+167F  Unified Canadian Aboriginal Syllabics
   100.0%  U+1680..U+169F  Ogham
   100.0%  U+16A0..U+16FF  Runic
   100.0%  U+1700..U+171F  Tagalog
   100.0%  U+1720..U+173F  Hanunoo
   100.0%  U+1740..U+175F  Buhid
   100.0%  U+1760..U+177F  Tagbanwa
   100.0%  U+1780..U+17FF  Khmer
   100.0%  U+1800..U+18AF  Mongolian
   100.0%  U+18B0..U+18FF  Unified Canadian Aboriginal Syllabics Extended
   100.0%  U+1900..U+194F  Limbu
   100.0%  U+1950..U+197F  Tai Le
   100.0%  U+1980..U+19DF  New Tai Lue
   100.0%  U+19E0..U+19FF  Khmer Symbols
   100.0%  U+1A00..U+1A1F  Buginese
   100.0%  U+1A20..U+1AAF  Tai Tham
   100.0%  U+1AB0..U+1AFF  Combining Diacritical Marks Extended
   100.0%  U+1B00..U+1B7F  Balinese
   100.0%  U+1B80..U+1BBF  Sundanese
   100.0%  U+1BC0..U+1BFF  Batak
   100.0%  U+1C00..U+1C4F  Lepcha
   100.0%  U+1C50..U+1C7F  Ol Chiki
   100.0%  U+1C80..U+1CBF  Unassigned
   100.0%  U+1CC0..U+1CCF  Sundanese Supplement
   100.0%  U+1CD0..U+1CFF  Vedic Extensions
   100.0%  U+1D00..U+1D7F  Phonetic Extensions
   100.0%  U+1D80..U+1DBF  Phonetic Extensions Supplement
   100.0%  U+1DC0..U+1DFF  Combining Diacritical Marks Supplement
   100.0%  U+1E00..U+1EFF  Latin Extended Additional
   100.0%  U+1F00..U+1FFF  Greek Extended
   100.0%  U+2000..U+206F  General Punctuation
   100.0%  U+2070..U+209F  Superscripts and Subscripts
   100.0%  U+20A0..U+20CF  Currency Symbols
   100.0%  U+20D0..U+20FF  Combining Diacritical Marks for Symbols
   100.0%  U+2100..U+214F  Letterlike Symbols
   100.0%  U+2150..U+218F  Number Forms
   100.0%  U+2190..U+21FF  Arrows
   100.0%  U+2200..U+22FF  Mathematical Operators
   100.0%  U+2300..U+23FF  Miscellaneous Technical
   100.0%  U+2400..U+243F  Control Pictures
   100.0%  U+2440..U+245F  Optical Character Recognition
   100.0%  U+2460..U+24FF  Enclosed Alphanumerics
   100.0%  U+2500..U+257F  Box Drawing
   100.0%  U+2580..U+259F  Block Elements
   100.0%  U+25A0..U+25FF  Geometric Shapes
   100.0%  U+2600..U+26FF  Miscellaneous Symbols
   100.0%  U+2700..U+27BF  Dingbats
   100.0%  U+27C0..U+27EF  Miscellaneous Mathematical Symbols - A
   100.0%  U+27F0..U+27FF  Supplemental Arrows - A
   100.0%  U+2800..U+28FF  Braille Patterns
   100.0%  U+2900..U+297F  Supplemental Arrows - B
   100.0%  U+2980..U+29FF  Miscellaneous Mathematical Symbols - B
   100.0%  U+2A00..U+2AFF  Supplemental Mathematical Operators
   100.0%  U+2B00..U+2BFF  Miscellaneous Symbols and Arrows
   100.0%  U+2C00..U+2C5F  Glagolithic
   100.0%  U+2C60..U+2C7F  Latin Extended C
   100.0%  U+2C80..U+2CFF  Coptic
   100.0%  U+2D00..U+2D2F  Georgian Supplement
   100.0%  U+2D30..U+2D7F  Tifinagh
   100.0%  U+2D80..U+2DDF  Ethiopic Extended
   100.0%  U+2DE0..U+2DFF  Unassigned
   100.0%  U+2E00..U+2E7F  Supplemental Punctuation
   100.0%  U+2E80..U+2EFF  CJK Radicals Supplement
   100.0%  U+2F00..U+2FDF  Kangxi Radicals
   100.0%  U+2FE0..U+2FEF  Unassigned
   100.0%  U+2FF0..U+2FFF  Ideographic Description Characters
   100.0%  U+3000..U+303F  CJK Symbols and Punctuation
   100.0%  U+3040..U+309F  Hiragana
   100.0%  U+30A0..U+30FF  Katakana
   100.0%  U+3100..U+312F  Bopomofo
   100.0%  U+3130..U+318F  Hangul Compatibility Jamo
   100.0%  U+3190..U+319F  Kanbun
   100.0%  U+31A0..U+31BF  Bopomofo Extended
   100.0%  U+31C0..U+31EF  CJK Strokes
   100.0%  U+31F0..U+31FF  Katakana Phonetic Extensions
   100.0%  U+3200..U+32FF  Enclosed CJK Letters and Months
   100.0%  U+3300..U+33FF  CJK Compatibility
   100.0%  U+3400..U+4DBF  CJK Unified Ideographs Extension A
   100.0%  U+4DC0..U+4DFF  Yijing Hexagram Symbols
   100.0%  U+4E00..U+9FCF  CJK Unified Ideographs
   100.0%  U+9FD0..U+9FFF  Unassigned
   100.0%  U+A000..U+A48F  Yi Syllables
   100.0%  U+A490..U+A4CF  Yi Radicals
   100.0%  U+A4D0..U+A4FF  Lisu
   100.0%  U+A500..U+A63F  Vai
   100.0%  U+A640..U+A69F  Unassigned
   100.0%  U+A6A0..U+A6FF  Bamum
   100.0%  U+A700..U+A71F  Modifier Tone Letters
   100.0%  U+A720..U+A7FF  Latin Extended - D
   100.0%  U+A800..U+A82F  Syloti Nagri
   100.0%  U+A830..U+A83F  Common Indic Number Forms
   100.0%  U+A840..U+A87F  Phags-pa
   100.0%  U+A880..U+A8DF  Saurashtra
   100.0%  U+A8E0..U+A8FF  Devanagari Extended
   100.0%  U+A900..U+A92F  Kayah Li
   100.0%  U+A930..U+A95F  Rejang
   100.0%  U+A960..U+A97F  Hangul Jamo Extended - A
   100.0%  U+A980..U+A9DF  Javanese
   100.0%  U+A9E0..U+A9FF  Myanmar Extended - B
   100.0%  U+AA00..U+AA5F  Cham
   100.0%  U+AA60..U+AA7F  Myanmar Extended - A
   100.0%  U+AA80..U+AADF  Tai Viet
   100.0%  U+AAE0..U+AAFF  Meetei Mayek Extensions
   100.0%  U+AB00..U+AB2F  Ethiopic Extended - A
   100.0%  U+AB30..U+AB6F  Latin Extended - E
   100.0%  U+AB70..U+ABBF  Cherokee Supplement
   100.0%  U+AB70..U+ABBF  Unassigned
   100.0%  U+ABC0..U+ABFF  Meetei Mayek
   100.0%  U+AC00..U+D7AF  Hangul Syllables
   100.0%  U+D7B0..U+D7FF  Hangul Jamo Extended - B
     0.0%  U+D800..U+DFFF  Surrogate Pairs - Not Used
     0.0%  U+E000..U+F8FF  Private Use Area - drawn but not included
   100.0%  U+F900..U+FAFF  CJK Compatibility Ideographs
   100.0%  U+FB00..U+FB4F  Alphabetic Presentation Forms
   100.0%  U+FB50..U+FDFF  Arabic Presentation Forms - A
   100.0%  U+FE00..U+FE0F  Variation Selectors
   100.0%  U+FE10..U+FE1F  Vertical Forms
   100.0%  U+FE20..U+FE2F  Combining Half Marks
   100.0%  U+FE30..U+FE4F  CJK Compatibility Forms
   100.0%  U+FE50..U+FE6F  Small Form Variants
   100.0%  U+FE70..U+FEFF  Arabic Presentation Forms - B
   100.0%  U+FF00..U+FFEF  Halfwidth and Fullwidth Forms
   100.0%  U+FFF0..U+FFFF  Specials

Plano multilingüe suplementario de Unicode

  Covered        Range         Script
  -------        -----         ------
   100.0%  U+010000..U+01007F  Linear B Syllabary
   100.0%  U+010080..U+0100FF  Linear B Ideograms
   100.0%  U+010100..U+01013F  Aegean Numbers
   100.0%  U+010140..U+01018F  Ancient Greek Numbers
   100.0%  U+010190..U+0101CF  Ancient Symbols
   100.0%  U+0101D0..U+0101FF  Phaistos Disc
   100.0%  U+010280..U+01029F  Lycian
   100.0%  U+0102A0..U+0102DF  Carian
   100.0%  U+0102E0..U+0102FF  Coptic Epact Numbers
   100.0%  U+010300..U+01032F  Old Italic
   100.0%  U+010330..U+01034F  Gothic
   100.0%  U+010350..U+01037F  Old Permic
   100.0%  U+010380..U+01039F  Ugaritic
   100.0%  U+0103A0..U+0103DF  Old Persian
   100.0%  U+010400..U+01044F  Deseret
   100.0%  U+010450..U+01047F  Shavian
   100.0%  U+010480..U+0104AF  Osmanya
   100.0%  U+010500..U+01052F  Elbasan
   100.0%  U+010530..U+01056F  Caucasian Albanian
   100.0%  U+010600..U+01077F  Linear A
   100.0%  U+010800..U+01083F  Cypriot Syllabary
   100.0%  U+010840..U+01085F  Imperial Aramaic
   100.0%  U+010860..U+01087F  Palmyrene
   100.0%  U+010880..U+0108AF  Nabataean
   100.0%  U+0108E0..U+0108FF  Hatran
   100.0%  U+010900..U+01091F  Phoenecian
   100.0%  U+010920..U+01093F  Lydian
   100.0%  U+010980..U+01099F  Meroitic Hieroglyphs
   100.0%  U+0109A0..U+0109FF  Meroitic Cursive
   100.0%  U+010A00..U+010A5F  Kharoshthi
   100.0%  U+010A60..U+010A7F  Old South Arabian
   100.0%  U+010A80..U+010A9F  Old North Arabian
   100.0%  U+010AC0..U+010AFF  Manichaean
   100.0%  U+010B00..U+010B3F  Avestan
   100.0%  U+010B40..U+010B5F  Inscriptional Parthian
   100.0%  U+010B60..U+010B7F  Inscriptional Pahlavi
   100.0%  U+010B80..U+010BAF  Psalter Pahlavi
   100.0%  U+010C00..U+010C4F  Old Turkic
   100.0%  U+010C80..U+010CFF  Old Hungarian
   100.0%  U+010E60..U+010E7F  Rumi Numeral Symbols
   100.0%  U+011000..U+01107F  Brahmi
   100.0%  U+011080..U+0110CF  Kaithi
   100.0%  U+0110D0..U+0110FF  Sora Sompeng
   100.0%  U+011100..U+01114F  Chakma
   100.0%  U+011150..U+01117F  Mahajani
   100.0%  U+011180..U+0111DF  Sharada
   100.0%  U+0111E0..U+0111FF  Sinhala Archaic Numbers
   100.0%  U+011200..U+01124F  Khojki
     0.0%  U+011280..U+0112AF  Multani (Pending)
     0.0%  U+0112B0..U+0112FF  Khudawadi (Pending)
     0.0%  U+011300..U+01137F  Grantha (Pending)
     0.0%  U+011480..U+0114DF  Tirhuta (Pending)
   100.0%  U+011580..U+0115FF  Siddham
     0.0%  U+011600..U+01165F  Modi (Pending)
   100.0%  U+011680..U+0116CF  Takri
     0.0%  U+011700..U+01173F  Ahom (Pending)
     0.0%  U+0118A0..U+0118FF  Warang Citi (Pending)
     0.0%  U+011AC0..U+011AFF  Pau Cin Hau (Pending)
     0.0%  U+012000..U+0123FF  Cuneiform*
     0.0%  U+012400..U+01247F  Cuneiform Numbers and Punctuation*
     0.0%  U+012480..U+01254F  Early Dynastic Cuneiform
     0.0%  U+013000..U+01342F  Egyptian Hieroglyphs*
     0.0%  U+016800..U+0168BF  Bamum Supplement*
     0.0%  U+016A40..U+016A6F  Mro (Pending)
     0.0%  U+016AD0..U+016AFF  Bassa Vah (Pending)
   100.0%  U+016B00..U+016B8F  Pahawh Hmong
   100.0%  U+016F00..U+016F9F  Miao
   100.0%  U+01B000..U+01B0FF  Kana Supplement
     0.0%  U+01BC00..U+01BC9F  Duployan
   100.0%  U+01BCA0..U+01BCAF  Shorthand Format Controls
   100.0%  U+01D000..U+01D0FF  Byzantine Musical Symbols
   100.0%  U+01D100..U+01D1FF  Musical Symbols
   100.0%  U+01D200..U+01D24F  Ancient Greek Musical Notation
   100.0%  U+01D300..U+01D35F  Tai Xuan Jing Symbols
   100.0%  U+01D360..U+01D37F  Counting Rod Numerals
   100.0%  U+01D400..U+01D7FF  Mathematical Alphanumeric Symbols (Pending)
     0.0%  U+01D800..U+01DAAF  Sutton SignWriting
     0.0%  U+01E800..U+01E8DF  Mende Kikakui (Pending)
   100.0%  U+01EE00..U+01EEFF  Arabic Mathematical Alphabetic Symbols
   100.0%  U+01F000..U+01F02F  Mahjong Tiles
   100.0%  U+01F030..U+01F09F  Domino Tiles
   100.0%  U+01F0A0..U+01F0FF  Playing Cards
   100.0%  U+01F100..U+01F1FF  Enclosed Alphanumeric Supplement
   100.0%  U+01F200..U+01F2FF  Enclosed Ideographic Supplement
   100.0%  U+01F300..U+01F5FF  Miscellaneous Symbols and Pictographs
   100.0%  U+01F600..U+01F64F  Emoticons
   100.0%  U+01F650..U+01F67F  Ornamental Dingbats
   100.0%  U+01F680..U+01F6FF  Transport and Map Symbols
   100.0%  U+01F700..U+01F77F  Alchemical Symbols
   100.0%  U+01F780..U+01F7FF  Geometric Shapes Extended
   100.0%  U+01F800..U+01F8FF  Supplemental Arrows - C
     0.0%  U+01F900..U+01F9FF  Supplemental Symbols and Pictographs
De alguna manera, pensé que estaba al tanto de todas las fuentes que intentaron algo como esto y las encontré insatisfactorias para mis necesidades. Pero parece que no tengo esta fuente instalada y, de hecho, cubre los scripts que me interesan. Descargando ahora y a punto de evaluar...
De acuerdo, esta fuente seguramente es útil para algunos propósitos, pero parece ser un mapa de bits con un tamaño de solo 12 puntos y no cambia de tamaño bien. La combinación de caracteres solo parece mostrarse como un círculo punteado y falta el resto. Google Chrome se niega a usarlo cuando lo configuro como fuente. Para los idiomas con los que estoy trabajando, muchos de los glifos son difíciles de reconocer. Definitivamente no es una buena fuente para editar código fuente o trabajar con texto en idiomas exóticos.
@hippietrail: es justo: si no tiene objeciones, dejaré esto, ya que puede ser útil para quienes trabajan en otros conjuntos de idiomas.

Emacs configura sus fuentes a través de conjuntos de fuentes . ¿Nada dicho?

Emacs viene con un archivo de muestra llamado HELLOque contiene la palabra "hola" en algunos scripts comunes. Puede mostrarlo con C-h h(presione Ctrl+ Hy luego H). Incluso esos a menudo no son proporcionados por la misma fuente. Puede ejecutar M-x describe-fontset( Alt+ X describe-fontset Enter) para ver qué fuentes se usan para qué puntos de código. Si trabaja con scripts menos comunes, es posible que deba modificar el conjunto de fuentes predeterminado en su archivo de configuración. Los detalles están en el manual de Emacs Lisp ; si no puede resolverlo, hay un sitio completo de Stack Exchange donde puede pedir ayuda¹.

Es posible que desee definir varios conjuntos de fuentes, por ejemplo, uno con la amplitud máxima para escribir textos lingüísticos y otro que sea solo ASCII, de ancho fijo y que ocupe menos espacio en la pantalla para la programación. Si hace esto, vincule el comando mouse-set-fonta una pulsación de tecla o a una combinación de botones del mouse para facilitar el cambio.

Para la programación, Emacs tiene soporte para resaltado de sintaxis, sangría automática, automatización de compilación, finalización de identificadores, búsqueda de documentación y otras características interesantes, algunas de ellas integradas, otras más avanzadas a través de paquetes de terceros.

Emacs es gratuito y de código abierto. Hay archivos binarios oficiales de Windows , así como varias distribuciones de terceros que pueden tener mejores instaladores o útiles herramientas incluidas.

¹ Aviso de divulgación: soy moderador allí.

En realidad, quiero escribir código que contenga caracteres liberales y cadenas en lenguajes inusuales. Quiero que el código tenga un formato monoespaciado en su mayoría, pero estoy feliz de soportar esas cadenas que estropean el formato en la medida en que sea necesario. (Escribiré código de procesamiento de texto).