Vimで複数のファイルを効果的に操作する方法


1099

私はVimを使用してPerlスクリプトを開発し始め、それが非常に強力であることを発見し始めています。

私が好きなのは、一度に複数のファイルを開くことができることです:

vi main.pl maintenance.pl

そして、それらの間でホップします:

:n
:prev

そして、どのファイルが開いているかを確認してください:

:args

ファイルを追加するには、次のようにします。

:n test.pl

ファイルのリストに追加されることを期待していますが、代わりに現在のファイルリストが消去され、タイプすると、開く:argsだけtest.plです。

それでは、argsリストでファイルを追加および削除するにはどうすればよいですか?


5
tmux ...各ペインでvimを使用
Tommy

4
@Tommy:この方法では、ファイル(vimsバッファー)の間にヤンク/削除されたコンテンツを貼り付けることができません。利用できる場合は、クリップボードのみが役立つ場合があります(承認済みの回答を参照:stackoverflow.com/questions/5532878/…
ChristophS

1
:N前のファイルに移動する簡単な方法のように思われる...
Gert van den Berg

vimcasts.org/categories/the-argument-list?VimCastsは、vimを学ぶときに本当に強く推奨されます。
mcepl

回答:


1171

(Vim 7で導入された)タブを使用しないのはなぜですか?:tabnおよび:tabpでタブを切り替えることができ:tabe <filepath>ます。新しいタブを追加できます。そして定期的に:qまたは:wqあなたがタブを閉じます。あなたがマップする場合:tabn:tabp、あなたにF7/のF8キーを使えば、簡単にファイルを切り替えることができます。

ファイルがそれほど多くない場合、またはVim 7がない場合は、画面を複数のファイルに分割することもできます:sp <filepath>。次に、Ctrl+ で分割画面を切り替えW、次に移動したい方向に矢印キーを押します(w次のW分割画面と前の分割画面の場合は、矢印キーの代わりに)。


72
タブを保存して閉じるには、ZZ代わりに:wq(通常の保存と閉じるのと同じように)を使用することもできます
Andreas Grech

40
Ubuntu 10.10でvim-gnomeパッケージを使用しています。Ctrl+ PageUpとCtrl + PageDownを使用してタブを切り替えることができます。何も設定する必要はありませんでした。デフォルトでした。
Joey Adams

268
また、編集モードでgtは次のタブにgT移動し、前のタブに移動します。
2011

40
ngtを使用して、任意のタブにジャンプできます。nはタブのインデックスです(先頭は1)。ファイル名の近くに各タブのインデックスを表示するオプションがあると思いますが、それが何であるかわかりません。誰かが知っているなら、私はそれを聞きたいです。
void-pointer

81
また、-pフラグを使用すると、コマンドラインから複数のファイルをタブで開くことができます。たとえば、gvim -p main.pl maintenance.plこれらの2つのファイルをタブで開きます。
マシューStrawbridge

554

上場

現在のバッファのリストを表示するには、次を使用します:

:ls

オープニング

新しいファイルを開くには、

:e ../myFile.pl

拡張タブ補完を(置くset wildmenuあなたに.vimrc)。

注:を使用:findして一連のパスを検索することもできますが、最初にそれらのパスをカスタマイズする必要があります。


切り替え

開いているすべてのファイルを切り替えるには、

:b myfile

拡張されたタブ補完(まだset wildmenu)。

注::b#最後にアクセスしたファイルを選択するため、このファイルを使用して2つのファイルをすばやく切り替えることができます。


ウィンドウの使用

Ctrl-W sそしてCtrl-W v、水平方向と垂直方向に現在のウィンドウを分割します。:splitand :vertical split:spおよび:vs)も使用できます

Ctrl-W w開いているウィンドウを切り替える、およびCtrl-W h(またはjor kまたはl)開いているウィンドウ間を移動する

Ctrl-W c現在のウィンドウを閉じ、現在のウィンドウCtrl-W o以外のすべてのウィンドウを閉じます。

-oor -Oフラグでvimを起動すると、各ファイルが独自の分割で開きます。


これらすべてがあれば、Vimにタブは不要になり、指は目ではなくバッファーを見つけます。

