2015-09-26 4 views
5

vimの分割ビューで元のウィンドウに戻る機能を探しています。私はショートカットについて知っているし、関数についても知っている:コールカーソル。しかし、以前の分割ウィンドウに戻って私のvim関数に貼り付けることができる関数がありますか?あなたが使用することができますvimscriptで分割を切り替えるVim関数

+1

また、VimとViの質問については、[専用スタック交換サイト](http://vi.stackexchange.com/)に興味があります。 – statox

+1

@statoxありがとう私はそれについて知らなかった。ブックマークされた!! – SUB

+0

p」があるときになぜ関数が使用されますか? – romainl

答えて

6

:詳細については

" Save the window where you are currently 
let l:currentWindow=winnr() 

" Do stuff where you change of window 

" Go back to the original window 
exe l:currentWindow . "wincmd w" 

ドキュメントが常に優れた読書です:

編集別方法Oそれはwincmd pを使用することです:

wincmdは、通常モードでワットCtrlキーにvimscriptと同等です。ノーマルモードでは

あなたが戻って前のウィンドウに来てP + wはあなたがCtrlキーを使用することができ、ウィンドウの変更。したがって、vimスクリプトでは、次のように単純に使用します。

wincmd p 

前のウィンドウに戻る

残りの関数が2つ以上の分割を使用する場合、最初のウィンドウには戻りませんが、分割が2つしかない場合は、変数を使用してウィンドウの数を保持するよりも軽くなります。

+0

あなたはそれを見つけたか尋ねてもよろしいですか? – SUB

+0

スプリットが既に存在するかどうかをチェックする同様の機能はありますか?新しい分割を作成するのではなく、別のウィンドウに切り替えてそのことを行うことができます... – SUB

+0

@SUB "私が見つけた方法"については、現在のウィンドウを変更せずに 'windo'を使う方法を見つけようとしていましたユーザーの視点から、私は[':h window'](http://vimdoc.sourceforge.net/htmldoc/windows.html#window)を読んでVimscriptで作業しました...あなたの2番目の質問には[ ':h winnr()'](http://vimdoc.sourceforge.net/htmldoc/eval.html#winnr())。 'winnr( '$')'を知っていると、現在のタブの分割数の合計が得られます。 – statox

関連する問題