Portál AbcLinuxu, 14. května 2025 00:44

Dotaz: Vim vkládá zákeřné neviditelné znaky

17.2.2010 17:26 imploder | skóre: 11
Vim vkládá zákeřné neviditelné znaky
Přečteno: 1456×
Odpovědět | Admin
Příloha:
V poslední době se mi často stává, že napíšu program a on nefunguje, protože v souboru jsou nějaké špatné neviditelné znaky. C++ aspoň hlásí, že na některém řádku je "stray characters \xxx, \xxx", ale PHP prostě hodí nesmyslně někde parse error.

Odhalím je zkopírováním kódu do příspěvku na djpw.cz, v náhledu jsou vidět (viz příloha). Nechci ale řešit tyhle zbytečné problémy. Mám dojem, že to počítač dělá naschvál, já takové znaky na klávesnici ani nemám.

Setkal se s tím někdo z vás? Jde nějak ve Vimu nastavit, aby všechny bílé znaky kromě mezer, tabulátorů a konců řádků nějak vyznačoval (aby ti hajzli byli vidět)?

Díky

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.2.2010 17:37 l4m4
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vim sám od sebe nezlomitelné mezery nevkládá, takže něco na tvé klávesnici je píše.

Jinak tvůj problém řeší (kromě seznámení se s layoutem klávesnice a jeho případnou úpravou)
syn match Space ' '
hi link Space Error
kde v apostrofech je ta nezlomitelná mezera.
Řešení 1× (imploder (tazatel))
17.2.2010 17:38 l4m4
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Jo, speciálně pro nezlomitelnou mezeru je možno použít listchars, viz
:h 'list
17.2.2010 21:07 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Jsou to vlastně 2 bajty co se vkládá: '\302' a '\240'. Vloží se oba najednou, když zmáčknu pravý alt+mezerník. V utf8 se ty 2 bajty zobrazí jako jeden znak: tvrdá mezera.

Listchars na znaky jako tabulátor funguje, ale když tam dám ten znak "tvrdá mezera", tak zahlásí chybu:
E474: Invalid argument: listchars=' ':'^'

17.2.2010 21:09 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Jj, v manuálu je speciální nbsp:c na tvrdou mezeru - tak to funguje. Dík za tip.
18.2.2010 12:18 Dadam | skóre: 12 | blog: dadamovo
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Můžu hádat? Dělá to po znacích, které zapisuješ jako Alt+něco a následuje je mezera? Dlouho držíš Alt, taky s tím mám problémy...
A i B mají svoje výhody a nevýhody. Vyberte si to, co vám vyhovuje víc, a necpěte A tam, kam patří B.
19.2.2010 17:12 imploder | skóre: 11
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Přesně tak. Dělá to třeba při psaní zobáčků (alt+čárka, alt+tečka) následovaných mezerou. Teď je vidím jinak (jako modré '='), takže si jich všimnu.
19.2.2010 18:56 l4m4
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Zobáčky se píší Shift-čárka, Shift-tečka...

Kde jsou ty časy, kdy programátoři používali programátorskou klávesnici a nenechali by si zmršit půlku layoutu podle českého psacího stroje jen proto, aby měli v horní řadě česká písmena.
19.2.2010 19:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Vim vkládá zákeřné neviditelné znaky
Bez českých písmen v horní řadě se ale celkem blbě píše česky. A i programátoři potřebují psát česky…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.