注:すべてのファイルをVimの同じインスタンスに移動する場合は、--remote-silentオプションを指定してVimを起動します。


4
複数のバッファで遊んでいる場合は、LustyJugglerをお勧めします
Arun M

1
複数のファイルを扱うときに最も頻繁に使用されるvimコマンドの非常に優れたクイックリファレンスを作成していただきありがとうございます。
クォンクル2009年

9
:bバッファ番号とバッファ名の両方を引数として受け入れることができるため、非常に強力なコマンドです。もっと何か?また、ファイル名のどの部分でもタブ補完をサポートしています。たとえば、foo.txtをバッファ2で開いている場合は、「:b 2<Enter>or」:b foo.txtまたは「or」:b oo<Tab><Enter>と入力してそのファイルを編集できます。はい、最後のキーは、<Tab>を押すと「oo」から「foo.txt」まで補完されます。
Susam Pal 2014

21
私の.vimrcに次の行があります:nnoremap gb :ls<cr>:b<space>。私が入力するとgbコマンドモードで、それは私のオープンバッファとタイプを示し:b バッファ名/番号の入力を開始する私のために準備ができて、。
nkorth 2015

5
:b曖昧でない限り、部分文字列の一致を受け入れることにも言及する価値があります。あなたがファイルを開いているのであればfoobarbaz、ちょうど:b zにあなたを切り替えるために十分であるbazバッファ、および:b ooまたは:b oに行くことができますfooバッファ。
Soren Bjornstad

233
:ls

開いているバッファのリスト

  • :bp 前のバッファ
  • :bn 次のバッファ
  • :bnn数値)n番目のバッファに移動
  • :b <filename-part> 自動補完を提供するタブキー付き(素晴らしい!!)

vimの一部のバージョンでは、bnbp実際にあるbnextbprevious、それぞれ。この場合、タブのオートコンプリートが役立ちます。

または、通常モードのときに、を使用^して、作業していた最後のファイルに切り替えます。

さらに、vimのセッションを保存できます

:mksession! ~/today.ses

上記のコマンドは、現在開いているファイルのバッファーと設定をに保存します~/today.ses。を使用してそのセッションをロードできます

vim -S ~/today.ses

昨日どこで中断したか覚えておくのに手間はかかりません。;)


特定のバッファーに移動:N CTRL- ^
Tom Yang

8
@shyam愛してると思います!どういうわけか私はmksessionコマンドについて確信が持てませんでしたが、今日、突然、ファイルのリストを保存して簡単に開くための何らかの方法が必要だと判断しました。これは、物事の完全な状態(ウィンドウの分割、バッファーの場所など)を格納しているように見えるため、さらに優れています。ほんとありがと!
カサポ2016年

また、"マークを使用して、ファイル内の最後の場所にジャンプします。
クロム、

113

argsリストに追加するには:

:argadd

argsリストから削除するには:

:argdelete

あなたの例では、:argedittest.plを使用してtest.plをargsリストに追加し、ファイルを1つのステップで編集できます。

:help args より詳細で高度な使用法を提供します


4
これは実際に尋ねられた質問への回答ですが、タイトルが与えられれば、他の回答は完全に公平です。
Soren Bjornstad

48

私はバッファコマンドを使用します- :bn(次のバッファ)、:bp(前のバッファ):buffers(リストオープンバッファ):b<n>(オープンバッファn):bd(バッファを削除)。:e <filename>新しいバッファを開くだけです。


18
:lsは:buffersより速い
aehlke

42

開いているファイルのリストを表示するために間違ったコマンドを使用している可能性があります。

やってみ:ls開いていることをファイルのリストを表示するには、あなたが表示されます:

   1 %a   "./checkin.pl"            line 1
  2 #    "./grabakamailogs.pl"     line 1
  3      "./grabwmlogs.pl"         line 0
  etc.

次に、リストされている番号でファイルを参照することにより、ファイルをバウンスできます。例::3b

または、番号を入力して画面を分割できますが、bの代わりにsbを使用します。

余談ですが、%は現在表示されているファイルを指し、#は代替ファイルを指します。

を押すと、これら2つのファイルを簡単に切り替えることができます。 Ctrl Shift 6

