Atalho do teclado para colar o conteúdo da área de transferência na janela do prompt de comando (Win XP) [fechado]


303

Existe um atalho de teclado para colar o conteúdo da área de transferência em uma janela do prompt de comando no Windows XP (em vez de usar o botão direito do mouse)?

O Shift+ típico Insertnão parece funcionar aqui.



Faça um favor a si mesmo, confira a resposta 'clink' nesta página. ctrl-v e muito mais.
precisa saber é o seguinte

2
@pylover corrigido em 2015 .
Franck Dernoncourt 28/08/2015

1
@pylover Caso contrário, para <10, você pode usar um gerenciador de transferência . (é claro que eu concordo que é cmd ridículo não tem ctrl + c no <10)
Franck Dernoncourt

4
@pylover Shame na Microsoft, no ano de 2016, precisamos usar o mouse para colar no Bash, mesmo que o menu afirme que Ctrl + V cola.
Michael

Respostas:


162

Pessoalmente, uso um pequeno script AutoHotkey para remapear determinadas funções do teclado, para a janela do console (CMD) que uso:

; 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 

Esse material interfere no Cygwin quando ele está sendo executado dentro de um ConsoleWindow. Fiquei empolgado com essa dica, mas infelizmente tive que desinstalá-la.
Piyo

2
@ piyo: talvez você possa excluir o console Cygwin pela barra de título? por exemplo: se a barra de título do console diz "ConsoleWindow" você pode adicionar algo como WinGetTitle stitle \ n Se (stitle = "ConsoleWindow") {\ n retorno \ n} \ n ---
PabloG

Boa ideia. (+1) Sim, isso funcionaria se os títulos das janelas fossem imutáveis. Eu sinto que tenho mais controle sobre o título da janela no Cygwin, então talvez eu possa adicionar algum texto estático, mas invisível, para a filtragem do AHK.
piyo 26/08/10

@piyo: cygwin mintty (sem X envolvidos) é tão mais agradável para um shell cygwin ...
Paulo Scardine

1
O HowToGeek sugere "SendInput {Raw}% clipboard%" em vez do ep alt-space. Então você se livra da cintilação também
Vegar Westerlund

428

Sim ... mas estranho. Ligação

alt+ Space, e, k<- para copiar e
alt+ Space, e, p<- para colar.


18
Não é exatamente o que eu esperava, mas é claro que funciona. Algumas dicas adicionais: se você mapeou ALT + SPACE para o iniciador de aplicativos (por exemplo, Launchy), use ALT-SHIFT-SPACE em vez disso. + E para colar em alemão)
sme

4
Apenas para explicar a seleção também: ALT + ESPAÇO + E + K <- para copiar. e navegue para cima, baixo, esquerda e direita com as setas Shift + seta para a direita <- para selecionar o texto ALT + ESPAÇO + E + P <- para colar.
Yordan Georgiev

6
ao complexo, eu não tenho dedos suficientes para fazer este trabalho
pylover

5
Acho essa resposta a mais útil e direta ao ponto. A sequência de teclas não me choca, pois há sequências de acordes do Emacs muito piores que isso. Na verdade, o atalho do menu da janela Alt + Space é suficiente para entender o que pressionar a seguir, pois há feedback visual (caracteres sublinhados).
acelent 6/09/12

2
Para janelas francesas: [Alt] + [Espaço], [m], [c] para cópia, [Alt] + [Espaço], [m], [o] para colar
Deleplace

137

Não é realmente relacionado à programação, mas achei isso no Google, não há um atalho direto no teclado , mas o torna um pouco mais rápido.

Para ativar ou desativar o modo QuickEdit:

  1. Abra o programa MS-DOS ou o prompt de comando.
  2. Clique com o botão direito do mouse na barra de título e pressione Propriedades.
  3. Selecione a guia Opções.
  4. Marque ou desmarque a caixa Modo QuickEdit.
  5. Pressione OK.
  6. Na caixa de diálogo Aplicar propriedades ao atalho, selecione a janela Aplicar propriedades à atual somente se desejar alterar a configuração do QuickEdit apenas para esta sessão desta janela ou selecione Modificar atalho que iniciou esta janela para alterar a configuração do QuickEdit para todas as futuras invocações de o prompt de comando ou o programa MS-DOS.

Edição rápida

Para copiar texto quando o QuickEdit está ativado:

  1. Clique e arraste o ponteiro do mouse sobre o texto desejado.
  2. Pressione Enter (ou clique com o botão direito do mouse em qualquer lugar da janela) para copiar o texto para a área de transferência.

