Pintasan keyboard untuk menempelkan konten clipboard ke jendela command prompt (Win XP) [ditutup]


303

Apakah ada pintasan keyboard untuk menempelkan konten clipboard ke jendela command prompt pada Windows XP (daripada menggunakan tombol kanan mouse)?

Shift+ Khas Insertsepertinya tidak berfungsi di sini.



Bantulah diri Anda sendiri, periksa jawaban 'denting' di halaman ini. ctrl-v dan banyak lagi.
bdumtish

2
@pylover diperbaiki pada tahun 2015 .
Franck Dernoncourt

1
@pylover Jika tidak untuk <10, Anda dapat menggunakan clipboard manager . (tentu saja saya setuju bahwa cmd konyol itu tidak memiliki ctrl + c pada <10)
Franck Dernoncourt

4
@pylover Malu pada Microsoft, pada tahun 2016 kita harus menggunakan mouse untuk menempelkan ke Bash, meskipun menu mengklaim bahwa Ctrl + V menempel.
Michael

Jawaban:


162

Saya pribadi menggunakan sedikit script Autohotkey untuk memetakan kembali fungsi keyboard tertentu, untuk jendela konsol (CMD) yang saya gunakan:

; 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 

Hal ini mengganggu Cygwin ketika dijalankan di dalam ConsoleWindow. Saya sangat senang dengan tip ini tetapi sayangnya saya harus menghapusnya.
piyo

2
@piyo: mungkin Anda bisa mengecualikan konsol Cygwin dengan titlebar-nya? misal: jika bilah judul konsol bertuliskan "ConsoleWindow" Anda dapat menambahkan sesuatu seperti WinGetTitle sTitle \ n If (sTitle = "ConsoleWindow") {\ n return \ n} \ n ---
PabloG

Ide bagus. (+1) Ya itu akan berhasil jika judul jendela tidak berubah. Saya merasa seperti saya memiliki lebih banyak kontrol atas judul jendela di Cygwin jadi mungkin saya dapat menambahkan beberapa teks petunjuk statis namun tidak terlihat untuk pemfilteran AHK.
piyo

@piyo: cygwin mintty (tidak ada X yang terlibat) lebih baik untuk shell cygwin ...
Paulo Scardine

1
HowToGeek menyarankan "SendInput {Raw}% clipboard%" alih-alih alt-space ep. Kemudian Anda menyingkirkan kedipan juga
Vegar Westerlund

428

Ya .. tapi canggung. Tautan

alt+ Space, e, k<- untuk menyalin dan
alt+ Space, e, p<- untuk pasta.


18
Tidak persis apa yang saya harapkan, tetapi tentu saja itu berhasil. Beberapa tips tambahan: Jika Anda telah memetakan ALT + SPACE ke peluncur aplikasi Anda (misalnya Launchy) gunakan ALT-SHIFT-SPACE sebagai gantinya. Jika Anda menggunakan versi windows yang tidak menggunakan bahasa Inggris, 2 kunci terakhir tentu saja akan berbeda (mis. B + E untuk tempel dalam bahasa Jerman)
sme

4
Hanya untuk menjelaskan memilih juga: ALT + SPACE + E + K <- untuk salinan. dan arahkan ke atas, bawah, kiri, kanan dengan panah Shift + panah kanan <- untuk memilih teks ALT + SPACE + E + P <- untuk menempelkan.
Yordan Georgiev

6
untuk rumit, saya tidak punya cukup jari untuk melakukan pekerjaan ini
pylover

5
Saya menemukan jawaban ini yang paling berguna dan langsung ke intinya. Urutan kuncinya tidak mengejutkan saya, karena ada urutan akor Emacs yang lebih buruk dari ini. Sebenarnya, pintas menu jendela Alt + Space sudah cukup untuk memahami apa yang harus ditekan selanjutnya, karena ada umpan balik visual (karakter yang digarisbawahi).
acelent

2
Untuk jendela Prancis: [Alt] + [Spasi], [m], [c] untuk salinan, [Alt] + [Spasi], [m], [o] untuk tempel
Hapus

137

Tidak benar-benar terkait pemrograman, tetapi saya menemukan ini di Google, tidak ada pintasan keyboard langsung , tetapi membuatnya sedikit lebih cepat.

Untuk mengaktifkan atau menonaktifkan mode QuickEdit:

  1. Buka program MS-DOS, atau prompt perintah.
  2. Klik kanan bilah judul dan tekan Properties.
  3. Pilih tab Opsi.
  4. Centang atau hapus centang pada kotak Mode QuickEdit.
  5. Tekan OK.
  6. Dalam dialog Terapkan Properti Ke Pintasan, pilih Terapkan properti ke jendela saat ini hanya jika Anda ingin mengubah pengaturan QuickEdit untuk sesi ini dari jendela ini saja, atau pilih Ubah pintasan yang memulai jendela ini untuk mengubah pengaturan QuickEdit untuk semua pemanggilan selanjutnya dari command prompt, atau program MS-DOS.

QuickEdit

