Modification du comportement Ctrl + Tab pour se déplacer entre les documents dans Visual Studio

StackOverflow https://stackoverflow.com/questions/21027

  •  09-06-2019
  •  | 
  •  

Question

Est-il possible de changer la façon dont Ctrl + Languette et Changement + Ctrl + Languette travailler dans Visual Studio ?J'ai désactivé la fenêtre contextuelle du navigateur, car je souhaite uniquement basculer entre les éléments du contrôle d'onglets.Mon problème est l’incohérence entre le passage au document suivant et au document précédent.

Tous les autres programmes qui utilisent un contrôle onglet pour un document ouvert que j'ai vu utilisent Ctrl + Languette se déplacer de gauche à droite et Changement + Ctrl + Languette aller de droite à gauche.Visual Studio rompt cela avec son saut au dernier onglet sélectionné.Vous ne pouvez jamais savoir sur quel document vous allez vous retrouver, et ce n’est jamais deux fois la même chose.

C’est très contre-intuitif.Est-ce une manière subtile d’encourager tout le monde à n’ouvrir que deux documents à la fois ?


Disons que j'ai quelques fichiers ouverts.Je travaille dans l'un d'eux et j'ai besoin de voir ce qu'il y a dans l'onglet suivant à droite.Dans toutes les autres applications sur la surface de la Terre, Ctrl + Languette m'y amènera.Mais dans Visual Studio, je n'ai aucune idée vers lequel des autres onglets cela me mènera.Si je n’ai que deux documents ouverts, cela fonctionne très bien.Dès que vous passez à trois ou plus, tous les paris sont ouverts quant à l'onglet vers lequel Visual Studio a décidé de vous envoyer.

Le problème, c'est que je ne devrais pas avoir à penser à l'outil, il devrait disparaître en arrière-plan et je devrais penser à la tâche.Le comportement actuel des onglets ne cesse de me retirer de la tâche et m'oblige à prêter attention à l'outil.

Était-ce utile?

La solution

Dans Visual Studio 2015 (ainsi que les versions précédentes de VS, mais vous devez installer Outils électriques de productivité si vous utilisez VS2013 ou une version antérieure), il existe deux nouvelles commandes dans Visual Studio :

Fenêtre.NextTab etWindow.PreviousTab

Allez simplement les remapper à partir de Ctrl+Alt+Page précédente/Ctrl+Alt+Bas de page à Ctrl+Languette/Ctrl+Changement+Languette dans:

Menu Outils -> Possibilités -> Environnement -> Clavier

Note:Dans les versions antérieures telles que Visual Studio 2010, Window.NextTab et Window.PreviousTab étaient nommés Window.NextDocumentWellTab etWindow.PreviousDocumentWellTab.

Autres conseils

Visual Studio 2010 intègre un moyen de résoudre ce problème.

Par défaut, Ctrl+Languette et Ctrl+Changement+Languette sont affectés à Window.[Previous/Next]..Document, mais vous pouvez, grâce à

Tools -> Options -> Environment -> Keyboard,

supprimez ces affectations de touches et réaffectez-les à Window.[Next/Previous]Tab pour ajouter le comportement souhaité.

cela peut être modifié, au moins dans VS 2012 (je pense que cela devrait également fonctionner pour 2010).

1) TOOLS > Options > Environment > Keyboard

(Oui TOOLS, c'est VS2012 !) Maintenant trois raccourcis à vérifier.

2) Window.NextDocumentWindow - vous pouvez y accéder rapidement en tapant dans le volet de recherche en haut.Maintenant c'est ton ennemi.Supprimez-le si vous ne l'aimez pas.Remplacez-le par autre chose (et n'oubliez pas le Attribuer bouton) si vous voulez avoir le vôtre, mais n'oubliez pas ce raccourci, quel qu'il soit, à la fin.Cela vous sera utile plus tard.

(Je veux dire, c'est le raccourci qui mémorise votre dernier onglet)

enter image description here

3) Recherchez maintenant Window.NextDocumentWindowNav - c'est la même chose que ci-dessus mais affiche un aperçu des onglets ouverts (vous pouvez naviguer trop rapidement vers d'autres fenêtres avec cette pop-up).Cependant, je n'ai jamais trouvé cela utile.Faites tout ce qui est mentionné à l'étape 2 (n'oubliez pas de souviens-toi).

4) Window.NextTab - ta potion magique.Cela vous permettrait de parcourir les onglets dans l’ordre suivant.Peut-être que tu veux CTRL+LANGUETTE?Encore une fois l'étape 2 et souviens-toi.

