it-swarm.com.ru

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

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

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

300
sme

Лично я использую небольшой скрипт 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 
161
PabloG

Да .. но неловко ссылка

alt + Spaceek <- для копирования и
alt + Spaceep <- для пасты.

424
Nescio

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

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

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

QuickEdit

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

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

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

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

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

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

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

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

Спасибо Пабло, именно то, что я искал! Однако, если я позволю себе немного улучшить ваш скрипт, я предлагаю заменить ваш макрос ^ 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. Спасибо Хугов за это предложение!

34
Huw Walters

Существует также отличный инструмент с открытым исходным кодом, называемый clink , который расширяет cmd многими функциями. Одним из них является возможность использовать Ctrl + V для вставки текста.

18
sibbl
14
Franck Dernoncourt

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

enter image description here

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

8
c00000fd

Спасибо, Пабло, за обращение к утилите 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
4
Maksym Kozlenko

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

Спасибо..

4
Vignesh Viper

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

3
i486

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

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

3
jop

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

enter image description here

2
Franck Dernoncourt

Мне потребовалось немного времени, чтобы понять, почему ваш скрипт 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

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

2
Djee

Если вы пользователь 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 на большинстве консолей. Сезон по вкусу.)

Источник

1
U007D

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

Удачи!

1
Michael Scott

Недавно я обнаружил, что командная строка имеет поддержку контекстного меню с помощью щелчка правой кнопкой мыши. Вы можете найти более подробную информацию здесь: http://www.askdavetaylor.com/copy_paste_within_Microsoft_windows_command_Prompt.html

1
Denis Vuyka

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

1
ilcredo

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

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

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

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

1
njsf

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

1
BG Bruno

Я следовал за шагами @ PabloG следующим образом

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