Pull to refresh

Comments 52

Спасибо, теперь хоть не надо будет в HEX-редакторе смотреть коды символов, чтобы понять на каком языке там буква :)
Да, бывает забудешь переключиться, и напишешь «удыу» вместо else, но это же сразу видно, а так скорее всего с такими проблемами могут столкнуться любители копипаста
Такие проблемы возникают не только с любителями копипаста. Иногда ошибаешься раскладкой, и если имя переменной/метода/свойства, ключа массива и т.д. начинается с «си», часто по ошибке оставляешь русскую «эс» (или другие кириллические символы, которые похожи на латинские) в имени. Еще этот способ может оказаться полезным тем, кто часто работает с чужим кодом — сразу будет видно, если в коде есть кириллица.
Ну так, читайте внимательней. Если я ошибся раскладкой хотел написать contentString.split("-") и посмотрев на экран увидел что-то вроде сщтеутеЫекштпюыздше(Э-Э), я же естественно сотру все и напишу заново, не буду же я оставлять первую букву знаю, что я набрал ее изначально с ошибкой.

Да, кстати и автокомплит не сработает…
Переменная, может быть всего из одно буквы. А если не пишешь код, а исправляешь, то вообще труба.Это моя самая нелюбимая синтаксическая ошибка. И обычно сложность не в том чтобы её поправить, а в том что-бы догадаться, почему формула считает неверно, и тогда шрифт самый классный вариант.
Ну даже в таком случае у меня интерпретатор вывалит нечто вроде

SyntaxError: Non-ASCII character '\xd1' in file script.py on line 3, but no encoding declared
Каждый, ваш интерпретатор и компилятор?
Речь в посте изначально на сколько я понял про PHP

Поэтому я и говорю об интерпретируемых языках, а вам бы изначально надо было написать, что вы имеете ввиду компилируемые.
Автор, на примере PHP, искал решение глобальной проблемы. И его решение, довольно универсально.
Не используйте переменные из одной буквы, которые отличаются от общепринятых названий счетчиков, либо похожи на русские.
А как вообще у вас получилось, что только одна буква в имени переменной оказалась в другой раскладке?
Пишешь например «cat», в русской «сфе», видишь «фе», удаляешь, пишешь «at».
Ну вы же должны понимать, что раз есть «фе» значит и «эс» у вас заместо «си». Вы же начали писать изначально на неправленой раскладке, глупо предполагать, что только первый символ был введен именно с той раскладки которой вы хотели а остальные не стой, при условии, что вы не меняли раскладку впечатывая одно слово.
Да, если бы люди были идеальными существами, всегда способными мыслить трезво и думать в 10 потоков — так бы оно и было. На практике: увидел ты «фе» — думаешь, надо исправить — а параллельно думаешь о том алгоритме, который пишешь. И еще о двух следущих. А в этот момент кто-то в скайп звонит и еще коллега пришел — зовет покурить… И вот ты исправляешь только «фе», потому что бекганд-парсер кода в мозгу пропустил «с» как вроде-бы подходящий символ.
Печально.

Это уже оффтопик, но все же

1. Если вижу ошибку в слове всегда перепечатываю его целиком ( привычка как-то сама собой пришла)
2. Когда серьезно занят всякие IM, почтовики и прочие отвлекалки отключаю
3. Коллеги на меня злятся когда на призыв курить/чай/кофе/Kinekt отвечаю машинально «ага иду» и продолжаю работать. А через полчаса-час говорю ну что идем или нет?
Винда очень медленно переключает раскладки (да еще и через раз), поэтому пока вы нажали ctrl-shift доли секунды остается старая раскладка. За это время вбить С успеваешь легко, а поскольку через мгновение после этого раскладка корректно переключается, все последующие символы идут английскими — и ошибки незаметно. Не раз сталкивался с этим.
Проблему понял, к сожалению сложно было понять причины, так как ни разу такого не случалось.

Вообще, это не нормально. Хотя я пару раз наблюдал такое поведение, но остальное время винда переключает раскладки сразу.
подтверждаю, у меня очень часто такое
возможно я слишком быстро начинаю писать после переключения
а может потмоу что моя не родная для винды (стороння прога) переключалка тормозит: у меня на капс лок переключение стоит
У меня нет сторонних переключалок и переключение стоит на Ctrl+Shift, но симптомы те же. Так что дело не в переключалках.
Набираю быстро и иногда забавно наблюдать: переключил раскладку, начинаешь набирать и видишь, как первые 1-3 символа выходят в старой раскладке, а остальные — уже в новой. :)
Хочу уточнить — не в имени переменной, а в ключе массива. По сути вопроса — для меня самого это до сих пор загадка. Но факт остается фактом — я провозился с собственноручно написанным кодом (рабочим, нужно было только заменить эту букву) лишние два часа.
У меня как-то было: опечатался в имени переменной, а потом через время увидел, что вместо какой-то буквы нужно поставить «с». Поставил, не заметив, что раскладка была русская, потом долго искал ошибку.
На мой взгляд, вообще нужно запретить в исходном коде любые символы, кроме латиницы.
1эсники вас не поймут)
Большинство сред разработки всё равно замечает, что переменной с таким именем нет. С другой стороны, ограничение на язык ввода не защитит от ошибок в строковых константах.
Ещё, как вариант, можно временно кодировку файла сменить. Кириллические символы уж точно изменятся.
Приятно было увидеть буквы иврита… (:
На что только не пойдет, порой, программист лишь бы не пользоваться нормальными IDE/Редакторами…
Субля, например, выделяет другим цветом зарезервированное слово или название переменной, в которых есть кириллица.
phpStorm подчеркивает красным, и выделяет фоном.
Слезайте со своего нотпада++ =)

