VIMの垂直分割としてバッファーを開く


176

VIMでファイルを編集していて、既存のバッファを開く必要がある場合(たとえば、バッファリストから:buffers:)垂直分割でそれを開くにはどうすればよいですか?

私はあなたがすでに通常の分割でそれを開くことができることを知っています:

:sbuffer N

ここにN必要なバッファ番号がありますが、上記Nは垂直方向ではなく水平方向にバッファを開きます。

また、開いた後にウィンドウの配置を変更して、次のように垂直分割することができることも知っています。

Ctrl-W H
Ctrl-W L

これにより、ウィンドウが右または左に垂直に分割されます。

あればということに私には思われるsbufferがなければならないvsbufferが、それは(私が知っていないこと)が存在しません

また、私がこの質問を解決するプラグインを探しているわけではないことに注意してください。私はあなたがこれを行うことを可能にするたくさんのプラグインについて知っています。

私はすでにそこにあるものを見逃しているかもしれないと確信しています。

編集:コラボレーションの最高の精神で、誰かがこの問題を見つけてプラグインをインストールしたくない場合は、マッピングを使用した簡単な関数を作成しました:

関数:

" Vertical Split Buffer Function
function VerticalSplitBuffer(buffer)
    execute "vert belowright sb" a:buffer 
endfunction

マッピング:

" Vertical Split Buffer Mapping
command -nargs=1 Vbuffer call VerticalSplitBuffer(<f-args>)

これにより、バッファを右スプリットで開くタスクが実行されるため、バッファ1の場合は、次のように呼び出します。

:Vbuffer 1

回答:


206

試してください:

:vert sb N

これにより、左側の垂直分割が開きます(一部のオプションを変更していない限り、デフォルトで)。

一方、右側の分割を開くには:

:vert belowright sb N

5
持っていないのはかなり奇妙に見えませんvsbuffer Nか?迷惑です。あなたの答えはそれを釘付けにします。ありがとう!
alfredodeza 2010

13
私も常にあるべきだと感じていvsbufferます。またCtrl-w T、新しいタブでバッファを開くのを忘れることもよくあります(または、現在アクティブまたは表示されていないバッファでそれを実行したい)。だから、代替手段として、あなたは私がJEETの有効な回答@よりも覚えやすい見つけるれ、これらのケースのいずれかのバーを使用することができます:vsp | b N:tabe | b N
11

私はこのコマンドNがオートコンプリートを許可しているのが好きです(これは他の回答のコマンドでは不可能のようです)。それにもかかわらず、どちらも賛成票を投じた。
David Rivers

124

:vsp | b1

1はバッファ番号です。buffersすべてのバッファーをリストするために使用します。

興味がある場合は、スプリットに関する追加情報をいくつか示します。 リンク


9
:lsショートカットのように見えるを使用することもでき:buffersます。
dskecse 2014年

3
あなたも行うことができます:vsp | b <buffer name>
ケニーバンブリッジ2016年

4
@KennyBambridgeはさらに優れています-バッファー名の一部(大文字と小文字を区別)を入力し、タブを
押し

心の中でクマが、そのリンクが @Jerinawが提供するあなたは、そのページのコメントを読むためにも明確にする必要がありますので、そのページ上の用語は真剣に誤解されて良いです。
NeilG

5

.vimrcに以下を追加することで、痛みを和らげることができます

cabbrev vb vert sb

これで、次のように使用できます。

:vb <buffer>

これは素晴らしいです。拡張バージョンでは、バッファ名のオートコンプリートも提供されます!ありがとう、cabbrevも知りませんでした。
kidpixo

2

:ls現在のバッファーのリストとコマンドを組み合わせて、目的のバッファーをいずれかで開くこともできます

  1. 現在のウィンドウ: :b <N/bufname>
  2. 垂直分割: :vsp | b <N/bufname>
  3. 水平分割: :sp | b <N/bufname>

このために、次のマッピングを追加しました~/.vimrc(マッピングの順序は、上記の希望するウィンドウのリストを表します)

 nnoremap <leader>b :ls<cr>:b<space>
 nnoremap <leader>v :ls<cr>:vsp<space>\|<space>b<space>
 nnoremap <leader>s :ls<cr>:sp<space>\|<space>b<space>

これに基づいて、あなたがヒットするとすぐにあなたはバッファリストを見ることができます

  1. <leader>b
  2. <leader>v
  3. <leader>s

次に、目的のバッファ番号を入力しますN。これにより、目的のウィンドウでバッファが開きます。もちろん、バッファ名の一部を使用することもできbufnameます。

に基づいてマッピングし<leader>まし,

let mapleader = ","

一部の人々(たとえば、私)にとっては、MiniBufExplのようなプラグインを置き換えることで、画面上のスペースを節約できます。


0

あなたはそのようなNeovimを使うことができます:

autocmd FileType python nmap <F5> :rightbelow vertical split <bar> :term python %<cr>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.