Как свести к минимуму использование клавиш со стрелками при наборе кода?
-
06-07-2019 - |
Вопрос
При наборе кода я обычно закрываю скобки, возвращаюсь внутрь, выхожу наружу, набираю точку с запятой и т. д.:
Я мог бы начать с (| — это каретка):
System.out.println()|
Затем идите налево:
System.out.println(|)
Тогда это:
System.out.println(foo()|)
Опять возврат на пробел:
System.out.println(foo(|))
Ввод цитат аналогичен:
System.out.println(foo(""|))
...и т. д.
Моя правая рука постоянно перемещается между домашней строкой и клавишами со стрелками.Я пробовал vim, и хотя я знаю основы, он все равно кажется мне очень неудобным.
Как мне это сделать?Должен ли я просто печатать слева направо (открывающая скобка, затем содержимое, затем закрывающие скобки, затем точка с запятой)?
Спасибо.
Решение
Прежде всего, в Vim можно добиться значительной скорости, используя h
, j
, k
и l
вместо клавиш со стрелками.Видеть Изучение Vim прагматичным способом для обзора ключей.
Однако в этом случае вам, вероятно, понадобится Автозакрытие плагин.Он автоматически вставляет закрывающую скобку (или кавычку) вместе с открывающей и помещает между ними курсор.Таким образом, вы идете от
System.out.println(|)
к
System.out.println(foo(|))
к
System.out.println(foo("|"))
Если вы затем наберете "))
, каретка будет «перемещать» закрывающие символы, а не вставлять новые.Хотя, вероятно, более быстрый способ добраться до конца строки <Esc>A
.
System.out.println(foo(""));
Итак, подводя итог, вышеизложенное можно получить, набрав System.out.println(foo("<Esc>A;
.
Для редактирование парные символы, а не их вставку, см. объемный.vim.
Другие советы
Ну, это Java. Если вы используете более или менее хорошую IDE, у вас должна быть возможность автозаполнения, таким образом, когда вы вводите «System.out.println» и нажимаете Enter, чтобы принять автозаполнение, появятся скобки и курсор будет посередине (о, и кавычки тоже будут!)
Если вы уже используете vim, попробуйте поиграться с клавишами h,j,k и l.Они делают то же самое, что и клавиши со стрелками, но гораздо удобнее.Попытка выработать привычку печатать по порядку, вероятно, также поможет, но это требует некоторых усилий.
Вы можете сохранить нажатия клавиш, удерживая клавишу Ctrl и используя клавиши со стрелками.Вместо перемещения одного символа он перемещает одно слово за раз.Это также работает при возврате назад.Таким образом, сочетание клавиш Ctrl-Backspace удалит все слово, а не только последний символ.
Не.
Ваша привычка заканчивать что-то, что вы начали - будь то закрывающая скобка, квадратная скобка, фигурная скобка или вызов .Close() для соответствия .Open() или вызов delete/free для соответствия вашему new/malloc - отличная привычка. .Даже если вы намереваетесь «закрыть» свой объект в другой области действия (например, функцию завершения), ваша привычка заставляет вас задуматься о правильном освобождении ресурсов.
Да, существуют полезные редакторы, которые позволяют вам быстрее писать код, и вам обязательно следует их использовать, но не позволяйте им стать опорой, позволяющей вам забыть закрывать объекты/освобождать ресурсы.
Прямой ответ на ваш вопрос:Большинство хороших редакторов для программистов можно настроить, поэтому вам просто нужно будет прочитать о расширенной настройке редактора по вашему выбору - vim, emacs, редактора Visual Studio.
Попробуйте 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.
наслаждаться ;)
Я бы полностью рекомендовал Vim...так как это во многом поможет!Кроме того, обратите внимание на что-нибудь, что автоматически закроет круглые, квадратные и фигурные скобки...У меня в vim есть что-то, что делает это, и это помогает решить проблемы такого типа, потому что я уже внутри скобок.
Еще один голос за Вима.Кроме того, есть несколько отличных плагинов для более стандартных IDE, использующих сочетания клавиш Vi.я использую ОВИ в Netbeans время от времени.
Вы обнаружите, что чем больше вы используете Vim, тем легче вам будет с ним работать.Вы также обнаружите, что достаточно умный поиск/замена может сэкономить вам немало нажатий клавиш, как и регулярное выражение глобального действия.
Привяжите :tabn и :tabp к чему-то доступному, например и, и заставьте себя делать что-то, не сдаваясь и используя подходящий редактор графического интерфейса.
Раньше я печатал совершенно линейно (да, в vim), никогда не мог освоить беготню вперед и назад, которую сразу же создавало написание закрывающих элементов.
Однако теперь я использую Eclipse - он создает их для меня по ходу дела, поэтому в конце чего-то с )))) я просто нажимаю end и набираю ;, вообще не нужно разбираться с этим вручную.Это меня иногда смущает, но это нормально.
Я считаю, что цифровая клавиатура делает навигацию очень простой, потому что клавиши Home и PGUP расположены очень близко.Для фактического ввода цифр вы просто используете верхний ряд клавиатуры (этому трудно научиться, я согласен, но через некоторое время достаточно быстро).
Единственным недостатком этого для меня является использование клавиатуры ноутбука и использование компьютеров других людей, где мне приходится каждый раз отключать цифровую блокировку.
Хорошая IDE (Galileo уже почти здесь) автоматически закроет скобки, круглые скобки и т. д., а также разумно вставит точку с запятой в конце оператора.Не нужно использовать стрелки вообще!
Конечно, для println в Eclipse вы можете просто ввести sysout, но это, вероятно, плохая привычка.
Но будь осторожен!Если вы поторопитесь, коллеги всегда заставят вас водить машину :P