Есть ли сочетание клавиш для вставки содержимого буфера обмена в окно командной строки в Windows XP (вместо использования правой кнопки мыши)?
Типичный Shift+ Insert, похоже, не работает здесь.
Есть ли сочетание клавиш для вставки содержимого буфера обмена в окно командной строки в Windows XP (вместо использования правой кнопки мыши)?
Типичный Shift+ Insert, похоже, не работает здесь.
Ответы:
Я лично использую небольшой скрипт AutoHotkey для переназначения определенных функций клавиатуры, для окна консоли (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<- для вставки.
На самом деле не связано с программированием, но я нашел это в Google, здесь нет прямого сочетания клавиш , но он немного быстрее.
Спасибо Пабло, именно то, что я искал! Однако, если я позволю себе немного улучшить ваш скрипт, я предлагаю заменить ваш макрос ^ 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. Спасибо Хугов за это предложение!
ctrl-v
в консоли «родное» чувство
ctrl+v
он вставляется правильно, но также начинает исполнять строку (как будто enter
нажимается потом). Как я могу предотвратить это?
Существует также отличный инструмент с открытым исходным кодом, называемый clink , который расширяет cmd многими функциями. Одним из них является возможность использовать Ctrl + V для вставки текста.
В Windows 10 вы можете включить Ctrl+ Cи Ctrl+ Vдля работы в командной строке :
Вот бесплатный инструмент, который сделает это в Windows. Я предпочитаю это сценарию, так как его легко настроить. Он работает как быстрое собственное приложение, работает на XP и выше, имеет параметры конфигурации, которые позволяют переназначать ключи копирования / вставки / выбора для командных окон:
Плюс я знаю разработчиков.
Простейший метод - это просто скопировать текст, который вы хотите вставить, в cmd и открыть cmd, перейти к вкладке «Свойства» ---> «Параметр» ----> проверить (поставить галочку) «режим quickEdit» и нажать « хорошо "..... теперь вы можете вставить любой текст из буфера обмена, щелкнув правой кнопкой мыши.
Спасибо..
Спасибо, Пабло, за обращение к утилите 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
Это не просто ярлык, а просто быстрый доступ к меню управления: Alt-space EP
Если вы можете использовать мышь, щелкните правой кнопкой мыши по окну cmd, когда я попробовал это сделать.
Теоретически приложение в DOS Prompt имеет свой собственный буфер обмена и ярлыки. Для импорта текста из буфера обмена Windows это «лишнее». Однако вы можете использовать Alt-Space, чтобы открыть системное меню окна подсказок, затем нажмите E, P, чтобы выбрать Редактировать, Вставить меню. Тем не менее, MS может предоставить ярлык с помощью Win-ключа. Нет шансов быть использованным в приложении DOS.
Мне понадобилось немного времени, чтобы понять, почему ваш скрипт AutoHotkey не работает со мной:
; 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
Не очень просто ...
Если вы используете менеджер буфера обмена Ditto (с открытым исходным кодом, бесплатно), вы можете просто использовать ярлык для вставки из Ditto, и он вставит буфер обмена в CMD для вас.
Вы можете попробовать использовать Texter и создать что-то вроде:
./p, запускается пробелом и заменяет текст на% c
Я только что проверил, и он отлично работает. Единственный недостаток - использовать редкую последовательность, так как Texter не может ограничить это только cmd.
Вероятно, есть другие утилиты такого рода, которые могли бы работать, и даже AutoHotKey , на котором построен Texter, мог бы сделать это лучше, но Texter прост :-)
Недавно я обнаружил, что в командной строке есть поддержка контекстного меню с помощью щелчка правой кнопкой мыши. Вы можете найти более подробную информацию здесь: http://www.askdavetaylor.com/copy_paste_within_microsoft_windows_command_prompt.html
Довольно простым решением может стать Console 2 , переопределить ключи и все готово.
Если вы пользователь Cygwin, вы можете добавить следующее в файл ~ / .bashrc:
stty lnext ^q stop undef start undef
И следующее в вашем файле ~ / .inputrc:
"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard
Перезагрузите терминал Cygwin.
(Обратите внимание, что я использовал прописные буквы C для копирования, так как CTRL + c назначается функции break на большинстве консолей. Сезон по вкусу.)
Вместо «щелчка правой кнопкой мыши» .... начните сеанс (когда вы находитесь в окне командной строки), нажав Alt / SpaceBar. Это откроет меню окна командной строки, и вы увидите знакомые, подчеркнутые сочетания клавиш, как в Windows GUI.
Удачи!
Я следовал за шагами @ PabloG следующим образом
В командной строке VISTA: щелкните значок системы. В меню выберите «По умолчанию». На вкладке «Параметры» в группе «Параметры» у меня выбраны «Режим быстрого редактирования», «Режим вставки» и «Автозаполнение». Я думаю, что «Режим быстрого редактирования» это то, что заставляет это работать.
Чтобы вставить то, что находится в буфере обмена в точке вставки: щелкните правой кнопкой мыши. Копирование из окна команд Выберите, удерживая левую кнопку мыши и перетаскивая указатель на то, что вы хотите скопировать. После выбора щелкните правой кнопкой мыши. Чтобы вставить в точку вставки, снова щелкните правой кнопкой мыши.