Visual Studio でドキュメント間を移動するための Ctrl + Tab 動作の変更

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

  •  09-06-2019
  •  | 
  •  

質問

方法を変更することは可能ですか Ctrl + タブ そして シフト + Ctrl + タブ Visual Studio で作業していますか?タブ コントロール内の項目間を切り替えるだけなので、ポップアップ ナビゲータ ウィンドウを無効にしました。私の問題は、次のドキュメントと前のドキュメントに切り替えると何が行われるかが一貫していないことです。

私がこれまでに見た、開いている文書に対してタブ コントロールを使用する他のプログラムはすべて、 Ctrl + タブ 左から右に移動し、 シフト + Ctrl + タブ 右から左へ行くこと。Visual Studio は、選択された最後のタブにジャンプすることでこれを解決します。どのような文書が作成されるかは決してわかりませんし、同じことは二度とありません。

それは非常に直観に反するものです。これは、一度に 2 つのドキュメントしか開かないように全員に奨励するための巧妙な方法でしょうか?


いくつかのファイルを開いているとします。私はその 1 つで作業していますが、右側の次のタブに何があるかを確認する必要があります。地球上のあらゆる用途において、 Ctrl + タブ 私をそこに連れて行ってくれるでしょう。しかし、Visual Studio では、他のどのタブに移動するのかわかりません。2 つのドキュメントしか開いていない場合、これはうまく機能します。3 つ以上のタブに移動すると、Visual Studio がどのタブに移動するかが決まります。

これの問題は、ツールについて考える必要がなく、背景に消えていき、タスクについて考えるべきであるということです。現在のタブの動作は私をタスクから引き離し続けるため、ツールに注意を払わなければなりません。

役に立ちましたか?

解決

Visual Studio 2015 (以前のバージョンの VS と同様、ただし、 生産性向上のための電動工具 VS2013 以下を使用している場合)、Visual Studio には 2 つの新しいコマンドがあります。

ウィンドウ.次のタブ そしてウィンドウ.前のタブ

から再マッピングしてください Ctrl+オルタナティブ+ページアップ/Ctrl+オルタナティブ+ページダウンCtrl+タブ/Ctrl+シフト+タブ で:

メニュー ツール -> オプション -> 環境 -> キーボード

注記:Visual Studio 2010 などの以前のバージョンでは、Window.NextTab および Window.PreviousTab という名前が付けられていました。 Window.NextDocumentWellTab そしてWindow.PreviousDocumentWellTab.

他のヒント

Visual Studio 2010 には、これを解決する方法が組み込まれています。

デフォルトでは、 Ctrl+タブ そして Ctrl+シフト+タブ に割り当てられています Window.[Previous/Next]..Document, 、でもできます。

Tools -> Options -> Environment -> Keyboard,

それらのキーの割り当てを削除し、再割り当てします。 Window.[Next/Previous]Tab 必要な動作を追加します。

少なくとも VS 2012 では変更できます (2010 でも機能すると思います)。

1) TOOLS > Options > Environment > Keyboard

(はい、ツールです。VS2012 です!) 次に、3 つのショートカットを確認します。

2) Window.NextDocumentWindow - 上部の検索ペインに入力すると、すぐにそこにアクセスできます。これがあなたのものです . 。気に入らない場合は削除してください。それを別のものに変更します (忘れないでください) 割当 ボタン)自分で用意したい場合は、 でも、最終的にはそのショートカットを覚えておいてください. 。後で便利になります。

(つまり、これは最後のタブを記憶するショートカットです)

enter image description here

3) 次に探します Window.NextDocumentWindowNav - これは上記と同じですが、開いているタブのプレビューが表示されます (このポップアップでは他のウィンドウにすぐに移動できます)。ただし、これが役に立ったとは思いませんでした。ステップ 2 で説明したことをすべて実行します (忘れないでください) 覚えて).

4) Window.NextTab - あなたの魔法の薬。これにより、タブを前方の順序で循環できるようになります。あなたが望むかもしれません CTRL+タブ?再びステップ2と 覚えて.

5) カーソルを ショートカット キーを押します。 テキストボックス (現在何が選択されているかは関係ありません。 割当 今回は)、3 つ (または 2 つまたは 1 つ) のショートカットの最初に入力します。

enter image description here

わかるでしょ 現在使用されているショートカット: リストされています。ショートカットに重複したエントリがないことを確認してください。この写真では、重複したエントリはありません。(レアリティ) がある場合は、「X」と言ってから X に移動し、ショートカットを削除します。他のショートカットに対してもこの手順を繰り返します。

6) 1 ~ 5 を繰り返します。 Previous ショートカットも同様に(追加することが望ましい) シフト).

