Как минимизировать использование клавиш со стрелками при наборе кода? - PullRequest
14 голосов
/ 21 июня 2009

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

Я мог бы начать с (| это символ):

System.out.println()|

Затем идите налево:

System.out.println(|)

Тогда это:

System.out.println(foo()|)

Снова возвращаем пробел:

System.out.println(foo(|))

Печатные кавычки похожи:

System.out.println(foo(""|))

... и т.д.

Моя правая рука постоянно перемещается между домашним рядом и клавишами со стрелками. Я пробовал vim, и хотя я знаю основы, мне все еще очень неловко.

Как мне это сделать? Должен ли я просто печатать слева направо (открывающая скобка, затем содержимое, затем закрывающая скобка, затем точка с запятой)?

Спасибо.

Ответы [ 11 ]

10 голосов
/ 21 июня 2009

Прежде всего, в Vim можно получить большую скорость, используя вместо клавиш со стрелками h, j, k и l. См. Изучение Vim прагматического пути для обзора ключей.

Однако в этом случае вам, вероятно, понадобится плагин 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 .

6 голосов
/ 21 июня 2009

Ну, это Java. Если вы используете более или менее хорошую IDE, вы должны иметь возможность автозаполнения, когда вы наберете «System.out.println» и нажмете Enter, чтобы принять автозаполнение, отобразятся скобки каретка будет посередине (о, и там тоже будут кавычки!)

5 голосов
/ 21 июня 2009

Если вы уже используете vim, попробуйте поиграть с клавишами h, j, k и l. Они делают то же самое, что и клавиши со стрелками, но намного удобнее. Попытка привыкнуть печатать по порядку, вероятно, также поможет, но это требует определенных усилий.

4 голосов
/ 21 июня 2009

Вы можете сохранить нажатия клавиш, удерживая клавишу Ctrl и используя клавиши со стрелками. Вместо перемещения одного символа, он перемещает одно слово за раз. Это также работает, когда забой. Таким образом, Ctrl-Backspace удалит все слово, а не только последний символ.

3 голосов
/ 03 мая 2012

Попробуйте 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.

наслаждайся;)

3 голосов
/ 21 июня 2009

Не.

Ваша привычка завершать то, что вы начали - будь то закрывающая скобка, скобка, фигурная скобка или вызов .Close () для сопоставления .Open () или удаление / освобождение вызова для сопоставления с новым / malloc - отличный. Даже если вы намереваетесь «закрыть» свой объект в другом объеме (например, в функции завершения), ваша привычка заставляет задуматься о том, как правильно высвобождать ресурсы.

Да, есть полезные редакторы, которые позволяют вам кодировать быстрее, что вы обязательно должны использовать, но не позволяйте им становиться опорой, позволяющей вам забыть закрыть объекты / освободить ресурсы.

Прямой ответ на ваш вопрос: большинство хороших редакторов-программистов можно настроить / настроить, так что вам просто нужно немного почитать о продвинутой конфигурации редактора по вашему выбору - vim, emacs, редактор Visual Studio.

2 голосов
/ 21 июня 2009

Я бы полностью порекомендовал vim ..., так как это сильно поможет! Кроме того, обратите внимание на то, что автоматически закроет ваши скобки, квадратные скобки и фигурные скобки для вас ... У меня есть кое-что в vim, которое делает это, и это помогает с этим типом проблемы, потому что я уже в скобках.

1 голос
/ 21 июня 2009

Хорошая IDE (galileo почти здесь) автоматически закроет скобки, скобки и т. Д., А также вставит точку с запятой в конце оператора. Нет необходимости использовать стрелки на всех!

Конечно, для печати в Eclipse вы можете просто ввести sysout, но это, вероятно, плохая привычка.

Но будь осторожен! Если вы будете слишком быстры, ваши коллеги всегда заставят вас ехать: P

1 голос
/ 21 июня 2009

Я считаю, что цифровая клавиатура делает навигацию очень простой, потому что клавиши home и pgup находятся так близко. Для фактического набора цифр вы просто используете верхний ряд клавиатуры (что трудно понять, я согласен, но достаточно быстро через некоторое время).

Единственными недостатками этого для меня являются использование клавиатур ноутбуков и использование компьютеров других людей, когда мне приходится каждый раз отключать num lock.

1 голос
/ 21 июня 2009

Раньше я печатал полностью линейно (да, в vim), никогда не мог освоить рывок вперед и назад, который сразу же создавали пишущие закрывающие элементы.

Тем не менее, теперь я использую Eclipse - он создает их для меня, когда я иду, так что в конце чего-то с a) ")) mess я просто нажал end и набрал a;, не нужно вообще с этим обращаться вручную Что иногда смущает меня, но это нормально.

...