Skrót klawiaturowy do wklejania zawartości schowka do okna wiersza polecenia (Win XP) [zamknięte]


303

Czy istnieje skrót klawiaturowy do wklejania zawartości schowka do okna wiersza polecenia w systemie Windows XP (zamiast używania prawego przycisku myszy)?

Typowe Shift+ Insertnie wydaje się tutaj działać.



Zrób sobie przysługę, sprawdź odpowiedź „brzęk” na tej stronie. ctrl-v i wiele więcej.
bdumtish,

2
@pylover naprawiony w 2015 r .
Franck Dernoncourt

1
@pylover W przeciwnym razie dla <10 możesz użyć menedżera schowka . (oczywiście zgadzam się, że to niedorzeczne cmd nie ma ctrl + c na <10)
Franck Dernoncourt

4
@pylover Shame na Microsoft, w 2016 roku musimy użyć myszy, aby wkleić do Bash, mimo że menu twierdzi, że Ctrl + V wkleja.
Michael

Odpowiedzi:


162

Osobiście używam małego skryptu AutoHotkey do mapowania niektórych funkcji klawiatury, w oknie konsoli (CMD) używam:

; 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 

Te rzeczy wpływają na działanie Cygwina, gdy jest uruchomiony w oknie ConsoleWindow. Byłem podekscytowany tą wskazówką, ale niestety musiałem ją odinstalować.
piyo

2
@piyo: może możesz wykluczyć konsolę Cygwin za pomocą paska tytułu? np .: jeśli pasek tytułu konsoli mówi „ConsoleWindow”, możesz dodać coś takiego jak WinGetTitle sTitle \ n If (sTitle = „ConsoleWindow”) {\ n return \ n} \ n ---
PabloG

Dobry pomysł. (+1) Tak, zadziałałoby, gdyby tytuły okien nie uległy zmianie. Wydaje mi się, że mam większą kontrolę nad tytułem okna w Cygwin, więc być może mogę dodać jakiś statyczny, ale niewidoczny tekst podpowiedzi do filtrowania AHK.
piyo

@piyo: cygwin mintty (bez udziału X) jest o wiele ładniejszy jak na skorupę
cygwina

1
HowToGeek sugeruje „SendInput {Raw}% clipboard%” zamiast alt-space ep. Pozbywacie się również migotania
Vegar Westerlund,

428

Tak .. ale niezręcznie. Połączyć

alt+ Space, e, k<- do kopiowania i
alt+ Space, e, p<- do pasty.


18
Nie do końca to, na co liczyłem, ale oczywiście działa. Kilka dodatkowych wskazówek: Jeśli zamapowałeś ALT + SPACJĘ na program uruchamiający aplikację (np. Launchy), użyj ALT-SHIFT-SPACE Zamiast tego Jeśli używasz nieanglowej wersji systemu Windows, ostatnie 2 klucze będą się oczywiście różnić (np. B + E za pastę po niemiecku)
sme

4
Wyjaśnij, wybierając także: ALT + SPACJA + E + K <- do kopiowania. i nawiguj w górę, w dół, w lewo, w prawo za pomocą strzałek Shift + strzałka w prawo <-, aby wybrać tekst ALT + SPACJA + E + P <- w celu wklejenia.
Yordan Georgiev

6
skomplikowane, nie mam wystarczającej liczby palców, aby wykonać tę pracę
pylover

5
Uważam tę odpowiedź za najbardziej przydatną i od razu do rzeczy. Sekwencja klawiszy mnie nie szokuje, ponieważ sekwencje akordów Emacsa są znacznie gorsze. W rzeczywistości skrót menu okna Alt + Spacja jest wystarczający, aby zrozumieć, co nacisnąć dalej, ponieważ jest wizualna informacja zwrotna (podkreślone znaki).
acelent

2
W przypadku francuskiego systemu Windows: [Alt] + [Space], [m], [c] dla kopii, [Alt] + [Space], [m], [o] dla pasty
Deleplace

