SublimeText2 プラグイン:ファイルを閉じたら左隣りのファイルをアクティブにする
※2013-07-28 不具合修正しました。詳細は下の方にて。
デフォルトだとファイルを閉じたあとに、
どのファイルにフォーカスが移っているのかがすごくわかりづらいため、
「ファイルを閉じたら左隣りのファイルをアクティブにする」
プラグインを作成しました。
以下が、そのコードです。
import sublime, sublime_plugin class CloseViewToFocusLeftViewCommand(sublime_plugin.WindowCommand): def run(self): myWindow = sublime.active_window() myView = myWindow.active_view() myGroup, myIndex = myWindow.get_view_index( myView ) sameGroupViews = [] for view in myWindow.views(): group, index = myWindow.get_view_index( view ) if group == myGroup: while len(sameGroupViews) <= index: sameGroupViews.append(-1) sameGroupViews[index] = view nextIndex = myIndex - 1 if nextIndex < 0: nextIndex = 0 myWindow.run_command( "close_file" ) myWindow.focus_view( sameGroupViews[nextIndex] )
たぶん、コピペしてもらえれば、使えると思います。
そのうち、PackageControl なんかに登録するのもやってみたいなー。
※2013-07-28 追記
閉じようとしているファイルが未保存の場合に、ダイアログの確認でキャンセルをすると、閉じてないのに左のタブにフォーカスが移ってしまう不具合修正。
修正部分は以下の通り。
myWindow.run_command( "close_file" )
myWindow.focus_view( sameGroupViews[nextIndex] )
↓↓↓
myWindow.run_command( "close_file" ) confirm = myWindow.get_view_index( myView ) if confirm[0] < 0: myWindow.focus_view( sameGroupViews[nextIndex] )