Recursos ocultos do Visual Studio (2005-2010)?

182

O Visual Studio é um produto tão grande que mesmo depois de anos trabalhando com ele, às vezes me deparo com uma maneira nova / melhor de fazer coisas ou coisas que nem sabia que eram possíveis.

Por exemplo-

  • Crtl+ R, Ctrl+ Wpara mostrar espaços em branco. Essencial para editar scripts de construção do Python.

  • Em "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Criar uma seqüência de caracteres chamada Guias com o valor "RGB (255,0,0), 80" para ter uma linha vermelha na coluna 80 no editor de texto.

Quais outros recursos ocultos você encontrou?

shoosh
fonte
Obrigado! Finalmente um marcador 80 coluna no VS :)
Jonas Gulle
obrigado. na verdade, eu tropecei em "mostrar espaços em branco" por acidente e queria me livrar dele. Muito obrigado!
Arsen Zahray

Respostas:

123

Faça uma seleção com ALT pressionado - seleciona um quadrado de texto em vez de linhas inteiras.

shoosh
fonte
9
Ctrl-Alt selecionará palavras inteiras. Alt altera o tamanho da área de seleção por um caractere de cada vez.
Firedfly # 15/10/08
4
Isso funciona também no MS Word e OO Writer. Eu usei muito isso.
Bård
3
Isso (chamado "seleção de bloco") também funciona com as teclas Alt + Shift e, em seguida, use as teclas de seta.
Arolson101 16/10/09
1
Além disso, se você selecionar uma coluna horizontal vazio Desta forma, tudo que você digitar vai ser duplicada em cada linha, comportando-se como um enorme cursor :)
Sedat Kapanoglu
1
Vi isso sendo vendido como um recurso para o VS 2010, mas apenas tentei no VS 2008 e funcionou. Estou pasmo. isso é incrivelmente útil!
DaveDev
95

Tracepoints!

Coloque um ponto de interrupção em uma linha de código. Abra a janela Pontos de interrupção e clique com o botão direito do mouse no novo ponto de interrupção. Selecione 'When Hit ...'. Ao marcar a caixa de seleção 'Imprimir uma mensagem', o Visual Studio imprimirá uma mensagem na Saída de Depuração toda vez que a linha de código for executada, em vez de (ou também) interromper a linha. Você também pode fazê-lo executar uma macro à medida que passa pela linha.

Charles Anderson
fonte
1
Eu sei que estou atrasado para o jogo, mas esse é um ótimo recurso que eu nunca soube!
21139 Jerry
7
Para ganhar pontos extras, você pode fazer uma atribuição de variável local no botão quando pressionado. {localVariable = 1.0f} ou aumente os valores em {staticVariable + = 0.1f}
Charles Beattie
91

Você pode arrastar o código para a caixa de ferramentas. Tente!

jfs
fonte
Caramba, para que você possa! (Obrigado!)
Ali Parr
não parece ser muito útil sobre trechos
jk.
33
Meu Deus ... é um nível totalmente novo de copiar e colar. Copie e cole e cole e cole. Conheço muitos programadores que espero nunca descobrirem que você pode fazer isso.
Ryan Lundy
Seria legal se você pudesse pedir para avaliar o código ao clicar no botão, como um bookmarklet.
intuited
Ah não. O que esta função bastardize está fazendo!
79

Clique em um identificador (nome da classe, variável, etc.) e pressione F12"Ir para a definição". Sempre fico impressionado com quantas pessoas eu assisto ao código usar o botão direito do mouse mais lento -> "Ir para a definição".

EDIT: Então você pode usar Ctrl+ -para voltar para onde você estava.

Craig
fonte
8
E não se esqueça de Ctrl + Shift + - [shift de controle negativo] para avançar!
22630 Kevin Pullin
5
E Shift F12 para encontrar todas as referências
Benjol 02/09/09
2
Você também pode usar ALT + seta para a esquerda para voltar para onde você estava
arolson101
1
Com as configurações das teclas VB, o Shift-F2 também faz um Go To Definition.
Ryan Lundy
1
Clique com o botão direito do mouse em G se você estiver seguindo a rota do mouse.
tsilb 30/01/10
57

