Всем привет, решил для себя что нужно освоить слепой набор и зависал 3 дня подряд по 8 часов на klava.org, неплохо так освоил, могу написать текст любимой песни в слепую, решил я попробовать написать первые строчки кода используя новый метод и был в шоке, насколько не удобно писать цифры и знаки типа (), {}, =>, [], $, !, и конечно же перемещаться по коду(vscode использую), вопрос в том, как вы перемещаетесь по коду если руки находятся в специальном положении? это же дико не удобно бегать туда и обратно к стрелкам, если со знаками и цифрами ещё более-менее понятно надо привыкнуть и потом скорость возрастет, так вот со стрелками не понятно, мышку не использую. И самое страшное, теперь не могу вернуться обратно к старому методу набора, пальцы быстро забыли)))
Дмитрий: про vi, vim слышал, даже пришлось посмотреть видосики, но там то всё понятно, мне интересно как решается проблема в обычных редакторах или ide :) и есть ли вообще проблема или я сам себе внушил.
Пользуюсь слепым набором уже 5 месяцев, тренировался на vse10.ru (лучшее из того, что я пробовал), использую qwerty-раскладку, на русской сейчас порядка 300 символов в минуту набираю, на латинской порядка 200. Использую все 10 пальцев, дико удобно, всем советую. По поводу навигации: я использую Vintage Mode в SublimeText, который эмулирует Vim. Две недели привыкания и скорость навигации по коду увеличилась довольно сильно. При наборе всяких (), {}, =>, [], $, ! так же на клавиатуру не смотрю, пальцы сами привыкли недели через две.
Не использую слепой набор для кода, т.к. не нужно.
А вы всегда пишете код как диктант? А думать когда?
У меня не уходит много времени на именно написание, гораздо больше занимает разнообразный анализ, тестирование и отладка.
к примеру я набираю funс автокомплит помогает мне и делает function() курсор оказывается внутри круглых скобок function(то есть тут) и мне нужно мизинцем дотянуться до стрелочки или вообще переместить руку на право к стрелочкам чтобы убрать курсор оттуда, потом обратно положить руку в исходное положение и продолжить набирать {} чтобы вышло function() {}. Это с непривычки я так заморачиваюсь? раньше даже не задумывался об этом
Печать 10 пальцами очень удобна (как на русском, так и на английском). Проблем с цифрами нет, т.к. пальцы движутся по наклонной прямой (1-q-a-z, 2-w-s-x...). Средние пальцы обслуживают по два ряда. Мизинцам достаются все боковые клавиши.
Для перемещения по тексту мышь очень удобна.
Руки уже на автомате находятся в определенном положении для удобства печати и быстроты доступа к клавишам.
Левая рука: ЙЦ У(либо А), мизинец - левый шифт, большой палец - Пробел
клавиатура повернута в сторону левой руки, так что рука располагается прямо (кисть не сгибается)
Права рука : ОШЩ, ЬЛД Ж, ЛЩЗ ЖЭ, БДЖ
большой палец - пробел.
т.е. правая рука как на этой картинке:
лучше не привыкать к плохому
вполне можно использовать нормальную клаву. а то эти эргономные перестанут выпускать - надо будет переучиваться? а если сел за чужой комп, или своя клава сломалась? или на работу пошел, работу работать?
У меня не получается думать над кодом меньше, чем его печатать, а так как думаю я не быстро, методики 100 пальцевого слепого набора не использую. Большую часть кода набираю вслепую, однако на скобки, апострофы и прочие символы посматриваю перед нажатием.
Ну ты же не по буквам думаешь. Чтобы была какая нибудь зависимость между обдумыванием и набором.
Придумал конструкцию какую надо - и тут же мгновенно набрал строчку.
blugamire: Если мысль идет быстрее кода, я просто использую короткие названия переменных) И мысленно матерюсь на обилие бесполезных скобочек в списках питона и прочие времясжигающие конструкции
x67: Удобнее делать списки так. Набираете три <">, редактор автоподставляет три завершающие, далее:
lst = """ \
элемент1
элемент2
""".splitlines()
Со strip + чистка пустых строк:
def lines2list(text):
return [p.strip() for p in text.splitlines() if p.strip() != '']
Два элемента с разделителем ';':
text = """
abc@gmail.com ; 3uEZPYf1KG3v
klmn@gmail.com;3dg
"""
def linesTwoElements2list(text):
text = [p.partition(';')[0::2] for p in text.splitlines()]
return [[s[0].strip(), s[1].strip()] for s in text if s[0].strip() != '']
А еще в редакторах автоподстановка есть. В PyCharm — Live Templates. Например "compl" - подставляется шаблон, и курсор ставится в позиции где вводятся данные.
bl: я использую PyCharm, да, автоподстановка есть, но это ничего не меняет - вместо того, что бы дотянуться до запятой, приходится тянуться к стрелочкам или home/end. Если посмотреть, как обычно многомерные массивы реализованы в других ЯП или в numpy, то становится крайне тяжело понять создателей в этом вопросе. Хотя кто-то пытался объяснить это, но для меня на тот момент ответ этого человека показался неубедительным.
А за ваше предложение делать все через строки вас же гринписовцы заживо сожгут) Да и навряд ли кто-то оценит такой медленный, громоздкий и бесполезный код. Особенно если работать надо с числами
x67: По Live template, боюсь вы не понимаете о чём говорите. Там автопереключение полей по Enter или tab. Например, вводите "compli" → имя переменной → enter → имя → enter и т.д.
x67: По созданию списков построчно через splitlines().
Возможно от специфики кода зависит. Мне крайне удобно. У меня скрипты не меняются, зато постоянные изменения в этих строках (это заголовки статей, url и т.п.).
Или что тоже самое, списки находятся в файлах, и при импорте опять же дробятся .splitlines().
x67: В Python нормально всё с форматом многомерных массивов, также как в др. языках. Причём нет мозолящих глаза символов, вроде '$' перед каждой переменной, которые заморочно вводить через shift, или длинного кода как в других языках, множества скобок и ';'.
Если много работы с числами, т.ч. нужны многомерные массивы, то может лучше использовать pandas и numpy. Или лучше организовать работу с базой данных, где они хранятся, чтобы вообще не думать о многомерности.
При работе с арифметикой, надо тянуться к правой Grey клавиатуре. Ну или морочится с shift'ом для ввода [*+], при этом по-любому смотреть на клавиатуру, чтобы не промахнуться.
Математика не любит суеты. Абсолютно согласен, что не нужен метод слепой печати в 500 с/мин, если надо вдумчиво ввести арифметическую формулу для значений многомерных массивов.
Будет быстрее поместить её в именованную формулу/метод в личной библиотеке функций, и просто вызывать потом по имени.