Untuk Menyalin teks ketika QuickEdit diaktifkan:

  1. Klik dan seret penunjuk tetikus ke teks yang Anda inginkan.
  2. Tekan Enter (atau klik kanan di mana saja di jendela) untuk menyalin teks ke clipboard.

Untuk menempelkan teks ketika QuickEdit diaktifkan:

  1. Klik kanan di mana saja di jendela.

Untuk Menyalin teks ketika QuickEdit dinonaktifkan:

  1. Klik kanan bilah judul, tekan Edit pada menu, dan tekan Tandai.
  2. Seret mouse ke atas teks yang ingin Anda salin.
  3. Tekan Enter (atau klik kanan di mana saja di jendela) untuk menyalin teks ke clipboard.

Untuk menempelkan teks ketika QuickEdit dinonaktifkan:

  1. Klik kanan bilah judul, tekan Edit pada menu, dan tekan Tempel.

14
kita berbicara tentang cara pintas keyboard.
pylover

11
Mengklik kanan sepertinya cukup singkat untuk saya
Jay Sullivan

19
Memindahkan tangan Anda dari keyboard ke mouse mendiskualifikasi sebagai "cukup singkat."
Ross Presser

Hei, itu keren. Inilah cara saya menggunakannya: Saya telah membuat pintasan di desktop saya ke cmd.exe lalu mengklik kanan untuk "Pin to taskbar" - lalu hapus pintasan dari desktop ... lalu saya klik kanan di atasnya di task bat, lalu klik kanan lagi ketika itu menunjukkan cmd, dan pilih Properties. Saya masuk ke Advanced lalu menyuruhnya berjalan sebagai Administrator. Kemudian OK kembali dan pilih tab opsi dan aktifkan QuickEdit seperti yang Anda jelaskan di sini. Dan Voila, ini kemudian SELALU diaktifkan agar tempelan dilakukan dengan mengklik kanan pada prompt setiap kali saya menggunakan ikon CMD hitam di bilah tugas.
SDsolar

35

Terima kasih Pablo, hanya apa yang saya cari! Namun, jika saya dapat sedikit meningkatkan skrip Anda, saya sarankan mengganti makro ^ V Anda dengan yang berikut:

; 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

Keuntungan menggunakan SendInput adalah

  • tidak bergantung pada menu sistem prompt perintah yang memiliki item menu "Alt + Space E P" untuk melakukan paste (berfungsi untuk Inggris dan Spanyol, tetapi tidak untuk semua bahasa).
  • itu menghindari kedipan jahat yang Anda dapatkan saat menu dibuat dan dihancurkan.

Catatan, penting untuk memasukkan "{Raw}" dalam perintah SendInput, jika clipboard mengandung "!", "+", "^" Atau "#".

Catatan, menggunakan StringReplace untuk menghapus kelebihan karakter carriage Windows kembali. Terima kasih hugov untuk saran itu!


2
bagus, perbaikan selalu diterima!
PabloG

1
luar biasa! jawaban standarnya berkedip-kedip menu popup, yang menjengkelkan
Eugene Burmako

terima kasih, yang satu ini memberi ctrl-vdi konsol perasaan 'asli'
jettico

Ketika saya menekan ctrl+vitu pasta dengan benar, tetapi juga mulai mengeksekusi string (seperti enterditekan setelah itu). Bagaimana saya bisa mencegahnya?
LoMaPh

18

Ada juga alat open source yang hebat yang disebut clink , yang memperluas cmd oleh banyak fitur. Salah satunya adalah dapat menggunakan ctrl + v untuk menyisipkan teks.


Sebagian besar fitur clink memang hebat, tetapi itu merusak satu fitur IMO yang bermanfaat. siklus penyelesaian otomatis cmd.exe melalui file. denting menampilkan daftar ketika banyak file dimulai dengan nama yang sama. Untuk nama file panjang yang dimulai dengan nama yang sama, cmd.exe memiliki pelengkapan otomatis yang lebih baik.
ChaimG


8

Ini alat gratis yang akan melakukannya di Windows. Saya lebih suka skrip karena mudah diatur. Ini berjalan sebagai aplikasi asli yang cepat, bekerja di XP dan yang lebih tinggi, memiliki pengaturan konfigurasi yang memungkinkan untuk memetakan kembali tombol salin / tempel / pilihan untuk jendela perintah:

masukkan deskripsi gambar di sini

Ditambah lagi, saya tahu pengembangnya.


4

Metode paling sederhana hanyalah menyalin teks yang ingin Anda rekatkan dalam cmd dan buka cmd goto "properties" ---> "option" tab ----> centang (beri tanda centang) "mode quickEdit" dan klik " ok "..... sekarang Anda dapat menempelkan teks apa saja dari clipboard dengan melakukan klik kanan dari mouse Anda.

Terima kasih..


4

Terima kasih, Pablo, untuk merujuk ke utilitas AutoHotkey. Karena saya telah menginstal Launchy yang menggunakan Alt+ Spacesaya harus memodifikasinya tetapi untuk menambahkan Shiftkunci seperti yang ditunjukkan:

; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !+{Space}ep
return

3

Ini bukan jalan pintas tetapi hanya akses cepat ke menu kontrol: Alt-space EP