CTRL + SHIFT + V percorre a área de transferência, o Visual Studio mantém um histórico de cópias.

sontek
fonte
isso pode ser encontrado em edit.cycleclipboardring em mapeamentos de teclado (no visual c ++, este é Ctrl-Shift-Insert, não Ctrl-Shift-V)
Default
52

Sara Ford cobre muitas dicas adoráveis: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Mas alguns dos meus favoritos são Snippets de código, Ctrl+ .para adicionar um using<Namespace> ou gerar um stub de método. Eu não posso viver sem isso.

Confira uma ótima lista no pôster do Visual Studio 2008 C # Keybinding: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=pt

Slace
fonte
1
Sara Ford é a deusa do Visual Studio. Eu não poderia recomendar o suficiente.
Chris Charabaruk
Concordo totalmente com o que eu compartilho do trabalho dela. Estou realmente amando suas séries atuais que cobre depuração
Aaron Powell
Triste que ela parar de fazer a ponta do dia, embora tem sido tão longo desde que ela trabalhou com as entranhas de VS que é completamente compreensível que ela precisava para seguir em frente ...
Knobloch
Obrigado por mencionar o CTRL +. Eu estava procurando por este exatamente.
613 Sorin Comanescu
Eu estava sempre usando CTRL + ALT + F10. Não sabia CTRL +. faz a mesma coisa - obrigado. Muito mais confortável.
Gal Gal
49
CTRL-K, CTRL-D

Reformatar documento!
Isso está nas combinações de teclas VB, não tenho certeza sobre C #

Mark Glorie
fonte
3
sim, funciona em C #, Web Designer, editor XML, editor CSS, editor XSD, JavaScript (até certo ponto). A maioria dos tipos de arquivos suportados
Aaron Powell
8
Ctrk-K, Ctrl-F para C ++
MSalters
7
Eu uso Ctrl-E, Ctrl-D
configurador
Ctrl + K, Ctrl + F também formata o texto que você selecionou (em C #, não tenho certeza sobre os outros).
Zann Anderson 31/01
43

Quantas vezes você depura uma matriz em uma janela rápida ou em uma janela de inspeção e apenas o visual studio mostra o primeiro elemento? Adicione ", N" ao final da definição para fazer com que o estúdio mostre também os próximos N itens. Ou seja, "this-> m_myArray" se torna "this-> m_array, 5".

tenpn
fonte
41

Pesquisa incremental: ao ter um documento aberto de origem, pressione CTRL + I e digite a palavra que você está procurando, e pressione CTRL + I novamente para ver as palavras correspondentes à sua entrada.

Leyu
fonte
4
Chama-se "> i <pesquisa incremental".
Constantin
Ao contrário da pesquisa adicional, que é o que o Firefox implementa.
Kibibu
Vindo do mundo Emacs, esse foi o primeiro recurso que eu procurei. :)
JesperE
37

Você pode usar os seguintes códigos na janela de inspeção.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Ferruccio
fonte
35
  • Ctrl-K, Ctrl-C para comentar um bloco de texto com // no início
  • Ctrl-K, Ctrl-U para descomentar um bloco de texto com // no início

Não posso viver sem ele! :)

Thomas Bratt
fonte
Também é verdade em VB.NET, exceto com "em vez de //
ChrisA
Também é verdade no SQL Server Management Studio, exceto pelo uso da sequência de escape de comentários SQL de '-' #
Thomas Bratt
3
Eu sempre desejei que você pudesse alternar os comentários? Por que você quer "comentar duas vezes" alguma coisa? Certamente pressionando-o novamente deve un-comentário ...
Dan Diplo
16
Às vezes, você deseja comentar a função inteira e algumas linhas internas já estão comentadas (ou seja, são comentários adequados). Nesses casos, não é óbvio o que fazer se você tiver uma alternância, por isso é geralmente melhor deixar a decisão explícita.
Pavel Minaev 13/08/09
1
Observe que, se você começar no início do texto e não no início da linha, obterá o / * * / em vez de //. Esta é a maneira como meu recurso mais usado
Padrão
25

