2016-05-14 2 views
1

のようにネイビーターミナルバッファーを切り替えます。私は非常にターミナルを含むバッファを "トグル"し、それが画面の下部にあるような固定位置に表示されるようにしたいと思います。ネーヴィムバッファー内に端末を持つオプションがあるので、nerdtreeプラグイン

私はこれをnerdtreeが実行していることを知っています。これは、常に画面の左側に表示されるようにキーバインドを切り替えます。私が望むのは、ネオビムのターミナルバッファーと同じです。このようなプラグインを知っている人がいますか、それともどのように作成するのでしょうか?

答えて

2

解決策があるかもしれません。以下のコードは、これまでF4ボタンで左の端子を切り替えます:

let g:term_buf = 0 
function! Term_toggle() 
    1wincmd w 
    if g:term_buf == bufnr("") 
    setlocal bufhidden=hide 
    close 
    else 
    topleft vnew 
    try 
     exec "buffer ".g:term_buf 
    catch 
     call termopen("bash", {"detach": 0}) 
     let g:term_buf = bufnr("") 
    endtry 
    startinsert! 
    endif 
endfunction 
nnoremap <f4> :call Term_toggle()<cr> 
+0

ありがとうございます!それは実際にいくらか働きます!私はそれを底部の作業を開始しようとしているが、それはトグルを拒否し、それは代わりに新しいバッファウィンドウを開きます。 私は「topleft vnew」を「botright new」に変更しました。 – Kristoffer

+0

このコマンドでも[名前なし]バッファがたくさん追加されます – Kristoffer

+0

私は遠隔ウィンドウについてよく知らないですが、ここでは 'windo'を使うことができると思います。すべてのウィンドウにコマンドを送り、ターミナルバッファであるウィンドウの 'winnr()'をグローバル変数に保存します。その後、そのウィンドウに切り替えて、私の機能から何かを行います。 – jonathf

1

私は、これは少し良く非表示にしたいすべての人に私の解決策だよりIDEと同様に、

let g:term_buf = 0 
function! Term_toggle() 
    1wincmd w 
    if g:term_buf == bufnr("") 
    setlocal bufhidden=hide 
    close 
    else 
    rightbelow new 
    12winc - 
    try 
     exec "buffer ".g:term_buf 
    catch 
     call termopen("bash", {"detach": 0}) 
     let g:term_buf = bufnr("") 
    endtry 
    set laststatus=0 
    startinsert! 
    endif 
endfunction 
nnoremap <f4> :call Term_toggle()<cr> 

" Terminal go back to normal mode 
tnoremap <Esc> <C-\><C-n> 
" When switching to terminal windows it goes into insert mode automatically 
au BufEnter * if &buftype == 'terminal' | :startinsert | endif 
+0

私はこれがより好きですが、まだ空のバッファもたくさん生成しています。 – Kristoffer

1

でなければならないと考えて/任意の高さの単一のネオビム端末ウィンドウを表示する。

端末が挿入モードの最下部に表示されます。分割動作を変更したい場合はbotright newを編集してください。 :help opening-window

let g:term_buf = 0 
let g:term_win = 0 

function! Term_toggle(height) 
    if win_gotoid(g:term_win) 
     hide 
    else 
     botright new 
     exec "resize " . a:height 
     try 
      exec "buffer " . g:term_buf 
     catch 
      call termopen($SHELL, {"detach": 0}) 
      let g:term_buf = bufnr("") 
     endtry 
     startinsert! 
     let g:term_win = win_getid() 
    endif 
endfunction 


nnoremap <M-t> :call Term_toggle(10)<cr> 
tnoremap <M-t> <C-\><C-n>:call Term_toggle(10)<cr> 
関連する問題