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

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

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

System.out.println()|

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

System.out.println(|)

Тогда это:

System.out.println(foo()|)

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

System.out.println(foo(|))

Цитаты набора похожи:

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

...и т.д.

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

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

Спасибо.


person Lucky    schedule 21.06.2009    source источник
comment
Vim можно приручить постоянным использованием.   -  person Alan Haggai Alavi    schedule 21.06.2009


Ответы (11)


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

Однако в этом случае вам, вероятно, понадобится плагин AutoClose. Он автоматически вставляет закрывающую круглую скобку (или кавычку) вместе с открытием и помещает курсор между ними. Таким образом, вы идете от

System.out.println(|)

to

System.out.println(foo(|))

to

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

Если затем вы наберете ")), курсор будет «перемещать» закрывающие символы вместо того, чтобы вставлять новые. Хотя, вероятно, более быстрый способ добраться до конца строки - <Esc>A.

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

Итак, чтобы подвести итог, вышеуказанное можно получить, набрав System.out.println(foo("<Esc>A;.

Для редактирования парных символов, а не их вставки, см. Surround.vim.

person Marius Andersen    schedule 21.06.2009
comment
+1. Если вы хотите остаться с Vim, я думаю, что это хороший вариант (спасибо за плагин, Мариус!) - person Eliseo Ocampos; 21.06.2009

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

person Eliseo Ocampos    schedule 21.06.2009

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

person Ben Hughes    schedule 21.06.2009
comment
Я как раз собирался предложить то же самое. :-) - person Alan Haggai Alavi; 21.06.2009
comment
Это правильно, но, возможно, то, что вы получаете правой рукой, вы теряете с другой рукой, изменяя и изменяя режимы. - person Eliseo Ocampos; 21.06.2009
comment
по крайней мере, это включает только смену режимов - а не искривление руки, чтобы нажимать клавиши, такие как escape-мета-альтернативный сдвиг управления, чтобы что-то сделать. - person Ben Hughes; 21.06.2009
comment
Хорошая часть переключения режимов заключается в том, что вы можете нажать клавишу ESC, даже не глядя на клавиатуру (ее трудно пропустить, там, в углу), и просто вернуться в обычное положение. В vi то, что пользовательский запрос может быть выполнен с помощью ESC (выйти из режима редактирования) i (вставить перед текущей позицией), то есть нажатие клавиши левой рукой, а другое - правой рукой, в клавишах вам не нужно визуально искать. - person David Rodríguez - dribeas; 21.06.2009

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

person John Slavick    schedule 21.06.2009

Не надо.

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

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

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

person Community    schedule 21.06.2009
comment
Что? Не уверен, что вы имели в виду - person Lucky; 21.06.2009

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

наслаждаться ;)

person Zato-One    schedule 03.05.2012

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

person Boushley    schedule 21.06.2009

Еще один голос за Vim. Кроме того, есть отличные плагины для более стандартных IDE, использующих привязки клавиш Vi. Время от времени я использую jVI в Netbeans.

Вы обнаружите, что чем больше вы используете Vim, тем легче вам будет запястья. Вы также обнаружите, что достаточно умный поиск / замена может сэкономить вам немало нажатий клавиш, как и глобальное действие regex-y.

Свяжите: tabn и: tabp с чем-то доступным, например, и, и заставьте себя выполнять работу, не сдаваясь и используя подходящий редактор графического интерфейса.

person C. Alan Zoppa    schedule 21.06.2009

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

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

person Kim Reece    schedule 21.06.2009

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

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

person LegendLength    schedule 21.06.2009

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

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

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

person CurtainDog    schedule 21.06.2009