Para colar texto quando o QuickEdit está ativado:

  1. Clique com o botão direito do mouse em qualquer lugar da janela.

Para copiar texto quando o QuickEdit está desativado:

  1. Clique com o botão direito do mouse na barra de título, pressione Editar no menu e pressione Marcar.
  2. Arraste o mouse sobre o texto que deseja copiar.
  3. Pressione Enter (ou clique com o botão direito do mouse em qualquer lugar da janela) para copiar o texto para a área de transferência.

Para colar texto quando o QuickEdit está desativado:

  1. Clique com o botão direito do mouse na barra de título, pressione Editar no menu e pressione Colar.

14
estamos falando de atalhos de teclado.
Pylover

11
Botão direito do mouse parece muito curto para mim
Jay Sullivan

19
Mover a mão do teclado para o mouse a desqualifica como "bastante curta".
Ross Presser

Ei, isso é legal. Aqui está como eu o uso: Criei um atalho na área de trabalho para cmd.exe e cliquei com o botão direito do mouse em "Fixar na barra de tarefas" - exclua o atalho da área de trabalho ... e clique com o botão direito do mouse no tarefa, clique com o botão direito do mouse novamente quando aparecer cmd e escolha Propriedades. Entro em Avançado e digo para executar como Administrador. Depois, volte e escolha a guia Opções e ative o QuickEdit, como você descreve aqui. E, Voila, isso é SEMPRE ativado para que a pasta seja feita clicando com o botão direito do mouse no prompt sempre que eu usar o ícone preto do CMD na barra de tarefas.
SDSolar #

35

Obrigado Pablo, exatamente o que eu estava procurando! No entanto, se eu puder ter a liberdade de melhorar um pouco o seu script, sugiro substituir sua macro ^ V pelo seguinte:

; 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

A vantagem de usar o SendInput é que

  • não depende do menu do sistema do prompt de comando com um item de menu "Alt + Space E P" para colar (funciona em inglês e espanhol, mas não em todos os idiomas).
  • evita esse tremor desagradável que você recebe quando o menu é criado e destruído.

Observe que é importante incluir "{Raw}" no comando SendInput, caso a área de transferência contenha "!", "+", "^" Ou "#".

Observe que ele usa StringReplace para remover o excesso de caracteres de retorno de carro do Windows. Obrigado hugov pela sugestão!


2
bom, melhorias são sempre bem-vindas!
PabloG 31/05

1
excelente! a resposta padrão cintilou no menu pop-up, o que foi irritante
Eugene Burmako

obrigado, este dá ctrl-vno console um sentimento 'nativo'
jettico

Quando pressiono, ctrl+vele cola corretamente, mas também começa a executar a string (é como enteré pressionado depois). Como posso evitar isso?
LoMaPh

18

Há também uma ótima ferramenta de código aberto chamada clink , que estende o cmd por muitos recursos. Um deles é poder usar ctrl + v para inserir texto.


A maioria dos recursos do clink é ótima, mas quebra um recurso útil da IMO. O preenchimento automático do cmd.exe percorre os arquivos. clink's exibe uma lista quando vários arquivos começam com o mesmo nome. Para nomes de arquivos longos que começam com o mesmo nome, o cmd.exe possui um preenchimento automático melhor.
ChaimG


8

Aqui está uma ferramenta gratuita que fará isso no Windows. Prefiro-o a um script, pois é fácil de configurar. Ele roda como um aplicativo nativo rápido, funciona no XP e acima, possui configurações que permitem remapear as teclas de copiar / colar / seleção para janelas de comando:

insira a descrição da imagem aqui

Além disso, eu conheço os desenvolvedores.


4

O método mais simples é copiar o texto que você deseja colá-lo no cmd e abrir o cmd, para ir para a guia "Propriedades" ---> "opção" ----> marque o (modo de edição rápida) (marque a opção) e clique em " ok "..... agora você pode colar qualquer texto da área de transferência clicando com o botão direito do mouse no seu mouse.

Obrigado..


4

Obrigado, Pablo, por se referir ao utilitário AutoHotkey. Desde que eu tenho o Launchy instalado, que usa Alt+ Space, tive que modificá-lo, mas adicionar a Shiftchave, como mostrado:

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

3

Este não é realmente um atalho, mas apenas um acesso rápido ao menu de controle: Alt-space EP

Se você pode usar o mouse, clique com o botão direito do mouse na janela do cmd e cole quando tentei.


