現在のvimセッション状態を保存し、後で復元します(バッファ、パーティションなど)。

現在のvimセッション状態を保存し、後で復元します(バッファ、パーティションなど)。

古いVIMユーザーとして、私は最初からこの機能に魅了されました。特に、単純な正規表現の代替機能で作業速度が非常に速くなったため、VIMにはこれらの機能があるとは全く予想できませんでした。しかし、一体何と言うのか、たぶん私が何か新しいことを見落としているのかもしれません。

vim画面サイズに合わせてn列分割モードで多数のファイル(プロジェクト内のすべてのcpp / hソースファイルなど)を再度開く(下のbashコマンド/エイリアスを参照)、再度開く方法をご存知ですか?開く/選択表示されたバッファから最初のn個のファイルにリセットされるのではなく、固定/アクティブバッファが返されましたか?これは、開かれたファイルの状態を保存することによって、IDEに多少似ています。

# check the window size after each command and, if necessary,                   
# update the values of LINES and COLUMNS.                                       
shopt -s checkwinsize                                                           
alias vimcpp='find . \( -name '\''*.cpp'\'' -o -name '\''*.cc'\'' -o -name '\''*.cxx'\'' -o -name '\''*.c'\'' -o -name '\''*.hpp'\'' -o -name '\''*.hh'\'' -o -name '\''*.hxx'\'' -o -name '\''*.h'\'' \) -exec vim -O$(( ( ( $COLUMNS - 1 ) / 80 > 0 ) ? ( ( $COLUMNS - 1 ) / 80 ) : 1 )) \{} \+'

ベストアンサー1

これを達成するには、vimセッションを使用できます。速く走る:

:mksession mysession.vim

そして、「mysession.vim」というファイルが現在のディレクトリに作成されます。次にvimを開くと、次のことができます。

 :source mysession.vim

(または何でも名前を付けると)、セッションファイルを作成したときにあった場所に戻ることができます(すべてのパーティションがそこにあります)。

~から助ける:

This is introduced in sections 21.4 and 21.5 of the user manual.

:mks[ession][!] [file]  Write a Vim script that restores the current editing
            session.
            When [!] is included an existing file is overwritten.
            When [file] is omitted "Session.vim" is used.


The resulting file, when executed with a ":source" command:

1. Restores global mappings and options, if 'sessionoptions' contains
   "options".  Script-local mappings will not be written.
2. Restores global variables that start with an uppercase letter and contain
   at least one lowercase letter, if 'sessionoptions' contains "globals".
3. Closes all windows in the current tab page, except the current one; closes
   all tab pages except the current one (this results in currently loaded
   buffers to be unloaded, some may become hidden if 'hidden' is set or
   otherwise specified); wipes out the current buffer, if it is empty
   and unnamed.
4. Restores the current directory if 'sessionoptions' contains "curdir", or
   sets the current directory to where the Session file is if 'sessionoptions'
   contains "sesdir".
5. Restores GUI Vim window position, if 'sessionoptions' contains "winpos".
6. Restores screen size, if 'sessionoptions' contains "resize".
7. Reloads the buffer list, with the last cursor positions.  If
   'sessionoptions' contains "buffers" then all buffers are restored,
   including hidden and unloaded buffers.  Otherwise only buffers in windows
   are restored.
8. Restores all windows with the same layout.  If 'sessionoptions' contains
   "help", help windows are restored.  If 'sessionoptions' contains "blank",
   windows editing a buffer without a name will be restored.
   If 'sessionoptions' contains "winsize" and no (help/blank) windows were
   left out, the window sizes are restored (relative to the screen size).
   Otherwise, the windows are just given sensible sizes.
9. Restores the Views for all the windows, as with |:mkview|.  But
   'sessionoptions' is used instead of 'viewoptions'.
10. If a file exists with the same name as the Session file, but ending in
   "x.vim" (for eXtra), executes that as well.  You can use *x.vim files to
   specify additional settings and actions associated with a given Session,
   such as creating menu items in the GUI version.

まだ一つあります。Tpopeのプラグインセッションの動作を調整します。

おすすめ記事