7) ボーナス:(同じボックスの上部にある) VS2005 マッピング スキームを選択すると、次の結果が得られます。 F2 のために 名前の変更 メンバーもそうでない人も CTRL+R+R, 、 そして F7 のために コードを表示 そしてそうではありません CTRL+オルタナティブ+0.

私は、VS がデフォルトで正しく機能していると考えています。VS が最後に使用したものを記憶しており、OS 自体が行うのと同じように、切り替えが簡単になるのは非常に便利です。 オルタナティブ+タブ)。私のブラウザもデフォルト (Opera) で同じ動作をしますが、Firefox の動作が異なることはわかっています。

Visual Studio 2012 以降 (2013、2015、2017...) の場合:

  1. 「ツール」/「オプション」/「環境」/「キーボード」メニューを参照します。
  2. コマンド「Window.NextTab」を検索し、ショートカットを次のように設定します。 Ctrl+タブ
  3. コマンド「Window.PreviousTab」を検索し、ショートカットを次のように設定します。 Ctrl+シフト+タブ

enter image description here

ブログ投稿に移動します Visual Studio タブの Un-stupidifier マクロ そしてマクロを活用します。Visual Studio のインストールにマクロを適用した後、お気に入りのキーボード ショートカットをマクロにバインドできます。また、しばらくすると煩わしくなる可能性があるため、マクロ バルーンを表示しないようにするためのコメントのレジストリ修正にも注目してください。

数時間検索した結果、開いているドキュメントを切り替える方法を見つけました。 CTRL+タブ 左から右に移動し、 シフト+ CTRL+ タブ 右から左へ行くこと。

つまり、このマクロをコピーして貼り付ける必要があります。

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 にマクロを追加したことがない場合は、次の非常に便利なリンクがあります。 やれ.

Visual Studio のタブ順序の考え方は非常に直観に反しています。表示されるタブの順序がタブ切り替えロジックとは異なるため、タブの順序がレンダリングされます。 まったく役に立たない.

したがって、より良い解決策が見つかるまで、ウィンドウ レイアウト ([環境] -> [一般]) をタブ付きドキュメントから複数ドキュメントに変更します。動作は変わりませんが、タブによって引き起こされる混乱が軽減されます。

そうすれば、DocumentWindowNav もさらに便利になるでしょう。

Ctl + オルタナティブ + PgUp または PGD​​N ショートカットは、次へ/前のタブをすぐに切り替えることができました...

私はジェフの意見に100%同意します。

私は数年間 Borland C++ Builder に取り組んできましたが、最も懐かしい機能の 1 つは、ドキュメントの「正しい」タブ順序です。 Ctrl-タブ. 。ジェフが言ったように、「現在のタブの動作が原因でタスクから引き離され続け、ツールに注意を払わなければなりません 」というのがまさに私が感じていることなのですが、これについて文句を言う人があまりいないという事実にとても驚いています。

私は思う Ctrl-F6 - NextDocumentWindowNav - ドキュメントが最後にアクティブ化された時刻に基づいてドキュメントをナビゲートします。この動作は、昔の MDI アプリケーションの動作によく似ています。

これを考慮して、私は通常、 Ctrl+F6 現在開いているドキュメントが 3 つ以上ある場合でも、2 つのドキュメントを切り替えることができます (これは、C++ プロジェクトで作業するときに .cpp ファイルと .h ファイルを切り替えるのに非常に便利です)。たとえば、10 個のドキュメント (Tab1、Tab2、Tab3、...、Tab10) が開いている場合、Tab1 をクリックしてから Tab2 をクリックします。私がする時 Ctrl+F6 キーを放すと、Tab1 にジャンプします。プレス中 Ctrl+F6 再び Tab2 に戻ります。

VSS で Next(Previous)DocumentWindow と呼ばれるものが必要だと思います。デフォルトではオンになっています Ctrl(-Shift)-F6 私のVSS 8では。の上 Ctrl(-Shift)-Tab 彼らは持っている Next(Previous)DocumentWindowNav. 。キーの割り当ては、[ツール]/[オプション]/[キーボード]から変更できます。

レジストリ ブランチ内:hkey_current_user software microsoft visualStudio 9.0値1の「usemrudocordering」という名前のdwordを追加します。最近使用したドキュメントが左側に配置されるように順序付けされます。完璧ではありませんが、デフォルトの不正な動作よりは優れています。

Visual Studio は使用しません (はい、本当に使いません)、 しかし オートホットキー ホットキーをグローバルまたは特定のアプリケーションで再マッピングできます。

#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 スクリプトの 2 つの再マッピングです。この種のタスクには優れたツールだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top