Если вы работаете php программистом — это прекрасно! Я вам даже чутка завидую. Однако для некоторых это лишь хобби — и ради него приобретать платные продукты готов не каждый.
Вим, эклипс — все бесплатно
Как раз задумался о подсветке таких символов в виме, не подскажете?
Да и в Эклипсе, если уж и его вспомнили.
Вы меня неверно поняли, я говорил не о подсветке кириллических символов а о бесплатных продуктах.

Ну собственно если вы юзаете какое либо IDE с автокомплитом подобных проблем как у топикстартера быть не должно

Пишу из будущего, есть свободный VS Code с плагином для хоткеев вима

Кто не хочет покупать может пользовать PhpStorm EAP. А чтобы совесть была спокойна еще и баг-репорты строчить.И все будут довольны — пользователь получает достойный продукт на шару, разработчик имеет фидбэк. собственно для того они EAPы и публикуют.
Спасибо за инфу, правда, к сожалению PyCharm по EAP щас недоступен, но буду ждать
Я отказался от EAP. Во первых иногда период заканчивается, а нового билда нет.
Еще были проблемы с часами, так IDE подумала что я ее надуть пытаюсь и работала по пол часа и вырубалась, надо было срочно что-то делать, поставил пиратку, ну а дальше сами понимаете, не настолько я богат чтобы на домашние опенсорс и не очень проекты тратить $100. Хотя некоторых приятных фич в Netbeans не хватает, ну нравиться мне текстовый редактор PHPStorm хоть убей.
Индексы ассоциативных массивов (по сути — строки) тоже выделяет (именно такая проблема была в моем случае)?
Ну да у меня с питоном ключи словарей подсвечивает
"найти такой шрифт, в котором кириллица будет отличаться от латиницы, и задать его для служебных слов, переменных и некоторых других проблемных категорий."(с) Вы же понимаете, что сами данные не реально проверить алгоритмами, поэтому стараетесь нас на этом подловить. В данных (коими ключи являются в Пыхе) могут быть любые символы, и тут вы сами не будете использовать ваш метод со шрифтами. Хотя не буду оспаривать, он силён, и я подобным способом порой проверяю текстовые данные, пришедшие от сторонних систем. Любят они вместо «о» втиснуть русскую или вообще ноль.
Проверяет, даже отдельные слова в camelCase ключах проверяет на грамотность. Это очень удобно и полезно (дёргался глаз когда нибудь, встречая слова «metod» или «mounth» в коде?). Правда почему-то этот спелчекер проверяет строки не всегда, но тем не менее. Я не понимаю, что удерживает людей от установки полноценной IDE вроде Eclipse с PDT или Aptana. Ведь IDE, а не программист, должна заниматься рутинной работой вроде поиска опечаток, глобального переименования идентификатора и прочих, не говоря уж об отладке.
В идее (пхпсторм, пичарм) есть подсветка орфографических ошибок и dict['class'] с первой буквой кириллицей она бы подсветила
Оффтопик: Тот, кто поставил английскую «Си» и русскую «С» на одну клавишу — будет гореть в аду.
Этот сдвиг был после перехода на новую орфографию в 1917, так что тот уже горит с вероятностью 99%
Давно пользую самоправленный BorlandTE fileup123.com/jdspvrvqfl.html

Конечно, шрифт сейчас кажется не самым красивым, но в 90-х он читался неплохо :o)
После перехода на специализированный IDE с автокомплитом, спелчекером, инспектором и прочими плюшками — проблема отпала сама собой. До этого, несколько раз сталкивался с подобным. Считаю крайне неудобно программировать в разных расскладках (имею ввиду комменты по русски). Взял за правило, кодить только на английском.
Взял за правило, кодить только на английском.

Отличное было бы название для статьи :D
Лет 5 назад с помощью редактора шрифтов поправил курьер, поставил по дефолту в обычный нотпад — прекрасно помогает.
Сложноватый у вас Regex вышел, потому что вы работаете с символом\буквой как с окончательным объектом.

А «символ» это всего лишь изображение, картинка для «слабых хьюманов» :). Изображение это задается числовым значением в таблице символов. Ничего не мешает поискать сами символы по диапазону их числовых значений, например вот таким регэкспом:

[^\x00-\x7e]

А шрифт — имхо странная идея. Вы комментарии на русском или другом языке читать не планируете?
Планирую. Поэтому шрифт для комментариев поставил Courier New — там есть и кириллица, и латиница.
Извините, но в npp есть подсветка синтаксиса и подобную ошибку видно сразу
vk.cc/OWu85
Да, если это зарезервированное слово или встроенная функция. И нет, если это что-то другое, как, например, имя переменной, свойства, функции, метода или строка.
Подписался на комментарии в надежде, что кто-нибудь предложит шрифт, более подходящий для испольщования в эмуляторе терминала, чем SimSun-ExtB.
Sign up to leave a comment.

Articles