2009-06-21 1 views
13

При вводе кода, я обычно близкие скобки, вернуться внутрь, выходить на улицу, типа точка с запятой, и т.д.:Как свести к минимуму использование клавиш со стрелками при вводе кода?

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

System.out.println()| 

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

System.out.println(|) 

Тогда это:

System.out.println(foo()|) 

снова вернуться назад ИНГ пространство:

System.out.println(foo(|)) 

Typing котировки похожи:

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

... и т.д..

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

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

Спасибо.

+1

Vim можно приручить с непрерывным использованием. –

ответ

10

Прежде всего, в Vim есть большая скорость, используя h, j, k и l вместо клавиш со стрелками. См. Learning 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;.

редактирование парные символы, в отличие от их вставки, см. surround.vim.

+0

+1. Если вы хотите остаться с Vim, я думаю, что это хороший вариант (спасибо за плагин Marius!) –

5

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

+0

Я как раз собирался предложить то же самое. :-) –

+1

Это правильно, но, возможно, то, что вы получаете с правой рукой, которую вы теряете с другой стороны, путем изменения и изменения режимов. –

+1

, по крайней мере, это только включает в себя изменение режимов - не искажая вашу руку, чтобы нажимать клавиши, такие как escape meta alternate control shift, чтобы что-либо сделать. –

2

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

6

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

3

Не делайте этого.

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

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

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

+0

Э-э, что? Не уверен, что вы имели в виду – Lucky

4

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

1

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

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

Bind: tabn and: tabp для чего-то доступного, а также заставить себя сделать что-то без сдачи и использования собственного графического редактора.

1

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

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

1

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

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

1

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

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

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

3

Try 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 & сдвиг :: ('опциональный линия')

Это о проведении LAlt + нажатие клавиши: i, k, j, l (клавиши со стрелками), u, o (начало, конец) или h (удаление). Последняя строка является необязательной, если вы не хотите менять язык клавиатуры. layout by LAlt + Shift

Вы можете использовать его даже в сочетании с модификаторами, такими как shift и ctrl.

enjoy;)