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

298

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

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

  • 2
    использовать console2. sourceforge.net/projects/console
  • 0
    Сделайте себе одолжение, посмотрите ответ «clink» на этой странице. Ctrl-V и многое другое.
Показать ещё 5 комментариев
Теги:
keyboard-shortcuts

21 ответ

148
Лучший ответ

Я лично немного использую 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 
  • 0
    Этот материал мешает Cygwin, когда он работает внутри ConsoleWindow. Я был в восторге от этого совета, но, к сожалению, мне пришлось удалить его.
  • 2
    @piyo: может быть, вы можете исключить консоль Cygwin по заголовку? Например: если в строке заголовка консоли указано «ConsoleWindow», вы можете добавить что-то вроде WinGetTitle sTitle \ n If (sTitle = "ConsoleWindow") {\ n return \ n} \ n ---
Показать ещё 9 комментариев
392

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

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

  • 16
    Не совсем то, на что я надеялся, но, конечно, это работает. Несколько дополнительных советов: если вы сопоставили ALT + SPACE с панелью запуска приложения (например, Launchy), используйте вместо нее ALT-SHIFT-SPACE. Если вы используете неанглийскую версию Windows, последние 2 клавиши, конечно, будут отличаться (например, B + E для пасты на немецком языке)
  • 4
    Просто, чтобы объяснить выбор также: ALT + SPACE + E + K <- для копирования. и перемещайтесь вверх, вниз, влево, вправо со стрелками Shift + стрелка вправо <- для выбора текста ALT + ПРОБЕЛ + E + P <- для вставки.
Показать ещё 8 комментариев
136

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

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

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

Изображение 7277

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

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

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

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

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

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

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

  • Щелкните правой кнопкой мыши строку заголовка, нажмите "Изменить" в меню и нажмите "Вставить".
  • 13
    мы говорим о сочетаниях клавиш.
  • 11
    Правый щелчок кажется мне довольно коротким
Показать ещё 2 комментария
34

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

  • 2
    Хорошо, улучшения всегда приветствуются!
  • 1
    отлично! ответ по умолчанию мерцал во всплывающем меню, что раздражало
Показать ещё 2 комментария
14

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

  • 0
    Большинство функций clink великолепны, но они нарушают одну полезную функцию IMO. Автозаполнение cmd.exe циклически перебирает файлы. clink's отображает список, когда несколько файлов начинаются с одного и того же имени. Для длинных имен файлов, начинающихся с одного и того же имени, cmd.exe имеет лучшее автозаполнение.
13
  • 1
    Они переместили этот параметр на вкладку параметров и включили его по умолчанию, поэтому экспериментальный больше не существует (кажется, что все находится внутри вкладки параметров, просто параметр opactiy находится на вкладке цветов). Так что он должен просто работать сейчас :)
6

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

Изображение 7280

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

4

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

Спасибо..

3

Спасибо, Пабло, за ссылку на утилиту 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
3

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

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

  • 0
    Да, щелчок правой кнопкой работает нормально, но это то, чего я пытаюсь избежать.
  • 0
    Получается четыре нажатия клавиш, придающих руку мышке. Это решение также выигрывает, потому что оно готово к работе на любой машине.
2

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

Изображение 7281

2

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

  • 1
    Как примечание: когда вы видите cmd через RDP-соединение, это Alt-Del вместо Alt-Space.
2

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

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

1

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

Удачи!

1

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

stty lnext ^q stop undef start undef

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

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

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

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

Источник

1

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

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

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

1

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

  • 1
    По вопросу: вместо использования правой кнопки мыши
1

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

1

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

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

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

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

-3

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

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

  • 8
    Какую часть «вместо использования правой кнопки мыши» вы не понимаете;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню