แป้นพิมพ์ลัดเพื่อวางเนื้อหาของคลิปบอร์ดลงในหน้าต่างพร้อมท์คำสั่ง (Win XP) [ปิด]


303

มีแป้นพิมพ์ลัดสำหรับการวางเนื้อหาของคลิปบอร์ดลงในหน้าต่างพรอมต์คำสั่งใน Windows XP (แทนที่จะใช้ปุ่มเมาส์ขวา) หรือไม่?

ดูเหมือนว่าShift+ ทั่วไปInsertไม่ทำงานที่นี่



ทำสิ่งที่คุณชื่นชอบลองดูคำตอบ 'เสียงกริ๊ก' ในหน้านี้ ctrl-v และอีกมากมาย
bdumtish

2
คง @pylover ใน2015
Franck Dernoncourt

1
@pylover มิฉะนั้นสำหรับ <10 คุณสามารถใช้ผู้จัดการคลิปบอร์ด (แน่นอนฉันยอมรับว่ามันเป็นคำสั่งที่ไร้สาระไม่มี ctrl + c ใน <10)
Franck Dernoncourt

4
@pylover Shame บน Microsoft ในปี 2559 เราต้องใช้เมาส์เพื่อวางลงใน Bash แม้ว่าเมนูจะอ้างว่า Ctrl + V วางอยู่
Michael

คำตอบ:


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 ฉันรู้สึกตื่นเต้นเกี่ยวกับเคล็ดลับนี้ แต่น่าเสียดายที่ฉันต้องถอนการติดตั้ง
piyo

2
@piyo: บางทีคุณสามารถแยกคอนโซล Cygwin ได้ด้วยแถบชื่อเรื่อง เช่น: หากแถบชื่อคอนโซลบอกว่า "ConsoleWindow" คุณสามารถเพิ่มบางสิ่งเช่น WinGetTitle sTitle \ n If (sTitle = "ConsoleWindow") {\ n return \ n} \ n ---
PabloG

ความคิดที่ดี. (+1) ใช่ว่าจะใช้งานได้หากชื่อหน้าต่างไม่มีการเปลี่ยนแปลง ฉันรู้สึกว่าฉันสามารถควบคุมหัวเรื่องหน้าต่างได้มากขึ้นใน Cygwin ดังนั้นฉันสามารถเพิ่มข้อความคำใบ้แบบคงที่ แต่มองไม่เห็นสำหรับการกรองของ AHK
piyo

@piyo: Cygwin mintty (ไม่ X ที่เกี่ยวข้อง) จึงเป็นเรื่องที่ดีกว่าสำหรับเปลือก Cygwin ...
เปาโล Scardine

1
HowToGeek แนะนำ "SendInput {Raw}% คลิปบอร์ด%" แทน alt-space ep ถ้าอย่างนั้นคุณก็กำจัดริบหรี่ได้เช่นกัน
Vegar Westerlund

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 <- เพื่อวาง
Yordan Georgiev

6
ถึงคอมเพล็กซ์ฉันมีนิ้วไม่พอที่จะทำงานนี้
pylover

5
ฉันพบว่าคำตอบนี้มีประโยชน์มากที่สุดและตรงประเด็น ลำดับสำคัญไม่ได้ทำให้ฉันตกใจเพราะ Emacs chord sequences ค่อนข้างแย่กว่านี้ ที่จริงแล้วเมนูลัดของหน้าต่าง Alt + Space ก็เพียงพอที่จะเข้าใจสิ่งที่ต้องกดถัดไปเนื่องจากมีข้อเสนอแนะทางภาพ (ตัวอักษรที่ขีดเส้นใต้)
acelent

2
สำหรับ Windows ภาษาฝรั่งเศส: [Alt] + [Space], [m], [c] เพื่อคัดลอก, [Alt] + [Space], [m], [o] เพื่อวาง
Deleplace

137

ไม่เกี่ยวข้องกับการเขียนโปรแกรม แต่ฉันพบสิ่งนี้บน Google ไม่มีแป้นพิมพ์ลัดโดยตรงแต่ทำให้เร็วขึ้นเล็กน้อย

วิธีเปิดใช้งานหรือปิดใช้งานโหมด QuickEdit:

  1. เปิดโปรแกรม MS-DOS หรือพรอมต์คำสั่ง
  2. คลิกขวาที่แถบหัวเรื่องแล้วกดคุณสมบัติ
  3. เลือกแท็บตัวเลือก
  4. ทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายในช่อง QuickEdit Mode
  5. กดตกลง
  6. ในกล่องโต้ตอบใช้คุณสมบัติกับทางลัดให้เลือกใช้คุณสมบัติกับหน้าต่างปัจจุบันเฉพาะในกรณีที่คุณต้องการเปลี่ยนการตั้งค่า QuickEdit สำหรับเซสชันนี้ของหน้าต่างนี้เท่านั้นหรือเลือกแก้ไขทางลัดที่เริ่มต้นหน้าต่างนี้เพื่อเปลี่ยนการตั้งค่า QuickEdit สำหรับการร้องขอในอนาคตทั้งหมด พรอมต์คำสั่งหรือโปรแกรม MS-DOS

QuickEdit

ในการคัดลอกข้อความเมื่อเปิดใช้งาน QuickEdit:

  1. คลิกและลากตัวชี้เมาส์ไปบนข้อความที่คุณต้องการ
  2. กด Enter (หรือคลิกขวาที่ใดก็ได้ในหน้าต่าง) เพื่อคัดลอกข้อความไปยังคลิปบอร์ด

เมื่อต้องการวางข้อความเมื่อเปิดใช้งาน QuickEdit:

  1. คลิกขวาที่ใดก็ได้ในหน้าต่าง

วิธีคัดลอกข้อความเมื่อปิดใช้งาน QuickEdit:

  1. คลิกขวาที่แถบชื่อเรื่องกดแก้ไขบนเมนูแล้วกดทำเครื่องหมาย
  2. ลากเมาส์ไปเหนือข้อความที่คุณต้องการคัดลอก
  3. กด Enter (หรือคลิกขวาที่ใดก็ได้ในหน้าต่าง) เพื่อคัดลอกข้อความไปยังคลิปบอร์ด

เมื่อต้องการวางข้อความเมื่อปิดใช้งาน QuickEdit:

  1. คลิกขวาที่แถบชื่อเรื่องกดแก้ไขบนเมนูแล้วกดวาง

14
เรากำลังพูดถึงแป้นพิมพ์ลัด
pylover

11
การคลิกขวาดูเหมือนว่าจะค่อนข้างสั้นสำหรับฉัน
Jay Sullivan

19
การขยับมือของคุณจากแป้นพิมพ์ไปยังเมาส์ทำให้คุณสมบัติของมันสั้น "ค่อนข้างสั้น"
Ross Presser

นี่มันเท่ห์ นี่คือวิธีที่ฉันใช้: ฉันได้สร้างทางลัดบนเดสก์ท็อปของฉันไปยัง cmd.exe แล้วคลิกขวาที่ "Pin to taskbar" - จากนั้นลบทางลัดออกจากเดสก์ท็อป ... จากนั้นฉันคลิกขวาบน ค้างคาวงานจากนั้นคลิกขวาอีกครั้งเมื่อมันแสดง cmd และเลือกคุณสมบัติ ฉันไปที่ขั้นสูงแล้วบอกให้ทำงานเป็นผู้ดูแลระบบ จากนั้นตกลงกลับมาและเลือกแท็บตัวเลือกและเปิดใช้งาน QuickEdit เช่นเดียวกับที่คุณอธิบายที่นี่ และ Voila นี่เป็นการเปิดใช้งานเสมอสำหรับการวางที่จะทำโดยคลิกขวาที่พร้อมท์เมื่อใดก็ตามที่ฉันใช้ไอคอน CMD สีดำในแถบงาน
SDsolar

35

ขอบคุณ 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 ก็คือ

  • มันไม่พึ่งพาเมนูระบบพรอมต์คำสั่งที่มีรายการเมนู "Alt + Space E P" เพื่อทำการวาง (ทำงานได้กับภาษาอังกฤษและสเปน แต่ไม่ใช่สำหรับทุกภาษา)
  • มันหลีกเลี่ยงการสั่นไหวที่น่ารังเกียจที่คุณได้รับในขณะที่เมนูถูกสร้างและทำลาย

หมายเหตุสิ่งสำคัญคือต้องรวม "{Raw}" ในคำสั่ง SendInput ในกรณีที่คลิปบอร์ดมี "!", "+", "^" หรือ "#"

หมายเหตุมันใช้ StringReplace เพื่อลบอักขระการขึ้นบรรทัดใหม่ของ Windows ขอบคุณ hugov สำหรับคำแนะนำนั้น!


2
สิ่งที่ดีการปรับปรุงยินดีต้อนรับเสมอ!
PabloG

1
! ที่ดีเยี่ยม คำตอบเริ่มต้น
กะพริบ

ขอบคุณหนึ่งนี้ให้ctrl-vในความรู้สึก 'พื้นเมือง' คอนโซล
jettico

เมื่อฉันกดctrl+vมันวางอย่างถูกต้อง แต่ก็เริ่มดำเนินการสตริง (มันก็เหมือนenterกดหลังจากนั้น) ฉันจะป้องกันได้อย่างไร
LoMaPh

18

นอกจากนี้ยังมีเครื่องมือโอเพนซอร์สที่ยอดเยี่ยมที่เรียกว่าเสียงกริ๊กซึ่งขยาย cmd ด้วยคุณสมบัติมากมาย หนึ่งในนั้นคือสามารถใช้ ctrl + v เพื่อแทรกข้อความ


คุณสมบัติส่วนใหญ่ของเสียงกริ๊งนั้นยอดเยี่ยม แต่มันก็มีคุณสมบัติที่มีประโยชน์อย่างหนึ่งอย่าง IMO การเติมข้อความอัตโนมัติของ cmd.exe จะวนไปตามไฟล์ต่างๆ clink's แสดงรายการเมื่อหลายไฟล์เริ่มต้นด้วยชื่อเดียวกัน สำหรับชื่อไฟล์แบบยาวที่ขึ้นต้นด้วยชื่อเดียวกัน cmd.exe จะมีการเติมข้อความอัตโนมัติที่ดีกว่า
ChaimG

15

2
พวกเขาย้ายการตั้งค่านี้ไปที่ตัวเลือก - แท็บและเปิดใช้งานโดยค่าเริ่มต้นดังนั้นการทดลองไม่มีอยู่อีกต่อไป (ทุกอย่างดูเหมือนจะอยู่ในตัวเลือก - แท็บเพียงการตั้งค่า opactiy อยู่ในแท็บสี) ดังนั้นมันก็ควรจะทำงาน ตอนนี้ :)
Awesomeness

8

นี่คือเครื่องมือฟรีที่จะใช้กับ Windows ฉันชอบสคริปต์มากกว่าตั้งค่าได้ง่าย มันทำงานเป็นแอพเนทีฟแบบรวดเร็ว, ทำงานบน XP และสูงกว่า, มีการตั้งค่าการกำหนดค่าที่อนุญาตให้ทำการแมปปุ่มคัดลอก / วาง / เลือกใหม่สำหรับหน้าต่างคำสั่ง:

ป้อนคำอธิบายรูปภาพที่นี่

บวกฉันรู้ว่านักพัฒนา


4

วิธีที่ง่ายที่สุดคือเพียงคัดลอกข้อความที่คุณต้องการวางใน cmd และเปิด cmd goto "Properties" ---> "ตัวเลือก" แท็บ ----> ตรวจสอบ (ให้เครื่องหมายถูก) "โหมด quickEdit" และคลิก " ตกลง "..... ตอนนี้คุณสามารถวางข้อความจากคลิปบอร์ดโดยคลิกขวาจากเมาส์

ขอบคุณ..


4

ขอบคุณ 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

3

นี่ไม่ใช่ทางลัดจริงๆ แต่เป็นเพียงการเข้าถึงเมนูควบคุมอย่างรวดเร็ว: Alt-space EP

หากคุณสามารถใช้เมาส์ของคุณคลิกขวาบนหน้าต่าง cmd ทำงานเป็นวางเมื่อฉันพยายาม


ใช่คลิกขวาทำงานได้ดี แต่นั่นคือสิ่งที่ฉันพยายามหลีกเลี่ยง
sme

ปรากฎว่าการกดแป้นสี่ครั้งทำให้มือขยับเมาส์ โซลูชันนี้ยังชนะเพราะพร้อมที่จะไปกับเครื่องใดก็ได้
Nick

3

ตามหลักการแล้วแอปพลิเคชั่นใน DOS Prompt มีคลิปบอร์ดและทางลัดของตัวเอง ในการนำเข้าข้อความจากคลิปบอร์ดของ Windows คือ "พิเศษ" อย่างไรก็ตามคุณสามารถใช้ Alt-Space เพื่อเปิดเมนูระบบของหน้าต่าง Prompt จากนั้นกด E, P เพื่อเลือก Edit, Paste menu อย่างไรก็ตาม MS สามารถให้ทางลัดโดยใช้ Win-key ไม่มีโอกาสที่จะใช้ในแอปพลิเคชัน DOS


