Есть ли комбинация клавиш для вставки содержимого буфера обмена в окно командной строки в Windows XP (вместо правой кнопки мыши)?
Типичный Shift + Insert, похоже, не работает здесь.
Есть ли комбинация клавиш для вставки содержимого буфера обмена в окно командной строки в Windows XP (вместо правой кнопки мыши)?
Типичный Shift + Insert, похоже, не работает здесь.
Я лично немного использую 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
Да.. но неудобно. Ссылка
alt + Space, e, k < - для копирования и alt + Space, e, p < - для пасты.
Не связано с программированием, но я нашел this в Google, нет прямого сочетания клавиш, но делает это немного быстрее.
Спасибо Пабло, именно то, что я искал! Однако, если я могу позволить себе немного улучшить ваш 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 заключается в том, что
Обратите внимание, что важно включить "{Raw}" в команде SendInput, если буфер обмена содержит "!", "+", "^" или "#".
Примечание. Он использует StringReplace для удаления лишних символов возврата каретки Windows. Спасибо hugov за это предложение!
Существует также отличный инструмент с открытым исходным кодом под названием clink, который расширяет cmd многими функциями. Один из них может использовать ctrl + v для вставки текста.
В Windows 10 вы можете включить Ctrl + C и Ctrl + V для работы в командной строке:
Здесь бесплатный инструмент, который будет делать это в Windows. Я предпочитаю его script, так как его легко настроить. Он работает как быстрое родное приложение, работает на XP и выше, имеет параметры конфигурации, которые позволяют переназначать клавиши копирования/вставки/выбора для окон команд:
Плюс я знаю разработчиков.
Простейший метод - это просто копировать текст, который вы хотите вставить в cmd, и открыть cmd goto "properties" --- > "option" tab ---- > проверить (указать галочку) "режим quickEdit" и нажмите "ok"..... теперь вы можете вставить любой текст из буфера обмена, выполнив щелчок правой кнопкой мыши с помощью мыши мыши.
Спасибо..
На самом деле это не ярлык, а просто быстрый доступ к меню управления: Alt-space E P
Если вы можете использовать свою мышь, щелкните правой кнопкой мыши на окне cmd, как при вставке, когда я попробовал.
Спасибо, Пабло, за ссылку на утилиту 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
Мне потребовалось немного времени, чтобы понять, почему ваш 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
Не очень просто...
Теоретически, приложение в DOS Prompt имеет свой собственный буфер обмена и ярлыки. Для импорта текста из буфера обмена Windows является "дополнительным". Однако вы можете использовать Alt-Space, чтобы открыть системное меню окна Prompt, затем нажмите E, P, чтобы выбрать Edit, Paste. Тем не менее, MS может обеспечить ярлык с помощью Win-key. Нет возможности использовать приложение DOS.
Если вы используете диспетчер буфера обмена Ditto (с открытым исходным кодом, бесплатно), вы можете просто использовать ярлык для вставки из Ditto, и он будет вставлять буфер обмена в CMD для вас.
Вы можете попробовать использовать Texter и создать что-то маловероятное:
./p, запускаемый пробелом и заменяющий текст% c
Я только что протестировал его, и он отлично работает. Единственный способ - использовать редкую последовательность, поскольку Texter не может ограничивать это только cmd.
Есть, возможно, другие утилиты такого рода, которые могли бы работать, и даже AutoHotKey, после чего Texter построен, может сделать это лучше, но Texter легко: -)
Более простой способ - использовать windows powershell вместо cmd. itworks отлично с texter.
Недавно я обнаружил, что приглашение командной строки поддерживает контекстное меню с помощью щелчка правой кнопкой мыши. Вы можете найти более подробную информацию здесь: http://www.askdavetaylor.com/copy_paste_within_microsoft_windows_command_prompt.html
Довольно простое решение может быть Консоль 2, переопределить ключи и перейти.
Я выполнил следующие шаги @PabloG
Если вы являетесь пользователем Cygwin, вы можете добавить следующее в свой файл ~/.bashrc:
stty lnext ^q stop undef start undef
И следующее в ваш файл ~/.inputrc:
"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard
Перезагрузите терминал Cygwin.
(Примечание. Я использовал верхний регистр C для копирования, так как CTRL + c назначается функции прерывания на большинстве консолей. Сезон для вкуса.)
Вместо "правого щелчка".... начните свою сессию (как только вы окажетесь в окне командной строки), нажав Alt/SpaceBar. Это откроет меню окна командной строки, и вы увидите свои знакомые, подчеркнутые сочетания клавиш клавиатуры, как в графическом интерфейсе Windows.
Удачи!
В командной строке VISTA: Нажмите на значок системы. Выберите "По умолчанию" в меню На вкладке "Параметры" в группе "Параметры" у меня есть "Режим быстрого редактирования", "Режим вставки" и "Автозавершение" Я думаю, что "Режим быстрого редактирования" заставляет его работать.
Вставить все, что находится в буфер обмена, в точке ввода: Щелкните правой кнопкой мыши. Копировать из окна команд Выберите, удерживая левую кнопку мыши и перетаскивая указатель на то, что вы хотите скопировать После выбора щелкните правой кнопкой мыши Чтобы вставить в точку вставки, щелкните правой кнопкой мыши еще раз.