Сведения о вопросе

Fhohir

10:40, 7th August, 2020

Теги

Изменение поведения Ctrl + Tab для перемещения между документами в Visual Studio

Просмотров: 516   Ответов: 12

Можно ли изменить, как Ctrl + Tab и Shift + Ctrl + Tab работа в Visual Studio? Я отключил всплывающее окно навигатора, потому что я хочу переключаться только между элементами в элементе управления вкладкой. Моя проблема заключается в непоследовательности того, что делает переход к следующему и предыдущему документу.

Каждая другая программа, использующая элемент управления tab для открытого документа, который я видел, использует Ctrl + Tab для перемещения слева направо и Shift + Ctrl + Tab идти справа налево. Visual Studio прерывает этот процесс, Перейдя на последнюю выбранную вкладку. Вы никогда не можете знать, на каком документе вы окажетесь, и это никогда не повторяется дважды.

Это очень нелогично. Не является ли это тонким способом побудить каждого иметь только два открытых документа одновременно?


Допустим, у меня есть несколько открытых файлов. Я работаю в одном, и мне нужно посмотреть, что находится в следующей вкладке справа. В любом другом приложении на лике Земли, Ctrl + Tab приведет меня туда. Но в Visual Studio я понятия не имею, к какой из других вкладок он меня приведет. Если у меня есть только два открытых документа, это прекрасно работает. Как только вы перейдете на три или более, все ставки будут отменены относительно того, на какую вкладку Visual Studio решила отправить вас.

Проблема в том, что мне не нужно думать об инструменте, он должен отойти на задний план, и я должен думать о задаче. Текущее поведение вкладки продолжает вытягивать меня из задачи и заставляет меня обратить внимание на инструмент.



  Сведения об ответе

SKY

19:38, 23rd August, 2020

В Visual Studio 2015 (как и в предыдущих версиях VS, но при использовании VS2013 или ниже необходимо установить средства повышения производительности ) есть две новые команды в Visual Studio:

Window.NextTab и Window.PreviousTab

Просто иди и переделай их из Ctrl + Alt + PageUp / Ctrl + Alt + PageDown чтобы Ctrl + Tab / Ctrl + Shift + Tab внутри:

Меню Сервис - > Параметры - > Окружающая Среда - > Клавиатура

Примечание: в более ранних версиях, таких как Visual Studio 2010, Window.NextTab и Window.PreviousTab были названы Window.NextDocumentWellTab и Window.PreviousDocumentWellTab .


  Сведения об ответе

ASER

04:35, 8th August, 2020

Visual Studio 2010 имеет встроенный способ решения этой проблемы.

По умолчанию, Ctrl + Tab и Ctrl + Shift + Tab присваиваются Window.[Previous/Next]..Document , но вы можете, через

Tools -> Options -> Environment -> Keyboard,

удалите эти ключевые назначения и переназначите их в Window.[Next/Previous]Tab , чтобы добавить желаемое поведение.


  Сведения об ответе

piter

07:13, 5th August, 2020

он может быть изменен, по крайней мере, в VS 2012 (я думаю, что он должен работать и в 2010 году).

1) TOOLS > Options > Environment > Keyboard

(Да TOOLS, его VS2012 !) Теперь три ярлыка для проверки.

2) Window.NextDocumentWindow - вы можете быстро добраться туда, набрав на панели поиска сверху. Теперь это ваш враг . Удалите его, если он вам не нравится. Измените его на что-то другое (и не забудьте кнопку Назначить ), если хотите иметь свой собственный, но помните, что ярлык, что бы это ни было в конце концов . Это пригодится позже.

(Я имею в виду, что это ярлык, который запоминает вашу последнюю вкладку)

enter image description here

3) Теперь найдите Window.NextDocumentWindowNav - это то же самое, что и выше, но показывает предварительный просмотр открытых вкладок (вы можете слишком быстро перейти к другим windows с помощью этого всплывающего окна). Однако я никогда не находил это полезным. Сделайте все, что описано в шаге 2 (Не забудьте запомнить ).

4) Window.NextTab - ваше волшебное зелье. Это позволит вам переключаться между вкладками в прямом порядке. Может быть, вы хотите CTRL + TAB ? Повторите шаг 2 и запомните .

5) Теперь поместите курсор в клавиши быстрого доступа Press: textbox (не имеет значения, что выбрано в данный момент, Вы не собираетесь назначать это время), и введите первый из трех (или два или один) ярлыков.

enter image description here

Вы увидите ярлык, используемый в настоящее время: listed. Убедитесь, что у вас нет повторяющихся записей для ярлыка. На рисунке нет повторяющихся записей. В случае, если у вас есть (редкость), скажем X, затем перейдите к X и удалите ярлык. Повторите этот шаг и для других ярлыков.

6) теперь повторите 1-5 для Previous ярлыков, а также (предпочтительно добавив Shift).

