Комбинация клавиш для вставки содержимого буфера обмена в окно командной строки (Win XP)

Есть ли комбинация клавиш для вставки содержимого буфера обмена в окно командной строки в Windows XP (вместо правой кнопки мыши)?

Типичный Shift + Insert, похоже, не работает здесь.

Ответ 1

Я лично немного использую AutoHotkey script для переназначения некоторых функций клавиатуры, для консольного окна (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 

Ответ 2

Да.. но неудобно. Ссылка

alt + Space, e, k < - для копирования и alt + Space, e, p < - для пасты.

Ответ 3

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

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

  • Откройте программу MS-DOS или командную строку.
  • Щелкните правой кнопкой мыши строку заголовка и нажмите "Свойства".
  • Выберите вкладку "Параметры".
  • Отметьте или отмените выбор режима QuickEdit Mode.
  • Нажмите OK.
  • В диалоговом окне "Применить свойства к ярлыку" выберите "Применить свойства" в текущее окно, только если вы хотите изменить параметр QuickEdit только для этого сеанса этого окна или выбрать "Изменить" , который запустил это окно, чтобы изменить настройку QuickEdit для всех будущие вызовы командной строки или программы MS-DOS.

QuickEdit

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

  • Нажмите и перетащите указатель мыши над нужным текстом.
  • Нажмите "Enter" (или щелкните правой кнопкой мыши в любом месте окна), чтобы скопировать текст в буфер обмена.

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

  • Щелкните правой кнопкой мыши в любом месте окна.

Копировать текст при отключенном QuickEdit:

  • Щелкните правой кнопкой мыши строку заголовка, нажмите "Изменить" в меню и нажмите "Отметить".
  • Наведите указатель мыши на текст, который хотите скопировать.
  • Нажмите "Enter" (или щелкните правой кнопкой мыши в любом месте окна), чтобы скопировать текст в буфер обмена.

Вставить текст, если QuickEdit отключен:

  • Щелкните правой кнопкой мыши строку заголовка, нажмите "Изменить" в меню и нажмите "Вставить".

Ответ 4

Спасибо Пабло, именно то, что я искал! Однако, если я могу позволить себе немного улучшить ваш script, я предлагаю заменить ваш макрос ^ 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 E P" для создания вставки (работает на английском и испанском языках, но не на всех языках).
  • он избегает этого неприятного мерцания, которое вы получаете, когда меню создано и уничтожено.

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

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

Ответ 7

Здесь бесплатный инструмент, который будет делать это в Windows. Я предпочитаю его script, так как его легко настроить. Он работает как быстрое родное приложение, работает на XP и выше, имеет параметры конфигурации, которые позволяют переназначать клавиши копирования/вставки/выбора для окон команд:

введите описание изображения здесь

Плюс я знаю разработчиков.

Ответ 8

Простейший метод - это просто копировать текст, который вы хотите вставить в cmd, и открыть cmd goto "properties" --- > "option" tab ---- > проверить (указать галочку) "режим quickEdit" и нажмите "ok"..... теперь вы можете вставить любой текст из буфера обмена, выполнив щелчок правой кнопкой мыши с помощью мыши мыши.

Спасибо..

Ответ 9

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

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

Ответ 10

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

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

Ответ 11

Мне потребовалось немного времени, чтобы понять, почему ваш AutoHotkey script не работает со мной:

; 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

Фактически, он полагается на нажатия клавиш и, следовательно, на раскладку клавиатуры! Поэтому, когда вы, как и я, несчастливо иметь только клавиатуру AZERTY, ваше предложение просто не работает. И хуже того, я не нашел простого способа заменить метод SendInput или перекрутить его среду, чтобы исправить это. Например, SendInput "1" просто не отправляет цифру 1.

Мне пришлось превратить каждый символ в его юникод, чтобы он работал на моем компьютере:

#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
clipboard3 := ""
Loop {
    if (a_index>strlen(clipboard2))
     break 
    char_asc := Asc(SubStr(clipboard2, a_Index, 1))   
    if (char_asc > 127 and char_asc < 256)
     add_zero := "0"
    else
     add_zero := "" 
    clipboard3 :=  clipboard3  . "{Asc " .  add_zero . char_asc . "}"
}
SendInput %clipboard3%
return

Не очень просто...

Ответ 12

Теоретически, приложение в DOS Prompt имеет свой собственный буфер обмена и ярлыки. Для импорта текста из буфера обмена Windows является "дополнительным". Однако вы можете использовать Alt-Space, чтобы открыть системное меню окна Prompt, затем нажмите E, P, чтобы выбрать Edit, Paste. Тем не менее, MS может обеспечить ярлык с помощью Win-key. Нет возможности использовать приложение DOS.

Ответ 13

Если вы используете диспетчер буфера обмена Ditto (с открытым исходным кодом, бесплатно), вы можете просто использовать ярлык для вставки из Ditto, и он будет вставлять буфер обмена в CMD для вас.

введите описание изображения здесь

Ответ 14

Вы можете попробовать использовать Texter и создать что-то маловероятное:

./p, запускаемый пробелом и заменяющий текст% c

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

Есть, возможно, другие утилиты такого рода, которые могли бы работать, и даже AutoHotKey, после чего Texter построен, может сделать это лучше, но Texter легко: -)

Ответ 15

Более простой способ - использовать windows powershell вместо cmd. itworks отлично с texter.

Ответ 17

Довольно простое решение может быть Консоль 2, переопределить ключи и перейти.

Ответ 18

Я выполнил следующие шаги @PabloG

  • goto http://www.autohotkey.com/ - загрузить autohotkey
  • выполните простые шаги установки
  • после установки создайте новый файл *.ahk следующим образом, щелкните правой кнопкой мыши на рабочем столе > new > Autohotkey Script > giveAnyFileName.ahk
  • щелкните правой кнопкой мыши на этом файле > Изменить
  • скопировать копию autohotkey Script, предоставленную @PabloG в его ответе
  • сохранить и закрыть
  • дважды щелкните файл для запуска
  • Готово теперь вы можете использовать "Ctrl + v" для вставки в командной строке

Ответ 19

Если вы являетесь пользователем Cygwin, вы можете добавить следующее в свой файл ~/.bashrc:

stty lnext ^q stop undef start undef

И следующее в ваш файл ~/.inputrc:

"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard

Перезагрузите терминал Cygwin.

(Примечание. Я использовал верхний регистр C для копирования, так как CTRL + c назначается функции прерывания на большинстве консолей. Сезон для вкуса.)

Источник

Ответ 20

Вместо "правого щелчка".... начните свою сессию (как только вы окажетесь в окне командной строки), нажав Alt/SpaceBar. Это откроет меню окна командной строки, и вы увидите свои знакомые, подчеркнутые сочетания клавиш клавиатуры, как в графическом интерфейсе Windows.

Удачи!

Ответ 21

В командной строке VISTA: Нажмите на значок системы. Выберите "По умолчанию" в меню На вкладке "Параметры" в группе "Параметры" у меня есть "Режим быстрого редактирования", "Режим вставки" и "Автозавершение" Я думаю, что "Режим быстрого редактирования" заставляет его работать.

Вставить все, что находится в буфер обмена, в точке ввода: Щелкните правой кнопкой мыши. Копировать из окна команд Выберите, удерживая левую кнопку мыши и перетаскивая указатель на то, что вы хотите скопировать После выбора щелкните правой кнопкой мыши Чтобы вставить в точку вставки, щелкните правой кнопкой мыши еще раз.