Горячая клавиша для вставки содержания буфера обмена в окно командной строки (Победа XP) [закрытый]

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

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

301
задан Abin Manathoor Devasia 5 February 2013 в 20:14
поделиться

8 ответов

Я лично использую немного сценарий Автогорячей клавиши , чтобы повторно отобразить определенные функции клавиатуры, для консоли (CMD) я использую:

; Redefine only when the active window is a console window 
#IfWinActive ahk_class ConsoleWindowClass

; Close Command Window with Ctrl+w
$^w::
WinGetTitle sTitle
If (InStr(sTitle, "-")=0) { 
    Send EXIT{Enter}
} else {
    Send ^w
}

return 


; Ctrl+up / Down to scroll command window back and forward
^Up::
Send {WheelUp}
return

^Down::
Send {WheelDown}
return


; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !{Space}ep
return

#IfWinActive 
162
ответ дан PabloG 23 November 2019 в 01:25
поделиться

Вы могли попытаться использовать Texter и создать что-то вряд ли как:

./p, инициированный пространством и заменой текста с %c

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

существуют, вероятно, другие утилиты этого вида, который мог работать, и даже Автогорячая клавиша , на которой создается Texter, могла сделать это лучше, но Texter является легким:-)

1
ответ дан njsf 23 November 2019 в 01:25
поделиться

Это не действительно ярлык, но просто быстрый доступ к системному меню: Alt-space E P

, Если можно использовать мышь, щелкает правой кнопкой по cmd работам окна как вставка, когда я попробовал его.

3
ответ дан jop 23 November 2019 в 01:25
поделиться

Едва ли программируя связанный, но я нашел это на Google, нет прямого сочетания клавиш , но делает его немного более быстрым.

, Чтобы включить или отключить режим QuickEdit:

  1. Открывают программу MS-DOS или командную строку.
  2. Щелкают правой кнопкой по строке заголовка и нажимают Properties.
  3. Выбор вкладка Options.
  4. Проверка или снятие флажка поле QuickEdit Mode.
  5. Нажимают OK.
  6. В Применять Свойствах К диалоговому окну Ярлыка, выберите свойства Apply к текущему окну, только если Вы хотите изменить настройки QuickEdit для этой сессии этого окна только, или выбор Изменяет ярлык, который запустил это окно для изменения настроек QuickEdit для всех будущих вызовов командной строки или программы MS-DOS.

QuickEdit

Для Копирования текста, когда QuickEdit включают:

  1. Перетаскивание указатель мыши по тексту Вы хотите.
  2. Нажимают Enter (или щелкните правой кнопкой где угодно в окне) скопировать текст в буфер обмена.

Для Вставки текста, когда QuickEdit включают:

  1. Щелкают правой кнопкой где угодно в окне.

Для Копирования текста, когда QuickEdit отключен:

  1. Щелкают правой кнопкой по строке заголовка, нажимают Edit в меню и нажимают Mark.
  2. Перетаскивают мышь по тексту, который Вы хотите скопировать.
  3. Нажимают Enter (или щелкните правой кнопкой где угодно в окне) скопировать текст в буфер обмена.

Для Вставки текста, когда QuickEdit отключен:

  1. Щелкают правой кнопкой по строке заголовка, нажимают Edit в меню и нажимают Paste.
136
ответ дан jakub.g 23 November 2019 в 01:25
поделиться

Да.. но неловкий. Ссылка

высокий звук + Пространство , e , k < - для копии и
высокий звук + Пространство , e , p < - для вставки.

426
ответ дан Brad Larson 23 November 2019 в 01:25
поделиться

Спасибо, Пабло, именно то, что я искал! Однако, если я позволю себе немного улучшить ваш скрипт, я предлагаю заменить ваш макрос ^ V следующим:

; Use backslash instead of backtick (yes, I am a C++ programmer).
#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
SendInput {Raw}%clipboard2%
return

Преимущество использования SendInput состоит в том, что

  • он не полагается на системное меню командной строки, имеющее пункт меню «Alt + Space EP» для вставки (работает для английского и испанского, но не для всех языков).
  • он позволяет избежать неприятного мерцания, которое возникает при создании и уничтожении меню.

Обратите внимание: важно включить "{Raw}" в команду SendInput, если в буфере обмена есть "!", "+", "^" Или "#".

Обратите внимание, что он использует StringReplace для удаления лишних символов возврата каретки Windows. Спасибо hugov за это предложение!

35
ответ дан 23 November 2019 в 01:25
поделиться

Спасибо, Пабло, за ссылку на утилиту AutoHotkey. Поскольку у меня установлен Launchy, использующий Alt + Пробел , мне пришлось изменить его, но добавить клавишу Shift , как показано:

; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !+{Space}ep
return
4
ответ дан 23 November 2019 в 01:25
поделиться

Более простой способ - использовать Windows PowerShell вместо cmd. с текстер отлично работает.

1
ответ дан 23 November 2019 в 01:25
поделиться