Parando o depurador de entrar em funções triviais.

Ao percorrer o código no depurador, você pode gastar muito tempo entrando e saindo de funções nas quais não está particularmente interessado, com nomes como GetID () ou std :: vector <> (), para escolher um exemplo de C ++. Você pode usar o registro para fazer com que o depurador os ignore.

Para o Visual Studio 2005, você deve acessar HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver e adicionar valores de seqüência de caracteres contendo expressões regulares para cada função ou conjunto de funções que você deseja excluir; por exemplo

std :: vector. * ::. *
TextBox :: GetID

Você também pode substituí-los para exceções individuais. Por exemplo, suponha que você queira entrar no destruidor da classe de vetores:

std :: vector. * :: \ ~. * = StepInto

Você pode encontrar detalhes de outras versões do Visual Studio em http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx

Charles Anderson
fonte
Uau, isso é incrível. Eu não tinha ideia de que isso era possível.
#
23

Ctrl-F10 : executa o cursor durante a depuração. Levei anos para encontrar isso, e eu o uso o tempo todo;

Ctrl-E, Ctrl-D : aplica a formatação padrão (que você pode definir).

Joel em Gö
fonte
1
Ctrl + Shift + F10 para pular todo o código e executar o cursor. Astuto ao tentar testar linhas de código específicas.
Samuel Slade
23

Característica da tecla TAB .

  1. Se você souber o nome da chave do trecho, escreva e clique em Tab dupla. por exemplo: gravação

    foreach

e, em seguida, clique na tecla tab duas vezes para

foreach (object var in collection_to_loop)
{

}

2. Se você escreve algum evento, escreva aqui

        Button btn = new Button();
        btn.Click +=         

e, em seguida, clique na tecla tab duas vezes para

private void Form1_Load(object sender, EventArgs e)
{
        Button btn = new Button();
        btn.Click += new EventHandler(btn_Click);     
}    
void btn_Click(object sender, EventArgs e)
{
        throw new Exception("The method or operation is not implemented.");
}

A função btn_Click escreve automaticamente

  1. no Editor XAML, escreva qualquer evento. por exemplo:

MouseLeftButtonDownclique em tab
MouseLeftButtonDown=""e, em seguida, clique em tab novamente MouseLeftButtonDown="Button_MouseLeftButtonDown"no Button_MouseLeftButtonDownmétodo de seção de código criado.

ebattulga
fonte
21

A Sara Ford tem esse mercado encurralado.

http://blogs.msdn.com/saraford/default.aspx

Mais dicas e truques do Visual Studio do que você pode agitar.

Alguns outros:

  • As edições de avaliação de três meses do Visual Studio 2005 e 2008 são totalmente funcionais e podem ser usadas indefinidamente (para sempre) definindo o relógio do sistema antes de abrir o VS. Em seguida, quando o VS for aberto, ajuste o relógio do sistema novamente para que suas datas não sejam danificadas.
  • Mas isso é realmente pirataria e não posso recomendá-lo, especialmente quando alguém com um endereço .edu pode obter uma versão Pro totalmente funcional do VS2008 através do Microsoft Dreamspark .
  • Você pode usar o Visual Studio para abrir executáveis ​​de terceiros e procurar recursos incorporados (caixas de diálogo, tabelas de strings, imagens etc.) armazenados.
  • Os visualizadores de depuração não são exatamente um recurso "oculto", mas são um pouco negligenciados e super úteis, pois além de usar os visualizadores fornecidos, você pode criar seus próprios conjuntos de dados.
  • Comando "Set Instruction Pointer" ou "Set Next Statement" do depurador.
  • Pontos de interrupção condicionais (como observado pelo KiwiBastard).
  • Você pode usar o Quickwatch etc. para avaliar não apenas o valor de uma variável, mas expressões de tempo de execução em torno dessa variável.
