Комбінація клавіш для вставки вмісту буфера обміну у вікно командного рядка (Win XP) [закрито]


303

Чи є комбінація клавіш для вставки вмісту буфера обміну у вікно командного рядка в Windows XP (замість правої кнопки миші)?

Здається, типовий Shift+ тут Insertне працює.


2
використовувати консоль2. sourceforge.net/projects/console
Філіп

Зробіть собі прихильність, ознайомтеся з відповіддю на "посилання" на цій сторінці. ctrl-v і ще багато іншого.
bdumtish

2
@pylover виправлено у 2015 році .
Франк Дернонкур

1
@pylover В іншому випадку для <10 ви можете використовувати диспетчер буфера обміну . (звичайно, я згоден, що у смішному cmd немає ctrl + c on <10)
Franck Dernoncourt

4
@pylover Ганьба в Microsoft, в 2016 році ми повинні використовувати мишу, щоб вставити в Bash, навіть якщо меню стверджує, що Ctrl + V вставляє .
Майкл

Відповіді:


162

Я особисто використовую невеликий скрипт 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 

Цей матеріал заважає Cygwin, коли він працює у вікні ConsoleWindow. Я був схвильований цією порадою, але, на жаль, мені довелося її видалити.
пійо

2
@piyo: можливо ви можете виключити консоль Cygwin за її заголовком? Наприклад: якщо в заголовку консолі написано "ConsoleWindow", ви можете додати щось на зразок WinGetTitle sTitle \ n If (sTitle = "ConsoleWindow") {\ n return \ n} \ n ---
PabloG

Гарна ідея. (+1) Так, це спрацювало б, якщо заголовки вікон не змінюються. Я відчуваю, що маю більше контролю над заголовком вікна в Cygwin, тому, можливо, я можу додати якийсь статичний, але невидимий натякаючий текст для фільтрації AHK.
пійо

@piyo: Цигвіна монетний двір (без участі X) настільки приємний для оболонки
цигувіна

1
HowToGeek пропонує "SendInput {Raw}% clipboard%" замість ep-місця alt-space. Тоді ви позбудетесь і від мерехтіння
Вегар Вестерлунд,

428

Так .. але незручно. Посилання

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


18
Не зовсім те, на що я сподівався, але, звичайно, це працює. Кілька додаткових порад: Якщо ви нанесли ALT + SPACE на запуск програми (наприклад, Launchy), замість цього використовуйте ALT-SHIFT-SPACE Якщо ви використовуєте не-англійську версію Windows, останні 2 клавіші, звичайно, будуть відрізнятися (наприклад, B + E для пасти німецькою мовою)
sme

4
Просто для пояснення вибору також: ALT + SPACE + E + K <- для копіювання. і переміщайтесь вгору, вниз, вліво, вправо зі стрілками Shift + стрілка праворуч <- для вибору тексту ALT + SPACE + E + P <- для вставки.
Йордан Георгієв

6
до складних, мені не вистачає пальців, щоб виконати цю роботу
піловер

5
Я вважаю цю відповідь найбільш корисною і прямо до суті. Ключова послідовність мене не шокує, оскільки є послідовності акордів Emacs досить гірші, ніж ця. Власне, ярлика віконного меню Alt + пробілу достатньо, щоб зрозуміти, що натиснути далі, оскільки є візуальний зворотній зв'язок (підкреслені символи).
ацелент

2
Для французьких вікон: [Alt] + [Пробіл], [m], [c] для копіювання, [Alt] + [Пробіл], [m], [o] для вставки
Deleplace

137

Не дуже пов’язане з програмуванням, але я виявив це в Google, немає прямої комбінації клавіш , але це робить трохи швидше.

Щоб увімкнути або вимкнути режим QuickEdit:

  1. Відкрийте програму MS-DOS або командний рядок.
  2. Клацніть правою кнопкою миші рядок заголовка і натисніть Властивості.
  3. Виберіть вкладку Параметри.
  4. Установіть або зніміть прапорець у режимі QuickEdit Mode.
  5. Натисніть OK.
  6. У діалоговому вікні "Застосувати властивості до ярлика" виберіть Застосувати властивості до поточного вікна, лише якщо ви бажаєте змінити налаштування QuickEdit лише для цього сеансу цього вікна, або виберіть Змінити ярлик, який запустив це вікно, щоб змінити налаштування QuickEdit для всіх майбутніх викликів командний рядок або програма MS-DOS.

