私は通常、数十のファイルを開いてvimセッションを長生きさせました。一度、vimを再起動したり、新しいプラグインをインストールしたり、新しい設定を適用したりする必要があります。再起動後に以前のファイルをすべて再オープンするにはどうすればよいですか?ありがとう!Vim:再起動後に新しいセッションで以前のファイルをすべて開く
1
A
答えて
3
builtin sessions(おそらくvim-session plugin)を使用できます。
Vimセッションには、編集内容に関するすべての情報が含まれています。
これには、ファイルリスト、ウィンドウレイアウト、グローバル変数、 オプションなどの情報が含まれます。 ( によって「sessionoptions」オプションを制御して覚えているまさに。)
コマンド
:mksession mysession.vim
は、という名前のファイルに現在のセッションを保存します。あなたは、セッションを読み込むことができますVimを起動する次の時間:
vim -S mysession.vim
または内部vimの
:source mysession.vim
あなたはVimLeaveのオートコマンドでセーブセッションを自動化し、VimEnterでセッションをリロードするが、ときに、セッションを復元当接して注意することができますvimは、例えばgitから呼び出されます。ここで
2
は私の設定から抽出/ロード自動保存セッションの基本的な設定です:
let s:session_loaded = 1
augroup autosession
" load last session on start
" Note: without 'nested' filetypes are not restored.
autocmd VimEnter * nested call s:session_vim_enter()
autocmd VimLeavePre * call s:session_vim_leave()
augroup END
function! s:session_vim_enter()
if bufnr('$') == 1 && bufname('%') == '' && !&mod && getline(1, '$') == ['']
execute 'silent source ~/.vim/lastsession.vim'
else
let s:session_loaded = 0
endif
endfunction
function! s:session_vim_leave()
if s:session_loaded == 1
let sessionoptions = &sessionoptions
try
set sessionoptions-=options
set sessionoptions+=tabpages
execute 'mksession! ~/.vim/lastsession.vim'
finally
let &sessionoptions = sessionoptions
endtry
endif
endfunction
あなたは、引数なしでvim
を実行する場合は、迅速な編集を行うにはvim somefile.txt
を行うので、もしそれが唯一、セッションを復元します最後のセッションには触れません。
ボーナス(これはあまりにもファイル内のカーソル位置を復元します):さまざまな精神で
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event
" handler.
autocmd MyAutoCmd BufReadPost *
\ if line("'\"") > 0 |
\ if line("'\"") <= line("$") |
\ exe("norm '\"") |
\ else |
\ exe "norm $" |
\ endif|
\ endif
関連する問題
- 1. Vimの起動時にファイルを開く
- 2. 再起動時にvim 8が以前に編集したファイルを再オープンしないようにする
- 3. iOS:アプリをクラッシュして再起動した後、以前のviewControllerを開くことは可能ですか?
- 4. 新しいウィンドウを開くときに以前のセッション値をロードする
- 5. VIM:現在のバッファで新しいファイルを開くには?
- 6. onCreateメソッドで新しいアクティビティを起動した後の以前のアクティビティ状態?
- 7. 以前の状態の例外後にアクターを再起動します。
- 8. 再起動後に再起動する
- 9. 再起動後にApacheを再起動できない
- 10. アプリケーションの再起動後にクォーツ.Netを再開する
- 11. Bluetoothの再起動後にBLEスキャンを再開する(ANDROID)
- 12. CountDownTimerがアプリケーションを終了して再開した後に再起動する
- 13. サーバ再起動後のドッカーサービスの開始
- 14. テストキッチン:再起動後にシェフが再起動しない
- 15. コマンドT以前に開いたバッファにファイルを開くには
- 16. サービスの再起動後にvarnish param.setが以前の値にリセットされる
- 17. Azure Webアプリケーションコードが再起動(VS2017)まで公開後に更新されない
- 18. CucumberJsでシナリオ失敗後にブラウザを再起動してブラウザを再起動
- 19. 更新または再起動後にフィードがすべて失われる
- 20. 起動時に以前開いていたプロジェクトやページを復元する
- 21. 開いているすべてのファイルにVIMコマンドを使用して
- 22. アプリケーションを再起動した後、以前にフェッチしたCore Dataオブジェクトの再開を確実にするベストプラクティスは何ですか?
- 23. Android SDK NOTIFICATION_SERVICEを再開するには、新しいインスタンスを起動しないでください。
- 24. vimがファイル名を開く前にフックがありますか?
- 25. Pythonで新しいウィンドウを開く(vimのように)
- 26. Vimでファイルを開くとvim diffが開きますか?
- 27. システムの再起動後にドッキング・コンテナを再起動する
- 28. 更新/再起動後のWindowsサーバーの時刻が正しくない
- 29. Vimで開いているすべてのファイルにオプションを適用する
- 30. 新しいSDK14ライブラリプロジェクトは、Eclipse再起動後も常に消えています
、https://github.com/tpope/vim-obsessionもVIM-セッションに非常に実行可能な代替案であります。 –
また、シェルのrcファイルに次のようなものを追加して、コマンドラインから(Borisの答えのように)呼び出すときに引数が渡されないときにセッションを自動ロードすることができます: 'vim() { if [$# gt; vim -O $ @ elif [-f "Session.vim"];その後、 のvim -S Session.vim他 vimの Fiの } 'それはSO上のコメントに来るとき –
えー、私はN00Bよ...改行がコメントで尊敬されていない...もっと屋が知っています。 –