1
เช่นเดียวกับข้อความด้านข้าง: เมื่อคุณเห็น cmd ผ่านการเชื่อมต่อ RDP นั่นคือ Alt-Del แทนที่จะเป็น Alt-Space
Bowi

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

ฉันเพิ่งทดสอบและใช้งานได้ดี gotcha เพียงอย่างเดียวคือใช้ลำดับที่หายากเนื่องจาก Texter ไม่สามารถ จำกัด สิ่งนี้ได้เพียง cmd

อาจมีโปรแกรมอรรถประโยชน์อื่น ๆ ประเภทนี้ซึ่งสามารถใช้งานได้และแม้กระทั่งAutoHotKeyซึ่ง Texter ถูกสร้างขึ้นสามารถทำได้ดีกว่า แต่ Texter นั้นง่าย :-)


1

วิธีที่ง่ายกว่าคือการใช้ windows powershell แทน cmd ทำงานได้ดีกับ texter


1

ฉันเพิ่งพบว่าพรอมต์คำสั่งมีการสนับสนุนเมนูบริบทผ่านการคลิกเมาส์ขวา คุณสามารถค้นหารายละเอียดเพิ่มเติมได้ที่นี่: http://www.askdavetaylor.com/copy_paste_within_microsoft_windows_command_prompt.html


1
ตามคำถาม: แทนที่จะใช้ปุ่มเมาส์ขวา
Simon Lieschke


1

หากคุณเป็นผู้ใช้ 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 ถูกกำหนดให้กับฟังก์ชันตัวแบ่งบนคอนโซลส่วนใหญ่ซีซันเพื่อลิ้มรส)

แหล่ง


1

แทนที่จะเป็น "คลิกขวา" .... เริ่มเซสชันของคุณ (เมื่อคุณอยู่ในหน้าต่างพรอมต์คำสั่ง) โดยป้อน Alt / SpaceBar ที่จะเปิดเมนูหน้าต่างพร้อมรับคำสั่งและคุณจะเห็นแป้นพิมพ์ลัดคำสั่งที่ขีดเส้นใต้คุ้นเคยเหมือนใน Windows GUI

โชคดี!


1

ฉันทำตามขั้นตอนของ @ PabloG ดังนี้

  1. goto http://www.autohotkey.com/ - ดาวน์โหลด autohotkey
  2. ทำตามขั้นตอนการติดตั้งง่าย ๆ
  3. หลังการติดตั้งให้สร้างไฟล์ * .ahk ใหม่ดังต่อไปนี้คลิกขวาที่เดสก์ท็อป> ใหม่> สคริปต์ Autohotkey> giveAnyFileName.ahk
  4. คลิกขวาที่ไฟล์นี้> แก้ไข
  5. คัดลอกวางสคริปต์ autohotkey โดย @PabloG ในคำตอบของเขา
  6. บันทึกและปิด
  7. ดับเบิลคลิกที่ไฟล์เพื่อเรียกใช้
  8. เสร็จสิ้นตอนนี้คุณควรจะสามารถใช้Ctrl+ vเพื่อวางในพร้อมท์คำสั่ง

-4

ภายใต้พรอมต์คำสั่ง VISTA: คลิกที่ไอคอนระบบเลือกค่าเริ่มต้นจากเมนูบนแท็บตัวเลือกในกลุ่มตัวเลือกฉันมี "โหมดแก้ไขด่วน", "แทรกโหมด" และเลือก "ดำเนินการอัตโนมัติ" ฉันคิดว่า "โหมดแก้ไขด่วน" เป็นสิ่งที่ทำให้มันทำงาน

หากต้องการวางสิ่งที่อยู่ในคลิปบอร์ดที่จุดแทรกให้คลิกขวา ในการคัดลอกจากหน้าต่างคำสั่งเลือกโดยกดปุ่มซ้ายของเมาส์ค้างไว้แล้วลากตัวชี้ข้ามสิ่งที่คุณต้องการคัดลอกเมื่อเลือกแล้วให้คลิกขวาเพื่อวางที่จุดแทรกให้คลิกขวาอีกครั้ง


8
ส่วนใดของ "แทนที่จะใช้ปุ่มเมาส์ขวา" คุณไม่เข้าใจ;)
reiniero
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.