Как минимизировать использование клавиш со стрелками при наборе кода?
При вводе кода я обычно закрываю скобки, возвращаюсь внутрь, выхожу на улицу, набираю точку с запятой и т.д.:
Я мог бы начать с (| это карета):
System.out.println()|
Затем идите налево:
System.out.println(|)
Тогда это:
System.out.println(foo()|)
Снова возвращаем пробел:
System.out.println(foo(|))
Печатные цитаты похожи:
System.out.println(foo(""|))
...так далее.
Моя правая рука постоянно перемещается между домашним рядом и клавишами со стрелками. Я пробовал vim, и хотя я знаю основы, мне все еще очень неловко.
Как мне это сделать? Должен ли я просто печатать слева направо (открывающая скобка, затем содержимое, затем закрывающая скобка, затем точка с запятой)?
Благодарю.
12 ответов
Прежде всего, в Vim можно получить большую скорость, используя h
, j
, k
а также l
вместо клавиш со стрелками. См. Изучение Vim the Pragmatic Way для обзора ключей.
Однако в этом случае вам, вероятно, понадобится плагин AutoClose. Он автоматически вставляет закрывающую скобку (или кавычку) вместе с открытием и помещает каретку между ними. Таким образом, вы идете из
System.out.println(|)
в
System.out.println(foo(|))
в
System.out.println(foo("|"))
Если вы тогда напечатаете "))
, каретка будет "перемещаться" по закрывающим символам вместо вставки новых. Хотя, более быстрый способ добраться до конца строки, вероятно, <Esc>A
,
System.out.println(foo(""));
Итак, чтобы подвести итог, вышесказанное можно получить, набрав System.out.println(foo("<Esc>A;
,
Для редактирования парных символов, в отличие от вставки их, см .round.vim.
Ну, это Java. Если вы используете более или менее хорошую IDE, вы должны иметь возможность автозаполнения, таким образом, когда вы наберете "System.out.println" и нажмете клавишу ввода, чтобы принять автозаполнение, отобразятся скобки и каретка будет в середине (о, и там тоже будут цитаты!)
Вы можете сохранить нажатия клавиш, удерживая клавишу Ctrl и используя клавиши со стрелками. Вместо перемещения одного символа он перемещает одно слово за раз. Это также работает, когда забой. Таким образом, Ctrl-Backspace удалит все слово, а не только последний символ.
Если вы уже используете vim, попробуйте поиграть с клавишами h,j,k и l. Они делают то же самое, что и клавиши со стрелками, но намного удобнее. Попытка привыкнуть печатать по порядку, вероятно, также поможет, но это требует определенных усилий.
Попробуйте AutoHotKey и мой скрипт:
*!I::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Up}"
*!K::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Down}"
*!J::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Left}"
*!L::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Right}"
*!U::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Home}"
*!O::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{End}"
*!h::SendInput, % (GetKeyState("Shift", "P") ? "+" : "") (GetKeyState("Ctrl", "P") ? "^" : "") "{Del}"
LAlt & Shift:: ('необязательная строка')
Речь идет о удержании клавиши LALT +, нажав что-то из: i, k,j, l (клавиши со стрелками), u, o (домой, конец) или h (удалить). Последняя строка необязательна, если вы не хотите менять язык клавиатуры. макет от LAlt +Shift
Вы можете использовать его даже в сочетании с модификаторами, такими как shift и ctrl.
наслаждаться;)
Не.
Ваша привычка завершать то, что вы начали - будь то закрывающая скобка, скобка, фигурная скобка или вызов.Close() для сопоставления.Open() или удаление / освобождение вызова для совпадения с вашим новым /malloc - превосходна., Даже если вы намереваетесь "закрыть" свой объект в другом объеме (например, в функции завершения), ваша привычка заставляет задуматься о том, как правильно высвобождать ресурсы.
Да, есть полезные редакторы, которые позволяют вам кодировать быстрее, что вы обязательно должны использовать, но не позволяйте им становиться опорой, которая позволяет вам забыть закрыть объекты / освободить ресурсы.
Прямой ответ на ваш вопрос: большинство хороших редакторов-программистов могут быть настроены / настроены, так что вам просто нужно немного почитать о продвинутой конфигурации редактора по вашему выбору - vim, emacs, редактор Visual Studio.
Я бы полностью порекомендовал vim... так как это сильно поможет! Кроме того, обратите внимание на то, что автоматически закроет ваши скобки, квадратные и фигурные скобки для вас... У меня есть кое-что в vim, которое делает это, и это помогает с этим типом проблемы, потому что я уже в скобках.
Еще один голос за Вима. Кроме того, есть несколько отличных плагинов для более стандартных IDE, которые используют привязки клавиш Vi. Я использую jVI в Netbeans время от времени.
Вы обнаружите, что чем больше вы используете Vim, тем легче вам на запястьях. Вы также обнаружите, что достаточно умный поиск / замена может сэкономить вам немало нажатий клавиш, как и глобальное действие regex-y.
Свяжите:tabn и:tabp с чем-то доступным, например, и и заставьте себя делать вещи, не сдаваясь и не используя надлежащий графический редактор.
Я считаю, что цифровая клавиатура делает навигацию очень простой, потому что клавиши home и pgup находятся так близко. Для фактического набора чисел вы просто используете верхний ряд клавиатуры (что трудно понять, я согласен, но достаточно быстро через некоторое время).
Единственным недостатком этого для меня является использование клавиатур ноутбуков и компьютеров других людей, где мне приходится каждый раз отключать num lock.
Я имел обыкновение печатать полностью линейно (да, в vim), никогда не мог получить представление о лихой взад-вперед, которую немедленно создавали пишущие закрывающие элементы.
Тем не менее, теперь я использую Eclipse - он создает их для меня, когда я иду, так что в конце чего-то с ")")) я просто нажму конец и набираю;; нет необходимости разбираться с ним вручную. смущает меня, но это нормально.
Хорошая IDE (galileo уже здесь) автоматически закрывает скобки, скобки и т. Д., А также вставляет точку с запятой в конце оператора. Нет необходимости использовать стрелки на всех!
Конечно, для печати в Eclipse вы можете просто набрать sysout, но это, вероятно, плохая привычка.
Но будь осторожен! Если вы будете слишком быстры, ваши коллеги всегда заставят вас ехать:P
Лучшим способом решить эту проблему для меня было изменить вторую раскладку на моей клавиатуре на
h -> Left Arrow, j -> Up Arrow, k -> Down Arrow, l -> Right Arrow
Теперь, когда я нажимаю кнопку Fn, которая находится прямо под большим пальцем правой руки, я получаю навигацию в стиле Vim. И мне это просто нравится. Универсален для всех программ. Я также установил некоторые другие клавиши, Page Up, Page Down и т. Д.