Комбинация клавиш для вставки содержимого буфера обмена в окно командной строки (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 за это предложение!
Ответ 5
Существует также отличный инструмент с открытым исходным кодом под названием clink, который расширяет cmd многими функциями. Один из них может использовать ctrl + v для вставки текста.
Ответ 6
В Windows 10 вы можете включить Ctrl + C и Ctrl + V для работы в командной строке:
![enter image description here]()
![enter image description here]()
Ответ 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.
Ответ 16
Недавно я обнаружил, что приглашение командной строки поддерживает контекстное меню с помощью щелчка правой кнопкой мыши. Вы можете найти более подробную информацию здесь: http://www.askdavetaylor.com/copy_paste_within_microsoft_windows_command_prompt.html
Ответ 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:
Нажмите на значок системы.
Выберите "По умолчанию" в меню
На вкладке "Параметры" в группе "Параметры" у меня есть
"Режим быстрого редактирования", "Режим вставки" и "Автозавершение"
Я думаю, что "Режим быстрого редактирования" заставляет его работать.
Вставить все, что находится в буфер обмена, в точке ввода: Щелкните правой кнопкой мыши.
Копировать из окна команд Выберите, удерживая левую кнопку мыши и перетаскивая указатель на то, что вы хотите скопировать После выбора щелкните правой кнопкой мыши Чтобы вставить в точку вставки, щелкните правой кнопкой мыши еще раз.