7) бонус: выберите схему сопоставления VS2005 (в верхней части того же окна), так что теперь вы получаете F2 для переименования членов и не CTRL + R + R , и F7 для кода вида и не CTRL + ALT + 0 -да .

Я придерживаюсь мнения, что VS имеет право на это по умолчанию. Я нахожу чрезвычайно полезным, что VS запоминает то, что я использовал в последний раз, и делает переключение более легким, как и сам OS (на ALT + TAB ). Мой браузер делает то же самое по умолчанию (Opera), хотя я знаю, что Firefox ведет себя по-другому.


  Сведения об ответе

VERSUION

15:28, 1st August, 2020

В Visual Studio 2012 или более поздних версиях (2013, 2015, 2017 гг...):

  1. Просмотрите меню Сервис / Параметры / окружающая среда / клавиатура.
  2. Найдите команду 'Window.NextTab', установите ярлык на Ctrl + Tab
  3. Найдите команду 'Window.PreviousTab', установите ярлык на Ctrl + Shift + Tab

enter image description here


  Сведения об ответе

fo_I_K

23:18, 3rd August, 2020

Перейдите к записи блога Visual Studio Tab Un-stupidifier Macro и используйте этот макрос. После применения макроса к установке Visual Studio можно привязать к ним свои любимые сочетания клавиш. Также обратите внимание на исправление реестра в комментариях за то, что макрос не отображается, так как они могут раздражать через некоторое время.


  Сведения об ответе

lourence

00:19, 26th August, 2020

После нескольких часов поиска я нашел решение, как переключаться между открытыми документами с помощью CTRL + TAB , которые перемещаются слева направо и SHIFT + CTRL + TAB идти справа налево.

Короче говоря вам нужно скопировать и вставить этот макрос:

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

Макрос происходит от: www.mrspeaker.net/2006/10/12/tab-un-stupidifier/

Если вы никогда не добавляете макрос в Visual Studio, есть очень полезная ссылка, как это сделать .


  Сведения об ответе

SKY

21:40, 11th August, 2020

Философия порядка вкладок Visual Studio очень нелогична, поскольку порядок отображаемых вкладок отличается от логики переключения вкладок, что делает порядок вкладок совершенно бесполезным .

Поэтому до тех пор, пока не появится лучшее решение, измените макет окна (в Environment->General) с tabbed-documents на multiple-documents; это не изменит поведение, но уменьшит путаницу, вызванную вкладками.

Таким образом, вы также найдете DocumentWindowNav более полезным!


  Сведения об ответе

JUST___

20:35, 28th August, 2020

Ctl + Alt + PgUp или ярлыки PgDn работали, чтобы переключить вкладку next/prev из коробки для меня...


  Сведения об ответе

ITSME

13:06, 23rd August, 2020

Я думаю, вам нужно то, что VSS называет следующим (предыдущим) DocumentWindow. По умолчанию он находится на Ctrl(-Shift)-F6 на моем VSS 8. На Ctrl(-Shift)-Tab у них есть Next(Previous)DocumentWindowNav . Вы можете изменить назначение клавиш через Tools/Options/Keyboard.


  Сведения об ответе

crush

06:40, 19th August, 2020

Я полностью согласен с Джеффом.

Я работал над Borland C++ Builder в течение нескольких лет ,и одна из особенностей, которой мне больше всего не хватает, - это порядок табуляции документов 'correct' с Ctrl-Tab. Как сказал Джефф, "текущее поведение вкладки продолжает вытягивать меня из задачи и заставляет меня обращать внимание на инструмент " - это именно то, что я чувствую по этому поводу, и я очень удивлен тем, что не так много людей жалуются на это.

Я так думаю Ctrl - F6 - NextDocumentWindowNav - перемещение по документам в зависимости от времени последней активации документа. Это поведение очень похоже на то, как MDI приложения обычно вели себя в старые времена.

Учитывая это, я обычно использую Ctrl + F6 для переключения между 2 документами (что довольно удобно при переключении между файлами .cpp и .h при работе над проектом c++), даже если в данный момент открыто более 2 документов. Например, если у вас открыто 10 документов (Таб1, Таб2, Таб3, ...., Tab10), я нажимаю на Tab1, а затем на Tab2. Когда я сделаю Ctrl + F6 и отпущу клавиши, я перейду к Tab1. Нажатие Ctrl + F6 снова приведет меня к Таб2.


  Сведения об ответе

JUST___

14:30, 9th August, 2020

В ветке реестра: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0 добавьте DWORD по имени "UseMRUDocOrdering" со значением 1. Он будет заказывать документы, так что самые последние используемые размещаются слева. Это не идеально, но лучше, чем неправильное поведение по умолчанию.


  Сведения об ответе

FAriza

04:54, 7th August, 2020

Я не использую Visual Studio ( да, действительно, я ее не использую), но AutoHotkey может переназначить любую горячую клавишу глобально или в конкретном приложении:

#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

Это две переделки моего основного сценария AutoHotKey. Я думаю, что это отличный инструмент для такого рода задач.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться