私はこのようにvimを始めたと仮定します:
vim foo bar
今、私はそれらのファイルをそれぞれ独自のタブに入れることにしました。vimを終了せず-p
にコマンドラインにオプションを追加せずにそれを行う方法はありますか?
私はこのようにvimを始めたと仮定します:
vim foo bar
今、私はそれらのファイルをそれぞれ独自のタブに入れることにしました。vimを終了せず-p
にコマンドラインにオプションを追加せずにそれを行う方法はありますか?
回答:
そのようなvimを起動すると、vimクライアントは取得されず、テキストエディターはターミナルまたはcmdプロンプトを使用します。2つのファイルは2つの異なるバッファーにあります。:ls
バッファをリストするために使用します:
:ls
1 %a "foo" line 6
2 "bar" line 0
%aはアクティブなバッファーです。を使用:b2
して、バッファー2に切り替える:bn
か:bp
、または次または前にサイクルするために使用できます。水平に分割する(CTRL-W s)よりも(CTRL-W v)ウィンドウを垂直に分割することを好みます。
あなたは2つのロードされたファイル&(まだ)ありませんタブを持っている場合は、次のことができ、:tabnew
かつ新しいタブタイプ:b2
常に独自のタブにバッファをロードしたい場合は、この記事をご覧ください。
vim
は、シェル内でエディターが起動します。vimのグラフィカルユーザーインターフェイスを取得するには、を使用する必要がありますgvim
。そして、あなたは正しいです-バッファはvimアプリケーションに対してグローバルです。
新しいタブでバッファを開きたいですか?
画面を分割し(Ctrl-W s)、ウィンドウを開き、Ctrl-W T
Ctrl-w T
まだ知りませんでした。もちろん、最初のタブにはまだ2つのバッファーがあります。
:ls
。
これを実現するには、tab
コマンドとコマンドを組み合わせsb[uffer]
ます。
最初に、新しいタブで開くバッファのバッファIDを知る必要があります。ls
次のコマンドでこれを確認できます。
:ls
1 %a "foo" line 1
2 "bar" line 0
IDを取得したら、次を使用して新しいタブで簡単に開くことができます。
:tab sb 2
このsb
コマンドは通常、指定されたバッファーを新しい分割ウィンドウでtab
開きますが、代わりにコマンドによって新しいタブで開きます。
また、このtab
コマンドを使用すると、タブリストの新しいタブを作成する場所を指定できます。たとえば:0tab sb 2
、現在のタブではなく、リストの先頭に新しい「バー」タブが表示されます。
:tab buffer part-of-name
新しいタブを開かなかったとき、私はがっかりしました!しかし:tab sb part-of-name
、魅力のように働いた。ありがとうございました!!!!
OPが要求したことを達成するためのより良い方法は次のとおりです。
:bufdo tab split
これにより、各バッファーがいくつ存在しても、それぞれのタブが開きます。これだけ使用すれば、.vimrcで簡単にマッピングを作成できます。この小さなvimプラグインのようなものと組み合わせると、次のように、独自のタブ内のすべてのアイテム:grep
(または:Ack)が開きます。
:grep foo
:QuickFixOpenAll
:bufdo tab split
もちろん、プラグインを使用する場合、プラグインを変更して、クイックフィックスリストの内容を直接タブに開くだけで十分です。
更新:私は本当に下のggustafssonのコメントに一言コメントしなければなりません。これは多くの最良の答えであり、Vimの構図的行動に対する傾向を美しく示しています。提案は次のとおりです。
:tab sball
:bufdo execute "tabnew %"
ます。新しいアプローチは少し明確だと思います。
:tab sball
うまくいくようです。
1. Vimで2つのファイルを開きます。
$ vim foo bar
2.バッファーの数を確認します。
:ls 1%a "foo" 2「バー」
3. 2つのコマンドをチェーンします。tabnew
新しいタブを開き、タブb <buffer_number>
に目的のバッファーをロードします。
:tabnew | b 2
:tab sb 2
他の人が言及しなかったポイントを追加してください。
複数のウィンドウがある場合、<C-W>T
このウィンドウを新しいタブに移動します。ただし、このショートカットは「バッファ」ではなく「ウィンドウ」専用です。このスタイルを好む場合、:sp
または<C-W>s
現在のバッファーをもう1つのウィンドウに複製し<C-W>T
てから、新しいタブに移動する場合。
4回のキーストロークまたは7回のキーストローク。
:tabe %
現在のバッファの新しいタブを開きます。
7キーストローク。
CtrlPプラグインを使用する場合、「CtrlPBuffer」も使用できます。その後、<C-t>
ショートカットを使用して新しいタブページで開くことができます。このスタイルは、簡単に別のバッファーに切り替えることができます。
「CtrlPBuffer」のショートカットで、4回以上のキーストローク。
:tabe %
私が長い間探していたものです、ありがとう!
:tabe %
実際に現在のバッファの新しいタブを開きません。起こることは%
、現在のバッファのファイルパスに展開され、そのパスを:tabe
開くことです。Vimは、既に開いているファイルを開こうとしていることを認識し、持っているバッファーを再利用します。これは、ファイルパスがないバッファーでは機能しないことを意味します。で新しいファイルを開いて:new
保存していない場合、これを使用して新しいタブに配置することはできません。あなたが必要とする実際のコマンドは、その答えに入れrkjnsnものです::tab sb %
または短い::tab sb
tabe %
言及されているものの多くは、おそらく探してい ます。