Как минимизировать использование клавиш со стрелками при наборе кода?

При вводе кода я обычно закрываю скобки, возвращаюсь внутрь, выхожу на улицу, набираю точку с запятой и т.д.:

Я мог бы начать с (| это карета):

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 и т. Д.

Другие вопросы по тегам