5) Placez maintenant le curseur dans le Appuyez sur les touches de raccourci : zone de texte (peu importe ce qui est actuellement sélectionné, vous n'allez pas Attribuer cette fois), et tapez le premier des trois (ou deux ou un) raccourcis.

enter image description here

Tu verras Raccourci actuellement utilisé par : répertorié.Assurez-vous que vous n'avez pas d'entrée en double pour le raccourci.Sur la photo, il n'y a pas d'entrées en double.Si c'est le cas (une rareté), dites X, puis accédez à X et supprimez le raccourci.Répétez également cette étape pour d’autres raccourcis.

6) Maintenant, répétez 1 à 5 pour Previous également des raccourcis (en ajoutant de préférence Changement).

7) Bonus :Sélectionnez le schéma de mappage VS2005 (en haut de la même case), vous obtenez maintenant F2 pour Renommer membres et non CTRL+R.+R., et F7 pour Afficher le code et pas CTRL+ALT+0.

Je suis d'avis que VS a raison par défaut.Je trouve extrêmement utile que VS se souvienne de ce que j'ai utilisé en dernier et facilite la commutation, un peu comme ce que fait le système d'exploitation lui-même (sur ALT+LANGUETTE).Mon navigateur fait la même chose par défaut (Opera), même si je sais que Firefox se comporte différemment.

Dans Visual Studio 2012 ou version ultérieure (2013, 2015, 2017...) :

  1. Parcourez le menu Outils / Options / Environnement / Clavier.
  2. Recherchez la commande « Window.NextTab », définissez le raccourci sur Ctrl+Languette
  3. Recherchez la commande « Window.PreviousTab », définissez le raccourci sur Ctrl+Changement+Languette

enter image description here

Accédez à l'article de blog Macro anti-stupidifiant de l'onglet Visual Studio et utilisez la macro.Après avoir appliqué la macro à votre installation de Visual Studio, vous pouvez y associer vos raccourcis clavier préférés.Notez également le correctif du registre dans les commentaires pour ne pas afficher la bulle de macro, car elle pourrait devenir ennuyeuse après un certain temps.

Après quelques heures de recherche, j'ai trouvé une solution pour basculer entre les documents ouverts en utilisant CTRL+LANGUETTE qui se déplacent de gauche à droite et CHANGEMENT+ CTRL+ LANGUETTE aller de droite à gauche.

Bref vous devez copier et coller cette macro :

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module TabCtrl

Public Sub TabForward()
    Dim i As Integer
    Dim activateNext As Boolean = False

    For i = 1 To DTE.Windows.Count
        If DTE.Windows().Item(i).Kind = "Document" Then

            If activateNext Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If

            If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
                activateNext = True
            End If
        End If
    Next

    ' Was the last window... go back to the first
    If activateNext Then
        For i = 1 To DTE.Windows.Count
            If DTE.Windows().Item(i).Kind = "Document" Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If
        Next
    End If
done:

End Sub

Public Sub TabBackward()
    Dim i As Integer
    Dim activateNext As Boolean = False

    For i = DTE.Windows.Count To 1 Step -1
        If DTE.Windows().Item(i).Kind = "Document" Then

            If activateNext Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If

            If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
                activateNext = True
            End If
        End If
    Next

    ' Was the first window... go back to the last
    If activateNext Then
        For i = DTE.Windows.Count To 1 Step -1
            If DTE.Windows().Item(i).Kind = "Document" Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If
        Next
    End If
done:

