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

StackOverflow https://stackoverflow.com/questions/1023002

  •  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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top