Jika Anda dapat menggunakan mouse Anda, klik kanan pada jendela cmd berfungsi sebagai tempel ketika saya mencobanya.


Ya, klik kanan berfungsi dengan baik tetapi itulah yang saya coba hindari.
sme

Ternyata empat ketukan ketukan menggerakkan tangan ke mouse. Solusi ini juga menang karena siap untuk digunakan pada mesin apa pun.
Nick

3

Secara teoritis, aplikasi di DOS Prompt memiliki clipboard dan pintasan sendiri. Mengimpor teks dari papan klip Windows adalah "ekstra". Namun Anda dapat menggunakan Alt-Space untuk membuka menu sistem dari jendela Prompt, lalu tekan E, P untuk memilih Edit, menu Paste. Namun, MS bisa menyediakan jalan pintas menggunakan Win-key. Tidak ada peluang untuk digunakan dalam aplikasi DOS.


1
Sama seperti catatan tambahan: Saat Anda melihat cmd melalui koneksi RDP, itu Alt-Del bukan Alt-Space.
Bowi

2

Butuh beberapa saat untuk mengetahui mengapa skrip Autohotkey Anda tidak berfungsi dengan saya:

; 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

Bahkan, itu bergantung pada penekanan tombol dan akibatnya pada tata letak keyboard! Jadi ketika Anda, sayangnya, hanya memiliki keyboard AZERTY, saran Anda tidak berfungsi. Dan lebih buruk lagi, saya tidak menemukan cara mudah untuk mengganti metode SendInput atau memutar lingkungannya untuk memperbaikinya. Misalnya KirimInput "1" tidak mengirim angka 1.

Saya harus mengubah setiap karakter menjadi unicode untuk membuatnya bekerja di komputer saya:

#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

Tidak terlalu sederhana ...


2

Jika Anda menggunakan clipboard manager Ditto (open source, gratis), Anda cukup menggunakan shortcut untuk menempel dari Ditto, dan itu akan menempelkan clipboard di CMD untuk Anda.

masukkan deskripsi gambar di sini


1

Anda dapat mencoba menggunakan Texter dan membuat sesuatu yang tidak mungkin seperti:

./p, dipicu oleh spasi dan mengganti teks dengan% c

Saya baru saja mengujinya dan berfungsi dengan baik. Satu-satunya gotcha adalah menggunakan urutan langka, karena Texter tidak dapat membatasi ini hanya cmd.

Mungkin ada utilitas lain dari jenis ini yang dapat bekerja, dan bahkan Autohotkey , di mana Texter dibangun dapat melakukannya dengan lebih baik, tetapi Texter mudah :-)


1

Cara yang lebih sederhana adalah dengan menggunakan windows PowerShell bukan cmd. itu bekerja dengan baik dengan texter.




1

Jika Anda pengguna Cygwin, Anda dapat menambahkan yang berikut ini ke file ~ / .bashrc Anda:

stty lnext ^q stop undef start undef

Dan berikut ini ke file ~ / .inputrc Anda:

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

Mulai ulang terminal Cygwin Anda.

(Catatan, saya telah menggunakan C huruf besar untuk menyalin, karena CTRL + c ditugaskan untuk fungsi istirahat di sebagian besar konsol. Bumbu sesuai selera.)

Sumber


1

Alih-alih "klik kanan" .... mulailah sesi Anda (setelah Anda berada di jendela command prompt) dengan memasukkan Alt / SpaceBar. Itu akan membuka menu jendela Prompt Perintah dan Anda akan melihat pintasan perintah keyboard yang digarisbawahi, seperti di Windows GUI.

Semoga berhasil!


1

Saya mengikuti langkah-langkah @ PabloG sebagai berikut

  1. goto http://www.autohotkey.com/ - unduh autohotkey
  2. ikuti langkah-langkah instalasi sederhana
  3. setelah instalasi buat file * .ahk baru sebagai berikut klik kanan pada desktop> new> Autohotkey Script> giveAnyFileName.ame
  4. klik kanan pada file ini> Edit
  5. salin tempel skrip autohotkey yang diberikan oleh @PabloG dalam jawabannya
  6. Simpan dan tutup
  7. klik dua kali pada file untuk menjalankan
  8. Selesai sekarang Anda harus dapat menggunakan Ctrl+ vuntuk menempel di command prompt

-4

Di bawah VISTA Command prompt: Klik pada System Icon Select Defaults dari Menu Pada tab Options di grup Options saya memiliki "Mode Edit Cepat", "Mode Insert", dan "Auto Complete" yang dipilih Saya pikir "Mode Edit Cepat" adalah apa yang membuatnya bekerja.

Untuk menempelkan apa pun yang ada di Clipboard pada titik penyisipan: Klik Kanan. Untuk menyalin dari Command Window Select dengan menahan tombol kiri mouse dan menarik pointer melewati apa yang ingin Anda salin. Setelah dipilih, klik kanan untuk menempel pada titik penyisipan, klik kanan lagi.


8
Bagian mana dari "bukannya menggunakan tombol kanan mouse" yang tidak Anda mengerti;)
reiniero
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.