Чи є комбінація клавіш для вставки вмісту буфера обміну у вікно командного рядка в 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 та новіших версіях, має налаштування конфігурації, які дозволяють перезавантажувати копіювати / вставляти / вибирати ключі для команд Windows:
Плюс я знаю розробників.
найпростіший метод - це просто скопіювати текст, який потрібно вставити в cmd, і відкрити cmd goto "властивості" ---> "параметр" вкладку ----> встановити прапорець (дати галочку) "режим швидкого редагування" та натиснути " ОК "..... тепер ви можете вставити будь-який текст із буфера обміну, натиснувши правою клавішею миші ур.
Дякую..
Дякую, Пабло, за посилання на утиліту 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
Досить простим рішенням може бути консоль 2 , переосмислення ключів і ви йдете.
Якщо ви користувач Cygwin, ви можете додати таке до файлу ~ / .bashrc:
stty lnext ^q stop undef start undef
І до вашого файлу ~ / .inputrc:
"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard
Перезапустіть термінал Cygwin.
(Зверніть увагу, я використовував верхній регістр С для копіювання, оскільки CTRL + c призначений функції перерви на більшості консолей. Сезон за смаком.)
Замість "клацання правою кнопкою миші" .... розпочніть сеанс (як тільки ви знаходитесь у вікні командного рядка), натиснувши клавішу Alt / SpaceBar. Це відкриє меню вікна командного рядка, і ви побачите знайомі підкреслені комбінації клавіш, як у графічному інтерфейсі Windows.
Удачі!
Я виконував кроки @ PabloG наступним чином
Під командним рядком VISTA: Клацніть на значку системи Виберіть за замовчуванням у меню На вкладці Параметри в групі Опції у мене вибрано "Швидкий режим редагування", "Вставити режим" та "Автоматичне завершення". Я думаю, що "Швидкий режим редагування" це те, що змушує його працювати.
Щоб вставити все, що є у буфер обміну в точці вставки: Клацніть правою кнопкою миші. Копіювання з вікна команд Виберіть, утримуючи ліву кнопку миші та перетягнувши вказівник на те, що ви хочете скопіювати Після вибору натисніть правою кнопкою миші Щоб вставити в точку вставки, клацніть правою кнопкою миші ще раз.