user2189331
fonte
3
Se é realmente pirataria (com a qual concordo com você), por que você mencionaria isso?
21719 Ryan Lundy
1
Kyralessa, porque algumas pessoas provavelmente não se importam. No entanto, com as edições Express sendo gratuitas, duvido que exista atualmente uma razão real para usar uma versão VS pirata.
Joey
17

Altura suspensa personalizada do IntelliSense , por exemplo, exibindo 50 itens em vez do padrão, que é ridiculamente pequeno da IMO (8).

(Para fazer isso, redimensione a lista suspensa na próxima vez que a vir e o Visual Studio lembrará o tamanho selecionado na próxima vez que abrir uma lista suspensa.)

Brann
fonte
4
Você não pode redimensioná-lo mais no VS2010, isso me incomoda sem fim.
manixrock
no Vs2008 eu sou capaz de alterar a largura, mas não a altura.
Kapil
16

Descoberto hoje:

Ctrl + .

Apresenta o menu de contexto para refatoração (que é acessível através da última letra sublinhada de uma classe / método / propriedade que você acabou de renomear - passe o mouse sobre o menu ou "Ctrl" + ".")

Muxa
fonte
Alt + Shift + F10 faz isso também (usando C # keybindings)
Kyle Trauberman
4
Muito melhor do que tentar caçar o alvo clique do mouse minúsculo nesta situação
Richard Ev
14

Muitas pessoas não conhecem ou usam o depurador ao máximo - o IE apenas o usa para interromper o código, mas clique com o botão direito do mouse no círculo vermelho e há muito mais opções, como quebra de condição, código de execução.

Além disso, você pode alterar os valores das variáveis ​​em tempo de execução usando o depurador, que é um ótimo recurso - salva o código de reexecução para corrigir um erro lógico bobo etc.

JamesSugrue
fonte
13

Transposição de linha, Shift-Alt-T Troca
duas linhas (atual e seguinte) e move o cursor para a próxima linha. Eu estou amando isso. Eu até escrevi uma macro que mudou de posição novamente por uma linha, executou a transposição de linha e mudou de posição de linha novamente, para que tudo pareça com a troca da linha atual pela anterior (reversão de linha reversa).

Transposição de palavra, Shift-Ctrl-T

okutane
fonte
Isso faz a linha se mover para baixo na página, como você faz uma linha se mover para cima na página?
Alex Baranosky 17/09/09
GordonG, eu escrevi seguinte macro: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ( "Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane
1
Poderia fazer com ele aqui, como se vê :)
Benjol
11

Ao desenvolver C ++, Ctrl-F7 compila apenas o arquivo atual.

Sakin
fonte
11

Estrutura de tópicos do documento no FormsDesigner ( CTRL + ALT + T )

Controle rápido de renomeação, pedidos e muito mais!

Pondidum
fonte
Não acredito que não sabia disso. Minha vida mudou.
HipsterZipster 7/10/10
11

Para sincronizar automaticamente o arquivo atual com o Gerenciador de Soluções. Portanto, não precisa procurar onde o arquivo mora na estrutura do projeto

Ferramentas -> Opções -> Projetos e soluções -> "Rastrear item ativo no Solution Explorer"

Edit: Se isso for muito chato para você, você pode usar a macro de Dan Vanderboom para chamar esse recurso sob demanda, pressionando a tecla.

(Nota: Retirado do comentário abaixo por Jerry).

SDX2000
fonte
3
isso fica chato depois de um tempo. Eu gostaria que houvesse um atalho de teclado para fazer isso sob demanda.
kenwarner
2
Aqui está um post sobre como rastrear sob demanda. dvanderboom.wordpress.com/2008/03/21/…
Jerry
Se você tiver muitos arquivos abertos, ele poderá matar o VS (sem aviso) se você fizer coisas como 'Fechar tudo, menos isso' (de PowerCommands, eu acho).
Benjol
O Re-compartilhador torna essa necessidade redundante, pois você pode usar Shift + Alt + L para ir diretamente para o arquivo atual no Gerenciador de Soluções; ou Ctrl + Shift + N para pesquisar por palavra-chave qualquer arquivo na solução.
Cbp
9

Não tenho certeza se está "oculto", mas muitas pessoas não sabem disso - pseudo - registros . É muito útil ao depurar, eu tenho @ERR, hr na minha janela do relógio o tempo todo.

yrp
fonte
1
Ouvi dizer que @xxx está sendo desativado em favor de $ xxx. FWIW, o WinDbg também usa o formulário $ xxx.
Constantin
Você não pode simplesmente "hr, hr" em uma janela de inspeção? Eu usei isso todo o caminho de volta no VC6 ... #
1111 LarryF
Excelente. Como o artigo vinculado sugere, definir pontos de interrupção condicionais no @TIB simplificará drasticamente a depuração de aplicativos multithread.
j_random_hacker
9

Ctrl-Menos, Ctrl-Plus, navega para frente e para trás onde você esteve recentemente (embora apenas arquivos abertos).

Ilya Ryzhenkov
fonte
Sim, adoro estes - use-os todos os dias.
MaseBase
Muito útil se você pressionar F + 12 para ir para uma definição e depois quiser voltar para onde estava.
Thomas Bratt
9

Não o uso com frequência, mas amo:

ctrl-alt + mouse select

Para selecionar em um bloco retangular, para 'bloquear' os limites.

Conforme observado nos comentários,

alt + mouse select

Faz apenas um bloco retangular simples.

Seda do meio-dia
fonte
4
Um voto negativo é divertido, já que essa é uma ação válida no VS :) Boa sorte para você, odiador misterioso.
Noon Silk
2
Talvez seja um pouco cedo, mas ler isso me fez querer experimentá-lo no Firefox. Acontece que, com a tecla Ctrl-Alt-Shift, você pode usar o mouse para arrastar o documento inteiro pela tela, semelhante à maneira como um documento PDF funciona.
KdgDev
Qual é a diferença de alt + mouse select?
Guffa 31/08/09
Guffa: Vai apenas para finais de bloco. alt-select permite escolher qualquer área que contenha qualquer coisa. Eles são diferentes.
Noon Silk
Embora eu ache que pode ser apenas 'ctrl-alt', não 'shift' também.
Noon Silk
8