137

Nie bardzo związany z programowaniem, ale znalazłem to w Google, nie ma bezpośredniego skrótu klawiaturowego , ale sprawia, że ​​jest trochę szybszy.

Aby włączyć lub wyłączyć tryb QuickEdit:

  1. Otwórz program MS-DOS lub wiersz polecenia.
  2. Kliknij pasek tytułu prawym przyciskiem myszy i naciśnij Właściwości.
  3. Wybierz zakładkę Opcje.
  4. Zaznacz lub odznacz pole QuickEdit Mode.
  5. Wciśnij OK.
  6. W oknie dialogowym Zastosuj właściwości do skrótu wybierz Zastosuj właściwości do bieżącego okna tylko, jeśli chcesz zmienić ustawienie QuickEdit tylko dla tej sesji tego okna lub wybierz Modyfikuj skrót, który uruchomił to okno, aby zmienić ustawienie QuickEdit dla wszystkich przyszłych wywołań wiersz polecenia lub program MS-DOS.

Szybka edycja

Aby skopiować tekst, gdy QuickEdit jest włączony:

  1. Kliknij i przeciągnij wskaźnik myszy nad żądanym tekstem.
  2. Naciśnij Enter (lub kliknij prawym przyciskiem myszy w dowolnym miejscu w oknie), aby skopiować tekst do schowka.

Aby wkleić tekst, gdy QuickEdit jest włączony:

  1. Kliknij prawym przyciskiem myszy w dowolnym miejscu okna.

Aby skopiować tekst, gdy QuickEdit jest wyłączony:

  1. Kliknij pasek tytułowy prawym przyciskiem myszy, naciśnij Edycja w menu i naciśnij Zaznacz.
  2. Przeciągnij myszą nad tekstem, który chcesz skopiować.
  3. Naciśnij Enter (lub kliknij prawym przyciskiem myszy w dowolnym miejscu w oknie), aby skopiować tekst do schowka.

Aby wkleić tekst, gdy QuickEdit jest wyłączony:

  1. Kliknij pasek tytułu prawym przyciskiem myszy, naciśnij Edycja w menu i naciśnij Wklej.

14
mówimy o skrótach klawiaturowych.
pylover

11
Prawe kliknięcie wydaje mi się dość krótkie
Jay Sullivan

19
Przeniesienie ręki z klawiatury do myszy dyskwalifikuje ją jako „dość krótką”.
Ross Presser

Hej, to spoko. Oto jak go używam: utworzyłem skrót na pulpicie do cmd.exe, następnie kliknąłem go prawym przyciskiem myszy, aby „Przypnij do paska zadań” - następnie usuwam skrót z pulpitu ... następnie klikam go prawym przyciskiem myszy w bat zadań, a następnie ponownie kliknij prawym przyciskiem myszy, gdy pokazuje cmd, i wybierz Właściwości. Wchodzę w Zaawansowane, a potem mówię, żeby działał jako Administrator. Następnie wróć OK, wybierz kartę opcji i włącz QuickEdit, tak jak opisano tutaj. I Voila, jest to ZAWSZE włączone, aby wkleić się, klikając prawym przyciskiem myszy w monicie za każdym razem, gdy używam czarnej ikony CMD na pasku zadań.
SDsolar

35

Dzięki Pablo, właśnie tego szukałem! Jeśli jednak mogę nieco ulepszyć skrypt, sugeruję zastąpienie makra ^ V następującym:

; 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

Zaletą korzystania z SendInput jest to

  • wklejanie nie polega na menu systemowym wiersza poleceń z pozycją menu „Alt + Space E P” (działa w języku angielskim i hiszpańskim, ale nie we wszystkich językach).
  • pozwala uniknąć nieprzyjemnego migotania, gdy menu jest tworzone i niszczone.

