複数のファイルをナビゲートする


11

例えば、コマンドラインで複数のファイルを持つIオープンvimの、場合vim debug.log*の負荷debug.logdebug.log.1およびdebug.log.2私はそれらの間を移動することができ、複数のウィンドウ(に割り当てる:split/ :vsplit)または、そのような?

この操作モードで知っている唯一のショートカットはです:n。これは、リストの次のファイルをロードします。このマルチファイル操作モードでできることは何ですか?(または、どのヘルプ主題がそれをカバーしていますか?)


3
:previous(または:prev)はの逆で:n、ファイルに戻ります。
リッチ

回答:


13

最も関連性の高いヘルプトピックは:ls:filesまたは としても知られてい :buffersます。

あなたのvim debug.log*例では、:lsコマンドを与えると、次のようになります:

:ls
  1 %a   "debug.log"                    line 1
  2      "debug.log.1"                  line 0
  3      "debug.log.2"                  line 0
Press ENTER or type command to continue

…最初のものがアクティブなバッファであることを示します。

debug.log.2現在のウィンドウで開くには、:b 3または:b debug.log.2コマンドを入力して、バッファー3を表示します。

ウィンドウを分割してその中のバッファ2を開くには、:sb 2コマンドを実行します。その垂直分割バージョンはです:vert sb 2

:bコマンドにはさまざまなバリエーションがあります。ここで引用されているヘルプトピックを参照して、感じをつかんでください。


また、vim -o debug.log*すべてのファイルを個別の分割でvim -O debug.log*開くか、垂直分割で開くかを呼び出すことができます。


6

200_successで言及されている生のvim機能に加えて、Vimのエコシステムには、次のような追加機能を提供するプラグインがいっぱいです。

ただし、プラグインの使用を開始する前に、vimのバッファーとウィンドウを完全に理解することが最善です。


1
プラグイン推奨の回答に関するポリシーを読み、これらのプラグインがユーザーにどのように役立つかについて詳細を追加してください。
200_success

5

別のパラメーターでvimを開くこともできます。

タブでファイルを開きます:

vim -p debug.log*

縦に分割してファイルを開きます。

vim -o debug.log*

CtrlSpaceと呼ばれるクールで非常に強力なプラグインがあります。

https://github.com/szw/vim-ctrlspace

多くのファイルを扱う必要がある場合に非常に便利です。単純に、ctrl-spaceをすべてのタブの独自のバッファーリストとして想像できます。著者が述べているように、ファイル間を移動する非常に簡単な方法を提供します。

Vim-CtrlSpaceは、Vimの作業スペースを制御および整理するためのVimプラグインです。バッファ、ファイル、タブ、セッション、そして最後にプロジェクトの管理を含みます。そのアプローチはいくぶん独特ですが、特に既に分割されたウィンドウ、タブ、バッファなどを使用している場合は、きっとご自宅にいるように感じるでしょう。


Vi / Vimへようこそ!プラグイン推奨の回答に関するポリシーを読み、プラグインが質問にどのように対処するかについて詳細を追加してください。
200_success


4

を経由せずに特定のファイルを開く場合:lsは、次のいずれかを使用できます。

  • :vs filename 縦分割でファイルを開きます
  • :sp filename 同じことをしますが、水平分割で
  • :tabe filename 新しいタブで開きます

ファイル名を指定しない場合、現在のファイルの新しいスプリット/タブを開くことも知っておく価値があります。これは、長いファイルに便利です。


2
:tコピーコマンドです。:tabeditあなたは少なくとも必要です:tabe
tommcdo

おお、なんてことだ。ありがとう、編集します!
トム

0

複数のファイルをナビゲートするための便利なショートカットがいくつかあります。

  • CTRL-^Nはバッファ番号)は、以前に編集したファイルにジャンプします。
  • N CTRL-^Nバッファ番号はどこですか)特定のバッファにジャンプします。

    例えば:

    • 1Control+^ -最初のバッファに移動
    • 2Control+^ -2番目のバッファに移動

    これはと同等:buffer Nです。

  • 現在のディレクトリに移動するには、:Ex/ :Sex/ :Vexを使用します。

  • :tabs代わりvim -pに、次の.vimrcようないくつかのカスタムショートカットで()を使用します。

    " TABS
    " To create a new tab (Control-T)
    nnoremap <C-t> :tabnew<CR>
    inoremap <C-t> <Esc>:tabnew<CR>
    " Tab Navigation (Control+Left <-> Control-Right, Shift+H <-> Shift+L).
    nnoremap <S-h> gT
    nnoremap <S-l> gt
    nnoremap <A-Left> gT
    nnoremap <A-Right> gt
    nnoremap <C-S-Tab> gT
    nnoremap <C-Tab> gt
    " Tab Close (Control-W)
    nnoremap <C-BS> :tabclose<CR>
    inoremap <C-BS> <Esc>:tabclose<CR>
    " Close All (Control-Q)
    nnoremap <C-q> :qa<CR>
    inoremap <C-q> <Esc>:qa<CR>
    
  • 使用:ba/ :vert baスプリットに、を介して、選択されたバッファへのジャンプはControl+ww/ W、その後、(それを現在のウィンドウにします:on)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.