มีแป้นพิมพ์ลัดสำหรับการวางเนื้อหาของคลิปบอร์ดลงในหน้าต่างพรอมต์คำสั่งใน 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 ไม่มีแป้นพิมพ์ลัดโดยตรงแต่ทำให้เร็วขึ้นเล็กน้อย
ขอบคุณ Pablo เพียงสิ่งที่ฉันกำลังมองหา! อย่างไรก็ตามหากฉันมีอิสระในการปรับปรุงสคริปต์ของคุณเล็กน้อยฉันขอแนะนำให้แทนที่มาโคร ^ 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 ขอบคุณ hugov สำหรับคำแนะนำนั้น!
ctrl-v
ในความรู้สึก 'พื้นเมือง' คอนโซล
ctrl+v
มันวางอย่างถูกต้อง แต่ก็เริ่มดำเนินการสตริง (มันก็เหมือนenter
กดหลังจากนั้น) ฉันจะป้องกันได้อย่างไร
นอกจากนี้ยังมีเครื่องมือโอเพนซอร์สที่ยอดเยี่ยมที่เรียกว่าเสียงกริ๊กซึ่งขยาย cmd ด้วยคุณสมบัติมากมาย หนึ่งในนั้นคือสามารถใช้ ctrl + v เพื่อแทรกข้อความ
บน Windows 10 คุณสามารถเปิดใช้งานCtrl+ CและCtrl+ Vเพื่อทำงานในพร้อมท์คำสั่ง :
นี่คือเครื่องมือฟรีที่จะใช้กับ Windows ฉันชอบสคริปต์มากกว่าตั้งค่าได้ง่าย มันทำงานเป็นแอพเนทีฟแบบรวดเร็ว, ทำงานบน XP และสูงกว่า, มีการตั้งค่าการกำหนดค่าที่อนุญาตให้ทำการแมปปุ่มคัดลอก / วาง / เลือกใหม่สำหรับหน้าต่างคำสั่ง:
บวกฉันรู้ว่านักพัฒนา
วิธีที่ง่ายที่สุดคือเพียงคัดลอกข้อความที่คุณต้องการวางใน cmd และเปิด cmd goto "Properties" ---> "ตัวเลือก" แท็บ ----> ตรวจสอบ (ให้เครื่องหมายถูก) "โหมด quickEdit" และคลิก " ตกลง "..... ตอนนี้คุณสามารถวางข้อความจากคลิปบอร์ดโดยคลิกขวาจากเมาส์
ขอบคุณ..
ขอบคุณ Pablo ที่อ้างถึงโปรแกรมอรรถประโยชน์ AutoHotkey เนื่องจากฉันติดตั้ง Launchy ซึ่งใช้Alt+ Spaceฉันต้องแก้ไข a แต่ต้องเพิ่ม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 เพื่อเปิดเมนูระบบของหน้าต่าง Prompt จากนั้นกด E, P เพื่อเลือก Edit, Paste menu อย่างไรก็ตาม MS สามารถให้ทางลัดโดยใช้ Win-key ไม่มีโอกาสที่จะใช้ในแอปพลิเคชัน 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
ฉันเพิ่งทดสอบและใช้งานได้ดี gotcha เพียงอย่างเดียวคือใช้ลำดับที่หายากเนื่องจาก Texter ไม่สามารถ จำกัด สิ่งนี้ได้เพียง cmd
อาจมีโปรแกรมอรรถประโยชน์อื่น ๆ ประเภทนี้ซึ่งสามารถใช้งานได้และแม้กระทั่งAutoHotKeyซึ่ง Texter ถูกสร้างขึ้นสามารถทำได้ดีกว่า แต่ Texter นั้นง่าย :-)
วิธีที่ง่ายกว่าคือการใช้ windows powershell แทน cmd ทำงานได้ดีกับ 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
รีสตาร์ท Terminal Cygwin ของคุณ
(หมายเหตุฉันใช้ตัวพิมพ์ใหญ่ C สำหรับการคัดลอกเนื่องจาก CTRL + c ถูกกำหนดให้กับฟังก์ชันตัวแบ่งบนคอนโซลส่วนใหญ่ซีซันเพื่อลิ้มรส)
แทนที่จะเป็น "คลิกขวา" .... เริ่มเซสชันของคุณ (เมื่อคุณอยู่ในหน้าต่างพรอมต์คำสั่ง) โดยป้อน Alt / SpaceBar ที่จะเปิดเมนูหน้าต่างพร้อมรับคำสั่งและคุณจะเห็นแป้นพิมพ์ลัดคำสั่งที่ขีดเส้นใต้คุ้นเคยเหมือนใน Windows GUI
โชคดี!
ฉันทำตามขั้นตอนของ @ PabloG ดังนี้
ภายใต้พรอมต์คำสั่ง VISTA: คลิกที่ไอคอนระบบเลือกค่าเริ่มต้นจากเมนูบนแท็บตัวเลือกในกลุ่มตัวเลือกฉันมี "โหมดแก้ไขด่วน", "แทรกโหมด" และเลือก "ดำเนินการอัตโนมัติ" ฉันคิดว่า "โหมดแก้ไขด่วน" เป็นสิ่งที่ทำให้มันทำงาน
หากต้องการวางสิ่งที่อยู่ในคลิปบอร์ดที่จุดแทรกให้คลิกขวา ในการคัดลอกจากหน้าต่างคำสั่งเลือกโดยกดปุ่มซ้ายของเมาส์ค้างไว้แล้วลากตัวชี้ข้ามสิ่งที่คุณต้องการคัดลอกเมื่อเลือกแล้วให้คลิกขวาเพื่อวางที่จุดแทรกให้คลิกขวาอีกครั้ง