Uwaga: ważne jest, aby w komendzie SendInput zawrzeć „{Raw}”, na wypadek gdyby schowek zawierał „!”, „+”, „^” Lub „#”.

Uwaga: używa StringReplace do usuwania nadmiaru znaków powrotu karetki Windows. Dzięki hugov za tę sugestię!


2
dobry, ulepszenia są zawsze mile widziane!
PabloG

1
świetny! domyślna odpowiedź migotała w wyskakującym menu, co było denerwujące
Eugene Burmako,

dzięki, ten daje ctrl-vw konsoli „rodzime” uczucie
jettico

Kiedy ctrl+vnacisnę, wkleja się poprawnie, ale także zaczyna wykonywać ciąg (to tak, jakby enterzostał wciśnięty później). Jak mogę temu zapobiec?
LoMaPh

18

Istnieje również świetne narzędzie open source o nazwie clink , które rozszerza cmd o wiele funkcji. Jednym z nich jest możliwość używania klawiszy Ctrl + V do wstawiania tekstu.


Większość funkcji clink jest świetna, ale łamie jedną przydatną funkcję IMO. Autouzupełnianie cmd.exe przełącza się między plikami. clink wyświetla listę, gdy wiele plików zaczyna się o tej samej nazwie. W przypadku długich nazw plików, które zaczynają się od tej samej nazwy, cmd.exe ma lepszą funkcję autouzupełniania.
ChaimG,


8

Oto bezpłatne narzędzie, które zrobi to w systemie Windows. Wolę go od skryptu, ponieważ jest łatwy do skonfigurowania. Działa jako szybka aplikacja natywna, działa na XP i nowszych wersjach, ma ustawienia konfiguracyjne, które pozwalają na ponowne mapowanie klawiszy kopiuj / wklej / zaznacz do okien poleceń:

wprowadź opis zdjęcia tutaj

Plus znam programistów.


4

najprostszą metodą jest po prostu skopiowanie tekstu, który chcesz wkleić do cmd i otwarcie cmd goto „właściwości” ---> karta „opcja” ----> zaznacz (zaznacz znaczek) „tryb szybkiego edytowania” i kliknij „ ok "..... teraz możesz wkleić dowolny tekst ze schowka, klikając prawym przyciskiem myszy.

Dziękuję Ci..


4

Dzięki, Pablo, za odwołanie się do narzędzia AutoHotkey. Ponieważ mam zainstalowany Launchy, który używa Alt+ Spacemusiałem go zmodyfikować, ale dodać Shiftklucz, jak pokazano:

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

3

To nie jest tak naprawdę skrót, ale szybki dostęp do menu sterowania: Alt-space EP

Jeśli możesz użyć myszy, kliknięcie prawym przyciskiem myszy okna cmd działa jak wklej, gdy próbowałem.


Tak, kliknięcie prawym przyciskiem działa dobrze, ale tego właśnie staram się unikać.
sme

Okazuje się, że cztery uderzenia klawiszy powodują przesunięcie ręki do myszy. To rozwiązanie również wygrywa, ponieważ jest gotowe do pracy na dowolnej maszynie.
Nick

3

Teoretycznie aplikacja w DOS Prompt ma własny schowek i skróty. Aby zaimportować tekst ze schowka Windows jest „ekstra”. Możesz jednak użyć Alt-Space, aby otworzyć menu systemowe okna Monit, a następnie naciśnij E, P, aby wybrać Edycja, menu Wklej. Jednak MS może zapewnić skrót za pomocą klawisza Win. Nie ma szans na wykorzystanie w aplikacji DOS.


1
Na marginesie: gdy widzisz cmd przez połączenie RDP, jest to Alt-Del zamiast Alt-Space.
Bowi,

2

Chwilę zajęło mi ustalenie, dlaczego twój skrypt AutoHotkey nie działa ze mną:

; 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