QuickEdit

Щоб скопіювати текст, коли увімкнено функцію QuickEdit:

  1. Клацніть та перетягніть вказівник миші на потрібний текст.
  2. Натисніть Enter (або клацніть правою кнопкою миші де-небудь у вікні), щоб скопіювати текст у буфер обміну.

Щоб вставити текст, коли QuickEdit увімкнено:

  1. Клацніть правою кнопкою миші в будь-якому місці вікна.

Щоб скопіювати текст, коли функцію QuickEdit відключено:

  1. Клацніть правою кнопкою миші рядок заголовка, натисніть Редагувати в меню та натисніть Позначити.
  2. Перетягніть курсор миші на текст, який ви хочете скопіювати.
  3. Натисніть Enter (або клацніть правою кнопкою миші де-небудь у вікні), щоб скопіювати текст у буфер обміну.

Щоб вставити текст, коли QuickEdit вимкнено:

  1. Клацніть правою кнопкою миші рядок заголовка, натисніть кнопку Правка в меню та натисніть Вставити.

14
ми говоримо про комбінації клавіш.
піловер

11
Клацання правою клавішею мені здається досить коротким
Джей Салліван,

19
Переміщення вашої руки від клавіатури до миші дискваліфікує її як "досить коротку".
Росс Прессер

Гей, це здорово. Ось як я його використовую: я створив ярлик на своєму робочому столі до cmd.exe, потім клацнув правою кнопкою миші на "Прив’язати до панелі завдань" - потім видаліть ярлик з робочого столу ... потім я клацну правою кнопкою миші на ньому біт завдань, потім знову клацніть правою кнопкою миші, коли вона показує cmd, і виберіть Властивості. Я переходжу до Advanced, а потім кажу, щоб він працював як Адміністратор. Потім поверніть OK і виберіть вкладку параметрів і ввімкніть QuickEdit так, як ви описуєте тут. І Voila, це завжди ВИМОЖЕНО, щоб зробити пасту, натискаючи правою кнопкою миші підказку кожного разу, коли я використовую чорний значок CMD на панелі завдань.
SDsolar

35

Дякую Пабло, саме те, що я шукав! Однак, якщо я можу взяти на себе сміливість покращити ваш сценарій, я пропоную замінити ваш макрос ^ 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 + Пробіл E P" для вставки (працює для англійської та іспанської, але не для всіх мов).
  • це дозволяє уникнути того неприємного мерехтіння, яке ви отримуєте під час створення та знищення меню.

Зауважте, важливо включити "{Raw}" в команду SendInput, якщо буфер обміну містить "!", "+", "^" Або "#".

Зауважте, він використовує StringReplace для видалення зайвих символів повернення каретки Windows. Дякую Хугову за цю пропозицію!


2
хороший, поліпшення завжди вітаються!
ПаблоГ

1
відмінно! відповідь за замовчуванням промайнула спливаюче меню, що дратувало
Євген Бурмако,

спасибі, цей дає ctrl-vв консолі «рідне» почуття
jettico

Коли я натискаю ctrl+vйого, вставляється правильно, але також починає виконувати рядок (він як би enterнатискається згодом). Як я можу запобігти цьому?
LoMaPh

18

Також є чудовий інструмент з відкритим кодом під назвою clink , який розширює cmd за багатьма можливостями. Один з них може використовувати ctrl + v для вставки тексту.


Більшість можливостей клінку чудові, але це порушує одну корисну особливість IMO. Автодоповнення cmd.exe проходить цикл файлів. "clink" відображає список, коли кілька файлів починаються з одного імені. Для довгих імен файлів, які починаються з однойменної назви, cmd.exe покращує автозавершення.
ChaimG