End Sub

End Module

La macro vient de :www.mrspeaker.net/2006/10/12/tab-un-stupidifier/

Si vous n'ajoutez jamais de macro à Visual Studio, il existe un lien très utile pour savoir comment procéder. fais-le.

La philosophie de l'ordre des onglets de Visual Studio est très contre-intuitive puisque l'ordre des onglets affichés diffère de la logique de changement d'onglet, ce qui rend l'ordre des onglets complètement inutile.

Donc, jusqu'à ce qu'une meilleure solution se présente, modifiez la disposition de la fenêtre (dans Environnement->Général) de documents à onglets à plusieurs documents ;cela ne changera pas le comportement, mais cela réduira la confusion causée par les onglets.

De cette façon, vous trouverez également DocumentWindowNav plus utile !

Ctl + Alt + Page précédente ou PgDn les raccourcis ont fonctionné pour basculer l'onglet suivant/précédent hors de la boîte pour moi...

Je suis 100% d'accord avec Jeff.

J'ai travaillé sur Borland C++ Builder pendant plusieurs années et l'une des fonctionnalités qui me manque le plus est l'ordre de tabulation « correct » des documents avec Ctrl-Languette.Comme Jeff l'a dit : "Le comportement actuel des onglets ne cesse de me retirer de la tâche et m'oblige à prêter attention à l'outil. " C'est exactement ce que je ressens à ce sujet, et je suis très surpris par le fait qu'il n'y ait pas beaucoup de gens qui s'en plaignent.

Je pense Ctrl-F6 - NextDocumentWindowNav - parcourt les documents en fonction de l'heure de la dernière activation du document.Ce comportement ressemble beaucoup à la façon dont les applications MDI se comportaient autrefois.

Ceci étant pris en compte, j'utilise habituellement Ctrl+F6 pour basculer entre 2 documents (ce qui est très pratique pour basculer entre les fichiers .cpp et .h lorsque vous travaillez sur un projet c++) même lorsqu'il y a plus de 2 documents actuellement ouverts.Par exemple, si vous avez 10 documents ouverts (Tab1, Tab2, Tab3, ...., Tab10), je clique sur Tab1 puis Tab2.Quand je fais Ctrl+F6 et relâchez les touches, je vais passer à Tab1.Pressage Ctrl+F6 encore une fois, cela me ramènera à Tab2.

Je suppose que vous voulez ce que VSS appelle Next(Previous)DocumentWindow.Par défaut, c'est activé Ctrl(-Maj)-F6 sur mon VSS 8.Sur Ctrl(-Maj)-Tabulation ils ont Next(Previous)DocumentWindowNav.Vous pouvez modifier les affectations des touches via Outils/Options/Clavier.

Dans la branche du registre :Hkey_current_user logiciel Microsoft VisualStudio 9.0 Ajouter DWORD nommé "UseMrudocordering" avec une valeur de 1.Il classera les documents de manière à ce que les documents les plus récemment utilisés soient placés à gauche.Ce n'est pas parfait mais mieux que le mauvais comportement par défaut.

Je n'utilise pas Visual Studio (oui, vraiment, je ne l'utilise pas), mais Raccourci automatique peut remapper n'importe quel raccourci clavier globalement ou dans une application particulière :

#IfWinActive Microsoft Excel (application specific remapping)

; Printing area in Excel (@ Ctrl+Alt+A)
^!a::
Send !ade
return

#IfWinActive


$f4::
; Closes the active window (make double tapping F4 works like ALT+F4)
if f4_cnt > 0 
{
    f4_cnt += 1
    return
}

f4_cnt = 1
SetTimer, f4_Handler, 250
return

f4_Handler:
SetTimer, f4_Handler, off

if (f4_cnt >= 2)    ; Pressed more than two times
{   
    SendInput !{f4}
} else {
    ; Resend f4 to the application
    Send {f4}
}

f4_cnt = 0
return

Ce sont deux remappages de mon script principal AutoHotKey.Je pense que c'est un excellent outil pour ce type de tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top