W rzeczywistości opiera się na naciśnięciach klawiszy, a tym samym na układzie klawiatury! Kiedy więc, tak jak ja, niefortunnie masz tylko klawiaturę AZERTY, twoja sugestia po prostu nie działa. Co gorsza, nie znalazłem łatwego sposobu na zastąpienie metody SendInput lub przekręcenie jej środowiska, aby to naprawić. Na przykład SendInput „1” po prostu nie wysyła cyfry 1.

Musiałem zmienić każdą postać w jej Unicode, aby działała na moim komputerze:

#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

Niezbyt proste ...


2

Jeśli używasz menedżera schowka Ditto (open source, gratis), możesz po prostu użyć skrótu do wklejenia z Ditto, a on wklei dla ciebie schowek w CMD.

wprowadź opis zdjęcia tutaj


1

Możesz spróbować użyć Textera i stworzyć coś mało prawdopodobnego:

./p, wyzwalany spacją i zastępujący tekst% c

Właśnie to przetestowałem i działa dobrze. Jedyną gotcha jest użycie rzadkiej sekwencji, ponieważ Texter nie może ograniczyć tego tylko do cmd.

Prawdopodobnie istnieją inne narzędzia tego rodzaju, które mogłyby działać, a nawet AutoHotKey , na którym zbudowany jest Texter, mógłby to zrobić lepiej, ale Texter jest łatwy :-)


1

Prostszym sposobem jest użycie Windows PowerShell zamiast cmd. działa dobrze z teksterem.




1

Jeśli jesteś użytkownikiem Cygwin, możesz dołączyć następujące elementy do pliku ~ / .bashrc:

stty lnext ^q stop undef start undef

I następujące do pliku ~ / .inputrc:

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

Uruchom ponownie terminal Cygwin.

(Uwaga, użyłem dużej litery C do kopiowania, ponieważ CTRL + c jest przypisany do funkcji break na większości konsol. Dopraw do smaku.)

Źródło


1

Zamiast „kliknięcia prawym przyciskiem” .... rozpocznij sesję (gdy znajdziesz się w oknie wiersza poleceń), naciskając Alt / SpaceBar. Spowoduje to otwarcie menu okna Wiersz polecenia, a zobaczysz znane, podkreślone skróty klawiaturowe, podobnie jak w graficznym interfejsie użytkownika systemu Windows.

Powodzenia!


1

Postępowałem zgodnie z instrukcjami @ PabloG w następujący sposób

  1. goto http://www.autohotkey.com/ - pobierz autohotkey
  2. wykonaj proste kroki instalacji
  3. po instalacji utwórz nowy plik * .ahk w następujący sposób: kliknij prawym przyciskiem myszy na pulpicie> nowy> Autohotkey Script> giveAnyFileName.ahk
  4. kliknij ten plik prawym przyciskiem myszy> Edytuj
  5. skopiuj skrypt autohotkey wklej podany przez @PabloG w swojej odpowiedzi
  6. Zapisz i zamknij
  7. kliknij dwukrotnie plik, aby uruchomić
  8. Zrobione teraz powinno być możliwe użycie Ctrl+ vdo wklejania w wierszu polecenia

-4

W wierszu polecenia VISTA: Kliknij ikonę System Wybierz ustawienia domyślne z menu Na karcie Opcje w grupie Opcje mam „Tryb szybkiej edycji”, „Tryb wstawiania” i „Autouzupełnianie”. Myślę, że „Tryb szybkiej edycji” to sprawia, że ​​działa.

Aby wkleić wszystko, co znajduje się w Schowku w punkcie wstawiania: Kliknij prawym przyciskiem myszy. Aby skopiować z okna poleceń Wybierz, przytrzymując lewy przycisk myszy i przeciągając kursor po tym, co chcesz skopiować. Po wybraniu kliknij prawym przyciskiem myszy Aby wkleić w punkcie wstawiania, kliknij ponownie prawym przyciskiem myszy.


8
Jakiej części „zamiast używania prawego przycisku myszy” nie rozumiesz;)
reiniero
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.