Sim, o botão direito do mouse funciona bem, mas é isso que estou tentando evitar.
sme

Acontece que quatro batidas de tecla movem a mão para o mouse. Essa solução também vence porque está pronta para ser usada em qualquer máquina.
Nick

3

Teoricamente, o aplicativo no Prompt do DOS tem sua própria área de transferência e atalhos. Importar texto da área de transferência do Windows é "extra". No entanto, você pode usar Alt-Space para abrir o menu do sistema da janela Prompt e pressionar E, P para selecionar o menu Editar, Colar. No entanto, a Microsoft poderia fornecer um atalho usando a tecla Win. Não há chance de ser usado no aplicativo DOS.


1
Apenas como uma observação lateral: quando você vê o cmd através de uma conexão RDP, é Alt-Del em vez de Alt-Space.
Bowi

2

Demorei um pouco para descobrir por que o script AutoHotkey não funciona comigo:

; 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

De fato, ele se apóia nas teclas digitadas e, consequentemente, no layout do teclado! Portanto, quando você é, como eu, infeliz por ter apenas um teclado AZERTY, sua sugestão simplesmente não funciona. E pior, não achei uma maneira fácil de substituir o método SendInput ou torcer seu ambiente para corrigir isso. Por exemplo, SendInput "1" simplesmente não envia o dígito 1.

Eu tive que transformar cada personagem em seu unicode para fazê-lo funcionar no meu computador:

#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

Não é muito simples ...


2

Se você usar o gerenciador de área de transferência Ditto (código aberto, gratuito), poderá simplesmente usar o atalho para colar no Ditto, e ele colará a área de transferência no CMD para você.

insira a descrição da imagem aqui


1

Você pode tentar usar o Texter e criar algo improvável como:

./p, acionado pelo espaço e substituindo o texto por% c

Acabei de testar e funciona bem. O único problema é usar uma sequência rara, pois o Texter não pode restringir isso apenas ao cmd.

Provavelmente existem outros utilitários desse tipo que poderiam funcionar, e até o AutoHotKey , no qual o Texter é construído, poderia fazê-lo melhor, mas o Texter é fácil :-)


1

Uma maneira mais simples é usar o Windows PowerShell em vez do cmd. funciona bem com o texter.




1

Se você é um usuário do Cygwin, pode anexar o seguinte ao seu arquivo ~ / .bashrc:

stty lnext ^q stop undef start undef

E o seguinte para o seu arquivo ~ / .inputrc:

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

Reinicie o seu terminal Cygwin.

(Observe, eu usei um C maiúsculo para copiar, pois CTRL + c é atribuído à função de interrupção na maioria dos consoles. Tempere a gosto.)

Fonte


1

Em vez de "clicar com o botão direito" ... inicie sua sessão (quando estiver na janela do prompt de comando) pressionando Alt / SpaceBar. Isso abrirá o menu da janela Prompt de Comando e você verá seus atalhos de comando familiares sublinhados, como na GUI do Windows.

Boa sorte!


1

Segui os passos de @ PabloG da seguinte maneira

  1. ir para http://www.autohotkey.com/ - baixar autohotkey
  2. siga etapas simples de instalação
  3. após a instalação, crie um novo arquivo * .ahk da seguinte forma, clique com o botão direito do mouse em área de trabalho> novo> Script de Autohotkey> giveAnyFileName.ahk
  4. clique com o botão direito neste arquivo> Editar
  5. copiar colar script autohotkey fornecido por @PabloG em sua resposta
  6. salvar e fechar
  7. clique duas vezes no arquivo para executar
  8. Concluído agora, você poderá usar Ctrl+ vpara colar no prompt de comando

-4

No prompt de comando VISTA: Clique no ícone Sistema Selecionar padrões no menu. Na guia Opções do grupo Opções, tenho "Modo de edição rápida", "Modo de inserção" e "Preenchimento automático" selecionados. Acho que o "Modo de edição rápida" é o que faz funcionar.

Para colar o que estiver na área de transferência no ponto de inserção: Clique com o botão direito do mouse. Para copiar da Janela de Comando Selecione mantendo pressionado o botão esquerdo do mouse e arrastando o ponteiro sobre o que você deseja copiar. Depois de selecionado, clique com o botão direito do mouse Para colar no ponto de inserção, clique com o botão direito do mouse novamente.


8
Que parte de "em vez de usar o botão direito do mouse" você não entende;)
reiniero
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.