編集:削除した内容を含む0〜9のレジスタを含む、レジスタの現在の内容を確認:lsするために使用できるよう:regに これは、以前に削除したテキストを再利用する場合に特に便利です。


2
%や#などの関連情報はさておき、+1
アシッシュ2015年

35

Vim(元のViではありません)には、(多くのコンテキストで)バッファーよりも優れているタブがあります。:tabe [filename]新しいタブでファイルを開くと言うことができます。タブ間の循環は、タブをクリックするか、キーの組み合わせ[ n ] gtとによって行われますgT。グラフィカルVimにはグラフィカルタブさえあります。


1
おかげで素晴らしいようですが、残念ながらサーバーにはVIM 6.1しかインストールされていません。
エドワードタングアイ

1
ワイルドカードを使用すると、タブは非常に便利ですvim -p dir/*。最大タブサイズは10ですが、~/.vimrc設定でtabpagemax他の値に変更できます。
Campa

27

ここに多くの答えがあります!私がホイールを再発明することなく使用するもの-最も有名なプラグイン(すぐに死ぬことはなく、多くの人々に使用されています)は超高速でマニアックです。

  • ctrlpvim / ctrlp.vim-名前でファイルを見つけるには、その場所または名前だけでファジー検索します
  • jlanzarotta / bufexplorer-開いたバッファを参照する(最近開いて変更したファイルの数を覚えておらず、ファイルの場所を覚えていない場合、おそらくAgで検索したため)
  • gitignoreに関してファイルを検索するためのrking / ag.vim
  • ディレクトリ構造、ルックアラウンド、ファイルの追加/削除/変更を確認するscrooloose / nerdtree

編集:最近私はdyng / ctrlsf.vim を使用してコンテキストビューで検索し(Sublime検索のように)、エンジンをagから切り替えましたからripgrep。性能は抜群です。

EDIT2:とともにCtrlSF使用できるmg979 / vimのビジュアル・マルチ一度に複数のファイルに、メイクの変更をして、最後に一度に保存します。


2
ctrlpは移動し、ctrlpvim / ctrlp.vimにあります
Dave

1
これが正解です。なぜ賛成票が増えないのですか?
ThomasMöbius16年

2
2008年に質問されたため、賛成票はこれ以上ありません。:)
burnettk

丁度。これらのプラグインがなければ、開発環境でvimを想像することはできません。
エドガーアローロ2018年

25

以下のようなもの:eとは、:badd唯一のため、次のように失敗し、一つの引数を受け付けます

:e foo.txt bar.txt
:e /foo/bar/*.txt
:badd /foo/bar/*

vim内から複数のファイルを追加したい場合は、 arga[dd]

:arga foo.txt bar.txt
:arga /foo/bar/*.txt
:argadd /foo/bar/*

21

このスレッドのいくつかの回答はタブの使用を提案し、他の回答は同じことを達成するためのバッファの使用を提案しています。タブとバッファは異なります。この記事「Vim Tab madness-Buffers vs Tabs」を読むことを強くお勧めします。

これが私が記事から引き出した素晴らしい要約です:

概要:

  • バッファは、ファイルのメモリ内テキストです。
  • ウィンドウは、バッファ上のビューポートです。
  • タブページはウィンドウのコレクションです。

2
:help windowVimを入力すると、概要が表示されます
icc97

19

vimで複数のファイルを使用する場合、私はこれらのコマンドを主に使用します(約350ファイルを開いた状態)。

  • :b <partial filename><tab> (バッファにジャンプ)
  • :bw (バッファワイプ、バッファの削除)
  • :e <file path> (編集、新しいバッファを開く>
  • pltags -サブルーチン/メソッド定義へのジャンプを有効にする

2
350ファイル!!! それは印象的です。ジャンプする適切なバッファをどのように見つけますか?分割を行うことはありますか?
Brian O'Dell 2014

3
@ BrianO'Dell :b <partial filename><tab>プラスset wildmenuは、.vimrc大量のバッファを開いている場合に適しています。次に、部分的に一致し、見つかったものをスクロールします。他のまともなエディターでは、あいまいな検索結果がありますが、通常、そのあいまいな検索結果を、開いているファイルだけに制限することはできません。
icc97

17

これは回答のいずれにも含まれていないため、別の回答を追加します

表示するすべてのバッファを変更しtabます。

 :tab sball

すべてのバッファを開いてタブ表示にします。次に、タブ関連のコマンドを使用できます

gt or :tabn           "    go to next tab
gT or :tabp or :tabN  "    go to previous tab

詳細は:help tab-page-commands

vimに、タブビューとして複数のファイルを開くように指示できますvim -p file1 file2alias vim='vim -p'役に立つでしょう。
同じことは、次のオートコマンドを実行することでも実現できます~/.vimrc

 au VimEnter * if !&diff | tab all | tabfirst | endif

とにかく質問に答える:引数リストに追加するには:arga file

引数リストから削除するには: argd pattern

詳細は :help arglist


16

Vimグローバルマークを使用することもできます

このようにして、ファイル間で、またファイル内のマークされた場所まで、すばやくバウンスできます。また、主要なコマンドは短く 'C 、使用しているコードに移動し、使用し 'T ている単体テストに移動します。

場所を変更すると、マークのリセットもすばやく行えます。 mC 新しいコードスポットを mT マークし、新しいテストスポットをマークします。


12

gVimとコマンドラインVimに同じ.vimrcファイルを使用しています。私はgVimでタブを使用し、コマンドラインVimでバッファを使用する傾向があるので、.vimrcを設定して、両方で簡単に操作できるようにします。

" Movement between tabs OR buffers
nnoremap L :call MyNext()<CR>
nnoremap H :call MyPrev()<CR>

" MyNext() and MyPrev(): Movement between tabs OR buffers
function! MyNext()
    if exists( '*tabpagenr' ) && tabpagenr('$') != 1
        " Tab support && tabs open
        normal gt
    else
        " No tab support, or no tabs open
        execute ":bnext"
    endif
endfunction
function! MyPrev()
    if exists( '*tabpagenr' ) && tabpagenr('$') != '1'
        " Tab support && tabs open
        normal gT
    else
        " No tab support, or no tabs open
        execute ":bprev"
    endif
endfunction

これにより、Hおよびの既存のマッピングが破棄さLれますが、ファイル間の切り替えが非常に高速かつ簡単になります。H次とL前のために打ってください。タブとバッファのどちらを使用していても、意図した結果が得られます。


1
私はこれらのマッピングが好きです。Ctrl-H、Ctrl-Lも試してください。私は同じマッピングでFirefoxとgnomeターミナルをセットアップしました。一貫したタブキーショートカットがあるととても便利です。
cmcginty 2009

4
既存のマッピングを壊さないようにするには、Ctrlキーの代わりにリーダーキーを使用します
aehlke

10

複数のバッファーを使用する場合、最も重要なことは非表示に設定して、残しているバッファーに未保存の変更がある場合でもバッファーを切り替えられるようにすることです。


9

vim組み込みコマンドのみを使用している場合、複数のバッファー間を切り替えるのにこれまで見た中で最高のものは次のとおりです。

nnoremap <Leader>f :set nomore<Bar>:ls<Bar>:set more<CR>:b<Space>

それは完全に両方:ls:bコマンドを組み合わせています-開いているすべてのバッファをリストし、バッファを切り替えるコマンドを入力するのを待っています。

上記のvimrcでのマッピングを考えると、と入力すると<Leader>f

  • 開いているすべてのバッファが表示されます
  • あなたはできる:
    • タイプ 23してバッファ23に移動し、
    • タイプ #して代替/ MRUバッファーに移動し、
    • ファイルの名前の一部を入力してから、、<Tab>または<C-i>、オートコンプリートするには
    • または単に<CR>または<Esc>現在のバッファに留まる

上記のキーマッピングの出力のスナップショットは次のとおりです。

:set nomore|:ls|:set more
  1  h    "script.py"    line 1
  2 #h  + "file1.txt"    line 6  -- '#' for alternative buffer
  3 %a    "README.md"    line 17 -- '%' for current buffer
  4       "file3.txt"    line 0  -- line 0 for hasn't switched to
  5     + "/etc/passwd"  line 42 -- '+' for modified
:b '<Cursor> here'

上記のスナップショットでは:

  • 2列目:%a現在、h非表示、#前、空は切り替えられていません。
  • 3列目:+変更済み。

また、強くお勧めしset hiddenます。を参照してください:help 'hidden'


これは素晴らしいアイデアです!私はたくさん使っ:b:lsいますが、独立しています。1ページ以上のバッファーがある場合は、これはあまり役に立たないと思いますが、それでもフォールバックできます:b
icc97

それが役立つのを見てうれしいです。乾杯!:)
qeatzy

このVim wikiaから、に少し短くすることができますがnnoremap <leader>f :ls<cr>:b<space>、 'more'コマンドで問題が発生する可能性があります
icc97

はい、その方法は、開いているファイルの数が少ない場合に完全に機能します(通常の使用例)。 set moreものは、多くのファイルが開いている(1ページ以上)場合にのみ違いがありますvim /usr/include/*
qeatzy 2017

8

私は以下を使用します。これにより、Sublime Text / Textmateなどの他のエディターに期待できる多くの機能が提供されます

  1. 「タブページ」ではなくバッファを使用します。バッファは、他のほとんどすべてのエディタのタブと同じ概念です。
  2. あなたは、タブを持つのと同じ外観をしたい場合は、使用することができVIM-航空会社であなたの次の設定でプラグインを.vimrclet g:airline#extensions#tabline#enabled = 1。これにより、開いているタブページがない場合、すべてのバッファーがタブヘッダーとして自動的に表示されます。
  3. Tim Popeのvim-unimpairedを使用する[bと、]bそれぞれ前/次のバッファに移動するための(プラス他のグッズの全体のホスト)
  4. 持っているset wildmenuあなたには.vimrc、あなたが入力したときに、その後:b <file part>+Tabあなたがスクロールし、左/右矢印を使用することができることを可能バッファのリストを取得するためにバッファ
  5. Tim Popeのvim-obsessionプラグインを使用して、航空会社とうまくやり取りするセッションを保存します(セッションとプラグインに多くの苦労がありました))。
  6. Tim Popeのvim-vinegarプラグインを使用します。これはネイティブで動作しますが、操作:Exploreがはるかに簡単になります。入力するだけで-エクスプローラーが開きます。これは、エクスプローラーでディレクトリを上に移動するのと同じキーです。ナビゲーションが速くなります(ただし、fzfを使用するとめったにこれを使用しません)
  7. fzf(vimプラグインとしてインストールできます)は、ファイル(およびバッファーも)の検索に使用できる非常に強力なファジーファインダーでもあります。fzf はfd(findのより高速なバージョン)でも非常にうまく機能します
  8. Ripgrepvim- ripgrepとともに使用してコードベースを検索:cdoし、その結果を使用して検索と置換を行うことができます

fzfとfzf-vimは私の人生を変えました、それを十分にお勧めすることはできません。また、ファイルをあいまい検索するためのコンソールでさえ、Windowsで非常にうまく機能します。Windowsでは、ripgrep(rg)バックエンドを使用します。これは、私の経験では、他の検索/ grepツールよりも優れています(silversearcherまたはデフォルトのウィンドウのように、fzfがiircを使用することを検出します)。これを使用して、アイテムの任意のリストを検索できます。最近使用したファイル、現在開いているバッファー、現在のバッファーの行、コードベースの行(cwd)、タグ、..独自のリストのあいまい検索を簡単にプログラムできます。とても良い!(私はctrl-pから来て、振り返ることはありませんでした)
Emile Vrijdags

7

複数のファイルを効果的に操作するための私の方法は、tmuxを使用することです。

次のように、ウィンドウを垂直方向と水平方向に分割できます。

ここに画像の説明を入力してください

私はMacとLinuxマシンの両方でこのように機能しており、提供されているネイティブのウィンドウペイン切り替えメカニズム(Macの場合)よりも優れています。私は切り替えがより簡単で、tmuxを使用した場合にのみ、私のMacで「同じ現在のディレクトリにある新しいページ」を機能させることができました(同じディレクトリに新しいペインを開くオプションがあるようですが)。驚くほど重要な作品。現在の場所にある即座に新しいペインは非常に便利です。両方のOSで同じキーコンボで新しいペインを実行する方法は私にとって重要であり、将来の個人的な互換性のためにすべてにとってボーナスです。複数のtmuxペインのほかに、複数のタブを使用してみました。たとえば、ここに画像の説明を入力してください複数の新しいウィンドウ、たとえばここに画像の説明を入力してください最終的には、複数のtmuxペインが私にとって最も役立つことがわかりました。私は非常に「視覚的」であり、さまざまなコンテキストを目の前に置き、ペインとして接続します。

tmuxは、古いものでscreenはサポートされていなかった水平および垂直のペインもサポートします(ただし、Macのiterm2はサポートしているようですが、現在のディレクトリ設定は機能しません)。tmux 1.8


1
あなたが「複数の窓」の人工的な例を見たとき、私は笑わなければなりませんでした。私は誰もそのように動作しないことを願っています:-)とにかく、私はより良いタイリングwmを使用します(私はtmuxからi3wmに切り替えました)。答えを完成させるためだけに。
lzap 14

1
Tmuxは素晴らしく、私はこのアプローチを長い間使用していましたが、2つのファイル間でのナビゲーションとコピーおよび貼り付けがより困難になっています。
16年

1
以前はこれを行っていましたが、ヤンク/ペーストする必要がある場合は、複数のvimバッファーを使用する方が優れています
Titou

3

私はコマンドラインとgitを頻繁に使用しているので、bashrcに次のエイリアスがあります。

alias gvim="gvim --servername \$(git rev-parse --show-toplevel || echo 'default') --remote-tab"

これにより、既存のウィンドウの新しいタブで新しい各ファイルが開き、gitリポジトリごとに1つのウィンドウが作成されます。したがって、リポジトリAから2つのファイルとリポジトリBから3つのファイルを開くと、2つのウィンドウが表示されます。

開いているファイルがgitリポジトリに含まれていない場合、デフォルトのウィンドウに移動します。

タブ間を移動するには、次のマッピングを使用します。

nmap <C-p> :tabprevious<CR>
nmap <C-n> :tabnext<CR>

複数のファイルを一度に開くには、これを他のソリューションの1つと組み合わせる必要があります。


3

~/.vimrcファイルで非表示に設定されている複数のバッファを使用しています。

ミニバッファーエクスプローラースクリプトも、バッファーのコンパクトなリストを取得するのに適しています。次に、:b1または:b2...をクリックして適切なバッファーに移動するか、ミニバッファーエクスプローラーを使用してバッファーをタブで移動します。


2

複数のファイルを簡単に編集できるように、マップに従ってください

"分割ウィンドウ

nmap <leader>sh :leftabove vnew<CR>

nmap <leader>sl :rightbelow vnew<CR>

nmap <leader>sk :leftabove new<CR>

nmap <leader>sj :rightbelow new<CR>

" 動き回ります

nmap <C-j> <C-w>j

nmap <C-k> <C-w>k

nmap <C-l> <C-w>l

nmap <C-h> <C-w>h


2

使用するワークフローを示す非常にシンプルなビデオを作成しました。基本的にはCtrl-Pを使用します Vimプラグイン、バッファナビゲーションをEnterキーにマッピングしました。

このようにして、通常モードでEnterキーを押し、開いているファイルのリスト(画面下部の小さな新しいウィンドウに表示されます)を確認し、編集するファイルを選択して、Enterキーをもう一度押します。開いている複数のファイルをすばやく検索するには、ファイル名の一部を入力してファイルを選択し、Enterキーを押します。

ビデオでは多くのファイルを開いていませんが、たくさんのファイルを使い始めると非常に役立ちます。

プラグインはMRU順序を使用してバッファーをソートするため、Enterキーを2回押すだけで、編集していた最新のファイルにジャンプできます。

プラグインをインストールした後、必要な構成は次のとおりです。

nmap <CR> :CtrlPBuffer<CR>

もちろん、別のキーにマッピングすることもできますが、入力するマッピングは非常に便利だと思います。



2

私や他の多くのvimユーザーでは、最良のオプションは、

  • を使用してファイルを開き、

:e file_name.extension

そして、Ctrl + 6で最後のバッファに移動します。または、いつでも押すことができます

:lsはバッファをリストし、bに続けてバッファ番号を使用してバッファを変更します。

  • 垂直または水平分割を使用して

:vspは垂直分割

:sp水平分割

そして<C-W><C-H/K/L/j>、作業分割を変更します。

もちろん、任意の数の分割で任意のファイルを編集できます。


回答を編集して、この質問にすでに存在する他の回答よりも改善されるようにしてください。
hongsy

1

VIMを使い始めたとき、タブが異なるウィンドウレイアウトとして使用されることになっていることに気づかず、バッファが複数のファイルの編集/相互の切り替えの役割を果たす。実際、最初はタブがv7.0より前になく、ターミナルタブ内で1つのVIMを開いただけです(現時点ではgnome-terminalを使用していました)。alt+ numbersを使用してタブを切り替えました。 :buffers、:bn、:bpは私には多すぎました。VIM 7.0がリリースされたとき、多くのファイルを管理して切り替える方が簡単であることがわかりましたが、最近、バッファが適切に機能するように構成する必要がある場合を除いて、常にバッファを使用する方法であることがわかりました。

それで私はvim-airlineを試して、視覚的なオントップのタブのようなバッファーバーを有効にしましたが、グラフィックが私のiTerm2に問題があったので、他のカップルを試してみましたが、MBEが私にとって最もうまくいくようです。オリジナル(現在のページの先頭/末尾に移動)はあまり役に立たないので、shift + h / lをショートカットとして設定しました。

map <S-h> :bprev<Return>
map <S-l> :bnext<Return>

gtやgTよりも簡単で、:eも:tabnewより簡単です。:bdは:qほど便利ではありませんが(MBEには問題があります)、バッファ内のすべてのファイルを使用できます。



0

このスレッドの答えのほとんどは、もちろん問題のない単純なvimコマンドを使用していますが、特に役立つプラグインと関数の組み合わせを使用して広範な答えを提供すると思いました(少なくともこれらのヒントのいくつかはGary Bernhardtのファイルからのものです)ナビゲーションのヒント):

  1. 最後の2つのファイルを切り替えるには、2 <leader>回押します。<leader>スペースバーに割り当てることをお勧めします:

    nnoremap <leader><leader> <c-^>
    
  2. プロジェクト内をすばやく移動するための答えは、CtrlPなどのあいまい一致ソリューションです<leader>aすばやくアクセスできるようにバインドします。

  3. 現在開いているバッファを視覚的に表示したい場合は、BufExplorerプラグインを使用します。シンプルですが効果的です。

  4. ファイルシステムを参照したい場合は、コマンドラインまたは外部ユーティリティ(Quicklsilver、Afredなど)を使用しますが、現在のプロジェクト構造を見るとNERDツリーは古典的です。代わりに2、これをメインのファイル検索方法として使用しないでください。それは本当にあなたを遅くします。バインディングを使用してい<leader>ffます。

これらは、ファイルを見つけて開くのに十分なはずです。もちろん、そこから水平分割と垂直分割を使用します。分割に関して、私はこれらの関数が特に便利であると思います:

  1. 十分なスペースがない場合は、小さな領域で新しい分割を開き、ナビゲーションでそれらを展開します。これらが正確に何をするかについてのコメントはここを参照してください:

    set winwidth=84
    set winheight=5
    set winminheight=5
    set winheight=999
    
    nnoremap <C-w>v :111vs<CR>
    nnoremap <C-w>s :rightbelow split<CR>
    set splitright
    
  2. 分割から分割に簡単に移動します。

    nnoremap <C-J> <C-W><C-J>
    nnoremap <C-K> <C-W><C-K>
    nnoremap <C-L> <C-W><C-L>
    nnoremap <C-H> <C-W><C-H>
    

0

あなたを追加することで絶対的な狂人とエイリアスvimになることができvim -pます.bashrc

alias vim="vim -p"

これにより、:tab ball後でvim内から呼び出す必要なく、シェルから複数のファイルをタブで開くことができます。

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