15

2
Вони перенесли це налаштування на вкладку параметрів і включили його за замовчуванням, тому експериментального більше не існує (здається, все знаходиться на вкладці параметрів, просто налаштування непрозорості знаходиться у вкладці кольорів). Отже, воно повинно просто працювати зараз :)
Дивовижність

8

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

введіть тут опис зображення

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


4

найпростіший метод - це просто скопіювати текст, який потрібно вставити в cmd, і відкрити cmd goto "властивості" ---> "параметр" вкладку ----> встановити прапорець (дати галочку) "режим швидкого редагування" та натиснути " ОК "..... тепер ви можете вставити будь-який текст із буфера обміну, натиснувши правою клавішею миші ур.

Дякую..


4

Дякую, Пабло, за посилання на утиліту 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 EP

Якщо ви можете використовувати мишу, клацніть правою кнопкою миші на вікні cmd, як вставте, коли я спробував це.


Так, клацання правою кнопкою миші працює чудово, але я цього намагаюся уникати.
смі

Виходить чотири удари натисканням клавіші, рухаючи руку мишкою. Це рішення також виграє, оскільки готове перейти на будь-яку машину.
Нік

3

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


1
Як бічна примітка: коли ви бачите cmd через з'єднання RDP, це Alt-Del замість Alt-Space.
Бові

2

Знадобилося трохи часу, щоб зрозуміти, чому ваш сценарій 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

Якщо ви використовуєте менеджер буфера обміну Ditto (з відкритим кодом, безкоштовно), ви можете просто скористатися ярликом для вставки з Ditto, і він вставить буфер обміну в CMD для вас.

введіть тут опис зображення


1

Ви можете спробувати використовувати Texter і створити щось малоймовірне, як-от:

./p, спровокований пробілом та замінивши текст% c

Я просто перевірив це, і він працює чудово. Єдина проблема - це використовувати рідкісну послідовність, оскільки Texter не може обмежити це лише cmd.

Напевно, є й інші утиліти подібного типу, які могли б працювати, і навіть AutoHotKey , на якій побудований Texter, може зробити це краще, але Texter легко :-)


1

Більш простий спосіб - використовувати windows powerhell замість cmd. добре працює з текстом.


1

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


1
Відповідно до питання: замість правої кнопки миші
Саймон Лішке


1

Якщо ви користувач Cygwin, ви можете додати таке до файлу ~ / .bashrc:

stty lnext ^q stop undef start undef

І до вашого файлу ~ / .inputrc:

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

Перезапустіть термінал Cygwin.

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

Джерело


1

Замість "клацання правою кнопкою миші" .... розпочніть сеанс (як тільки ви знаходитесь у вікні командного рядка), натиснувши клавішу Alt / SpaceBar. Це відкриє меню вікна командного рядка, і ви побачите знайомі підкреслені комбінації клавіш, як у графічному інтерфейсі Windows.

Удачі!


1

Я виконував кроки @ PabloG наступним чином

  1. goto http://www.autohotkey.com/ - завантажуйте автоматичну клавішу
  2. дотримуйтесь простих кроків установки
  3. після установки створіть новий файл * .ahk наступним чином клацніть правою кнопкою миші на робочому столі> новий> Сценарій автоматичної клавіші> giveAnyFileName.ahk
  4. клацніть правою кнопкою миші на цей файл> Редагувати
  5. скопіюйте сценарій автоматичної клавіші вставлення, наданий @PabloG у своїй відповіді
  6. зберегти і закрити
  7. двічі клацніть файл для запуску
  8. Готово зараз, ви повинні мати можливість використовувати Ctrl+ vдля вставки в командному рядку

-4

Під командним рядком VISTA: Клацніть на значку системи Виберіть за замовчуванням у меню На вкладці Параметри в групі Опції у мене вибрано "Швидкий режим редагування", "Вставити режим" та "Автоматичне завершення". Я думаю, що "Швидкий режим редагування" це те, що змушує його працювати.

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


8
Яка частина "замість правої кнопки миші" ви не розумієте;)
reiniero
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.