CTRL + Shift + U -> Seção destacada em maiúsculas. CTRL + U -> minúscula na seção destacada Ótimo para obter minhas instruções SQL com a aparência correta ao colocá-las em consultas de string.

Também é útil para códigos encontrados on-line, onde TUDO ESTÁ EM CAPS.

Roubar
fonte
2
Pena que eles não têm uma opção CamelCase CTRL + Shift ... :) Esse é provavelmente o
refator
8

Botão do meio do mouse Clique na guia do editor para fechar a guia.

Kevin Driedger
fonte
1
Eu uso isso o tempo todo quando estou codificando porque estou procurando o código e depois fechá-lo (o "X" para fechar é bastante distante).
22611 Kevin Driedger
8

Para exibir qualquer parte dos dados como uma "matriz" de n bytes, use a seguinte sintaxe na janela QuickWatch do Visual Studio:

variable, n

Por exemplo, para exibir uma variável nomeada foocomo uma matriz de 256 bytes, digite a seguinte expressão na janela QuickWatch:

foo, 256

Isso é particularmente útil ao visualizar cadeias que não são terminadas por nulo ou dados acessíveis apenas por um ponteiro. Você pode usar a janela Memória do Visual Studio para obter um resultado semelhante, mas o uso da janela QuickWatch geralmente é mais conveniente para uma verificação rápida.

Emerick Rogul
fonte