<commit_before>*startify.txt*  Showing recently used stuff like a boss.
*startify*
                __                    __           ___
               /\ \__                /\ \__  __  /'___\
           ____\ \ ,_\    __     _ __\ \ ,_\/\_\/\ \__/  __  __
          /',__\\ \ \/  /'__`\  /\`'__\ \ \/\/\ \ \ ,__\/\ \/\ \
         /\__, `\\ \ \_/\ \L\.\_\ \ \/ \ \ \_\ \ \ \ \_/\ \ \_\ \
         \/\____/ \ \__\ \__/.\_\\ \_\  \ \__\\ \_\ \_\  \/`____ \
          \/___/   \/__/\/__/\/_/ \/_/   \/__/ \/_/\/_/   `/___/> \
                                                             /\___/
                                                             \/__/
  by <NAME>~

  Twitter: https://twitter.com/_mhinz_
  Github:  http://github.com/mhinz
  IRC:     mhi^ (Freenode)
>
  If you use any of my plugins, please star them on github. It's a great way
  of getting feedback and gives me the kick to put more time into their
  development.

  If you encounter any bugs or have feature requests, just open an issue
  report on Github.

  Thank you for flying mhi^ airlines. Get the Vim on!
<
==============================================================================
CONTENTS                                                     *startify-contents*

    INTRO .......................................... |startify-intro|
    USAGE .......................................... |startify-usage|
    OPTIONS ........................................ |startify-options|
    COMMANDS ....................................... |startify-commands|
    COLORS ......................................... |startify-colors|
    FAQ ............................................ |startify-faq|

==============================================================================
INTRO                                                           *startify-intro*

Startify is a plugin that shows recently used files, bookmarks and
sessions that were saved to a certain directory.

==============================================================================
USAGE                                                           *startify-usage*

Startify basically provides two things:

1) If you start Vim without giving any filenames to it (or pipe stuff to it so
   it reads from STDIN), startify will show a small but pretty start screen
   that shows recently used files (using viminfo) and sessions by default.

   Additionally, you can define bookmarks, thus entries for files that always
   should be available on the start screen.

   You can either navigate to a certain menu entry and hit enter or you just
   key in whatever is written between the square brackets on that line. You
   can even double-click anywhere on the line now.

   In addition, 'e' creates an empty buffer, 'i' creates an empty buffer and
   jumps into insert mode, 'q' quits.

   Moreover, you can open several files at one go. Navigate to an entry and
   hit either 'b' (open in same window), 's' (open in split), 'v' (open in
   vertical split) or 't' (open in tab). You can do that for multiple entries.
   You can also mix them. The order of the selections will be remembered.
   Afterwards execute these actions via <cr>.

   When the selection is finished, Startify will close automatically. You can
   reopen the screen via :Startify.

   And you can define your own custom ascii art header now!

2) It eases handling of loading and saving sessions by only working with a
   certain directory. These commands are used for convenience:

      :SLoad    load a session
      :SSave    save a session
      :SDelete  delete a session

==============================================================================
OPTIONS                                                       *startify-options*

Put these variables into your vimrc. The shown assignments are also the
default values.

    |g:startify_session_dir|
    |g:startify_list_order|
    |g:startify_bookmarks|
    |g:startify_files_number|
    |g:startify_session_detection|
    |g:startify_session_autoload|
    |g:startify_session_persistence|
    |g:startify_skiplist|
    |g:startify_skiplist_server|
    |g:startify_change_to_dir|
    |g:startify_custom_indices|
    |g:startify_custom_header|
    |g:startify_custom_footer|
    |g:startify_restore_position|
    |g:startify_empty_buffer_key|
    |g:startify_enable_special|
    |g:startify_session_savevars|
    |g:startify_session_savecmds|
    |g:startify_disable_at_vimenter|

------------------------------------------------------------------------------
                                                        *g:startify_session_dir*
>
    let g:startify_session_dir = '~/.vim/session'
<
The directory to save/load sessions to/from.

The default for Windows systems is '$HOME\vimfiles\session'.

------------------------------------------------------------------------------
                                                         *g:startify_list_order*
>
    let g:startify_list_order = ['files', 'dir', 'bookmarks', 'sessions']
<
At the moment startify supports these lists:~

1) "files" - Most recently used files.

   This lists the most recently used files using viminfo. The number of files
   is limited by g:startify_files_number.

2) "dir" - Most recently changed files in the current directory.

   This lists the files from the current directory sorted by modification
   time. The number of files is limited by g:startify_files_number.

3) "bookmarks" - Bookmarks.

   This lists bookmarks, thus hardcoded files or directories that will always
   be shown. Have a look at g:startify_bookmarks.

4) "sessions" - Sessions.

   This lists all the sessions saved in the directory
   g:startify_session_dir.

Section headers:~

Additionally you can add lists of strings to that list. These will be shown
above the following item in |g:startify_list_order|.

NOTE: Section headers are context-senstive. This means that if the following
item is a startify list ("dir", "bookmarks", ...) and empty (no files in the
current directory, no bookmarks defined, ...), the section header won't be
shown as well.

Section headers example:~
>
    let g:startify_list_order = [
            \ ['   My last recently', '   opened files'],
            \ 'files',
            \ ['   My last recently modified files in the current directory:'],
            \ 'dir',
            \ ['   These are my sessions:'],
            \ 'sessions',
            \ ['   These are my bookmarks:'],
            \ 'bookmarks',
            \ ]
<
Feel free to add some cool ASCII action!

------------------------------------------------------------------------------
                                                          *g:startify_bookmarks*
>
    let g:startify_bookmarks = []
<
A list of files to bookmark. Those files will always be shown at the bottom of
the start screen.

Example:
>
    let g:startify_bookmarks = [ '~/.vimrc' ]
<
------------------------------------------------------------------------------
                                                       *g:startify_files_number*
>
    let g:startify_files_number = 10
<
The number of files to list.

------------------------------------------------------------------------------
                                                  *g:startify_session_detection*
>
    let g:startify_session_detection = 1
<
When the file Session.vim is found in the current directory, it will be shown
at the top of all lists as entry [0].

------------------------------------------------------------------------------
                                                   *g:startify_session_autoload*
>
    let g:startify_session_autoload = 0
<
If you bookmark a directory that contains a Session.vim and this option is
enabled, that session will be loaded automatically when you open the
directory.

Great way to create a portable project folder.

------------------------------------------------------------------------------
                                                *g:startify_session_persistence*
>
    let g:startify_session_persistence = 0
<
Automatically update sessions before exiting Vim.

------------------------------------------------------------------------------
                                                      *g:startify_change_to_dir*
>
    let g:startify_change_to_dir = 1
<
When opening a file or bookmark, change to its directory.

------------------------------------------------------------------------------
                                                 *g:startify_change_to_vcs_root*
>
    let g:startify_change_to_vcs_root = 0
<
When opening a file or bookmark, seek and change to the root directory of the
VCS (if there is one).

At the moment only git, hg, bzr and svn are supported.

------------------------------------------------------------------------------
                                                           *g:startify_skiplist*
>
    let g:startify_skiplist = []
<
A list of Vim regular expressions to filter recently used files and files in
the current directory.

Example:
>
    let g:startify_skiplist = [
           \ '.vimgolf',
           \ '^/tmp'
           \ '/project/.*/documentation'
           \ ]
<
------------------------------------------------------------------------------
                                                    *g:startify_skiplist_server*
>
    let g:startify_skiplist_server = []
<
Do not create the startify buffer, if this is a Vim server instance with a
name contained in this list.

Example:
>
    let g:startify_skiplist_server = [ 'GVIM' ]
<
------------------------------------------------------------------------------
                                                   *g:startify_empty_buffer_key*
>
    let g:startify_empty_buffer_key = 'o'
<
This creates an additional, hidden mapping for the empty buffer.

Default: does not exist

------------------------------------------------------------------------------
                                                     *g:startify_enable_special*
>
    let g:startify_enable_special = 1
<
Show <empty buffer> and <quit>.

------------------------------------------------------------------------------
                                                   *g:startify_session_savevars*
>
    let g:startify_session_savevars = []
<
Include a list of variables in here which you would like Startify to save into
the session file in addition to what Vim normally saves into the session file.
For example, Vim will not normally save all-lowercase global variables, which
are common for plugin settings.  It may be advisable to include
|g:startify_session_savevars| and |g:startify_session_savecmds| into this list
so they are saved every time the session saves.

Example:
>
    let g:startify_session_savevars = [
           \ 'g:startify_session_savevars',
           \ 'g:startify_session_savecmds',
           \ 'g:random_plugin_use_feature'
           \ ]
<
------------------------------------------------------------------------------
                                                   *g:startify_session_savecmds*
>
    let g:startify_session_savecmds = []
<
Include a list of cmdline commands which Vim will run upon loading the
session.  This can be useful to set various things (other than variables,
|g:startify_session_savevars| above) which Vim may not normally save into the
session file, as well as run external commands upon loading a session.

Example:
>
    let g:startify_session_savecmds = [
           \ 'silent !pdfreader ~/latexproject/main.pdf &'
           \ ]
<
------------------------------------------------------------------------------
                                                   *g:startify_restore_position*
>
    let g:startify_restore_position = 0
<
Jump to the last cursor position when opening a file. You don't need this, if
you already have this in your vimrc: |last-position-jump|.

------------------------------------------------------------------------------
                                                     *g:startify_custom_indices*
>
    let g:startify_custom_indices = []
<
Use any list of strings as indices instead of increasing numbers. If there are
more startify entries than actual items in the custom list, the remaining
entries will be filled using the default numbering scheme starting from 0.

Thus you can create your own indexing scheme that fits your keyboard layout.
You don't want to leave the home row, do you?!

Example:
>
    let g:startify_custom_indices = ['f', 'g', 'h']
<
This would result in:

    [f]  /last/recently/used/file1
    [g]  /last/recently/used/file2
    [h]  /last/recently/used/file3
    [0]  /last/recently/used/file4
    [1]  /last/recently/used/file5
    [2]  /last/recently/used/file6
    etc.

NOTE: There is no sanitizing going on, so you should know what you're doing!

Best practices:

- do not use 'e', 'i' or 'q'  (they will be overwritten anyway)
- do not use 'b', 's', 't', 'v'  (used for opening several files at once)
- do not use duplicates  (previous mappings will be overwritten)
- do not uses empty strings  (creates unreachable entries)
- you might want to keep 'j' and 'k'  (for navigation)

------------------------------------------------------------------------------
                                                      *g:startify_custom_header*
>
    let g:startify_custom_header = ''
<
This is a list of single-quoted strings to be shown before everything else.
Every string will be written on its own line.

NOTE: If a string contains ', you have to quote it with another '.

A programmatic example:
>
    let g:startify_custom_header =
      \ map(split(system('fortune | cowsay'), '\n'), '"   ". v:val') + ['','']
<
A hardcoded example:
>
    let g:startify_custom_header = [
                \ '   __      ___            ______ ____   ',
                \ '   \ \    / (_)           |____  |___ \ ',
                \ '    \ \  / / _ _ __ ___       / /  __) |',
                \ '     \ \/ / | | ''_ ` _ \     / /  |__ <',
                \ '      \  /  | | | | | | |   / /   ___) |',
                \ '       \/   |_|_| |_| |_|  /_(_) |____/ ',
                \ '',
                \ '',
                \ ]
<
------------------------------------------------------------------------------
                                                      *g:startify_custom_footer*
>
    let g:startify_custom_footer = ''
<
Same as the custom header, but shown at the bottom of the startify buffer.

------------------------------------------------------------------------------
                                                *g:startify_disable_at_vimenter*
>
    let g:startify_disable_at_vimenter = 0
<
Don't run Startify at Vim startup. You can still call it anytime via
:Startify.

==============================================================================
COMMANDS                                                     *startify-commands*
>
    :SLoad
    :SSave
    :SDelete
<
Commands to load, save or delete a session. These take either 0 or 1 argument.
If you don't specify the session name as an argument, they will just ask for
it.

Providing only a part of the session name works too, if you complete the
argument with either <c-d> or <tab> afterwards.
>
    :Startify
<
Open the startify buffer.

==============================================================================
COLORS                                                         *startify-colors*

You can overwrite the highlight groups used by startify. The plugin defines
these groups:

    StartifyBracket         [,]
    StartifyFile            the actual file
    StartifyFooter          the custom footer
    StartifyHeader          the custom header
    StartifyNumber          the numbers between []
    StartifyPath            the path to a file
    StartifySlash           slashes in paths
    StartifySpecial         <empty buffer>,<quit>

Example: (my terminal emulator supports 256 colors)
>
    hi StartifyBracket ctermfg=240
    hi StartifyFooter  ctermfg=111
    hi StartifyHeader  ctermfg=203
    hi StartifyNumber  ctermfg=215
    hi StartifyPath    ctermfg=245
    hi StartifySlash   ctermfg=240
<
==============================================================================
FAQ                                                               *startify-faq*

------------------------------------------------------------------------------

CtrlP opens a split in Startify!~

Solution 1)
>
    let g:ctrlp_reuse_window = 'startify'
<
Solution 2)
>
    autocmd FileType startify setlocal buftype=
<
------------------------------------------------------------------------------

How do I get both NERDTree and Startify working at startup?~

Put this in your vimrc:
>
    autocmd VimEnter *
                \ if !argc() |
                \   Startify |
                \   NERDTree |
                \   execute "normal \<c-w>w" |
                \ endif
<
------------------------------------------------------------------------------

The session autoload feature is not working!~

Do you have NERDTree installed by any chance? If so, try this:
>
    let NERDTreeHijackNetrw = 0
<
------------------------------------------------------------------------------

I don't want the start screen to use cursorline!~

Startify sets its own filetype "startify". Thus one could set buffer-local
options like this:
>
    autocmd FileType startify setlocal nocursorline
<
------------------------------------------------------------------------------

Last recently used files don't seem to get updated at :Startify!~

Vim loads the list from viminfo only once, at startup.

------------------------------------------------------------------------------

I have broken colors when using sessions!~

Nothing this plugin could do about. Try playing around with 'sessionoptions'.

NOTE: Startify removes 'options' from the session options automatically,
because it's the source of many problems.

Some people swear it works for them with these settings:
>
    set sessionoptions=blank,curdir,folds,help,tabpages,winpos
<
------------------------------------------------------------------------------

How to disable common but unimportant files?~

Use the skiplist. Personally I use:
>
    let g:startify_skiplist = [
           \ 'COMMIT_EDITMSG',
           \ $VIMRUNTIME .'/doc',
           \ 'bundle/.*/doc',
           \ '\.DS_Store'
           \ ]
<
==============================================================================
vim: tw=78
<commit_msg>Doc: add StartifySection highlight group<commit_after>*startify.txt*  Showing recently used stuff like a boss.
*startify*
                __                    __           ___
               /\ \__                /\ \__  __  /'___\
           ____\ \ ,_\    __     _ __\ \ ,_\/\_\/\ \__/  __  __
          /',__\\ \ \/  /'__`\  /\`'__\ \ \/\/\ \ \ ,__\/\ \/\ \
         /\__, `\\ \ \_/\ \L\.\_\ \ \/ \ \ \_\ \ \ \ \_/\ \ \_\ \
         \/\____/ \ \__\ \__/.\_\\ \_\  \ \__\\ \_\ \_\  \/`____ \
          \/___/   \/__/\/__/\/_/ \/_/   \/__/ \/_/\/_/   `/___/> \
                                                             /\___/
                                                             \/__/
  by <NAME>~

  Twitter: https://twitter.com/_mhinz_
  Github:  http://github.com/mhinz
  IRC:     mhi^ (Freenode)
>
  If you use any of my plugins, please star them on github. It's a great way
  of getting feedback and gives me the kick to put more time into their
  development.

  If you encounter any bugs or have feature requests, just open an issue
  report on Github.

  Thank you for flying mhi^ airlines. Get the Vim on!
<
==============================================================================
CONTENTS                                                     *startify-contents*

    INTRO .......................................... |startify-intro|
    USAGE .......................................... |startify-usage|
    OPTIONS ........................................ |startify-options|
    COMMANDS ....................................... |startify-commands|
    COLORS ......................................... |startify-colors|
    FAQ ............................................ |startify-faq|

==============================================================================
INTRO                                                           *startify-intro*

Startify is a plugin that shows recently used files, bookmarks and
sessions that were saved to a certain directory.

==============================================================================
USAGE                                                           *startify-usage*

Startify basically provides two things:

1) If you start Vim without giving any filenames to it (or pipe stuff to it so
   it reads from STDIN), startify will show a small but pretty start screen
   that shows recently used files (using viminfo) and sessions by default.

   Additionally, you can define bookmarks, thus entries for files that always
   should be available on the start screen.

   You can either navigate to a certain menu entry and hit enter or you just
   key in whatever is written between the square brackets on that line. You
   can even double-click anywhere on the line now.

   In addition, 'e' creates an empty buffer, 'i' creates an empty buffer and
   jumps into insert mode, 'q' quits.

   Moreover, you can open several files at one go. Navigate to an entry and
   hit either 'b' (open in same window), 's' (open in split), 'v' (open in
   vertical split) or 't' (open in tab). You can do that for multiple entries.
   You can also mix them. The order of the selections will be remembered.
   Afterwards execute these actions via <cr>.

   When the selection is finished, Startify will close automatically. You can
   reopen the screen via :Startify.

   And you can define your own custom ascii art header now!

2) It eases handling of loading and saving sessions by only working with a
   certain directory. These commands are used for convenience:

      :SLoad    load a session
      :SSave    save a session
      :SDelete  delete a session

==============================================================================
OPTIONS                                                       *startify-options*

Put these variables into your vimrc. The shown assignments are also the
default values.

    |g:startify_session_dir|
    |g:startify_list_order|
    |g:startify_bookmarks|
    |g:startify_files_number|
    |g:startify_session_detection|
    |g:startify_session_autoload|
    |g:startify_session_persistence|
    |g:startify_skiplist|
    |g:startify_skiplist_server|
    |g:startify_change_to_dir|
    |g:startify_custom_indices|
    |g:startify_custom_header|
    |g:startify_custom_footer|
    |g:startify_restore_position|
    |g:startify_empty_buffer_key|
    |g:startify_enable_special|
    |g:startify_session_savevars|
    |g:startify_session_savecmds|
    |g:startify_disable_at_vimenter|

------------------------------------------------------------------------------
                                                        *g:startify_session_dir*
>
    let g:startify_session_dir = '~/.vim/session'
<
The directory to save/load sessions to/from.

The default for Windows systems is '$HOME\vimfiles\session'.

------------------------------------------------------------------------------
                                                         *g:startify_list_order*
>
    let g:startify_list_order = ['files', 'dir', 'bookmarks', 'sessions']
<
At the moment startify supports these lists:~

1) "files" - Most recently used files.

   This lists the most recently used files using viminfo. The number of files
   is limited by g:startify_files_number.

2) "dir" - Most recently changed files in the current directory.

   This lists the files from the current directory sorted by modification
   time. The number of files is limited by g:startify_files_number.

3) "bookmarks" - Bookmarks.

   This lists bookmarks, thus hardcoded files or directories that will always
   be shown. Have a look at g:startify_bookmarks.

4) "sessions" - Sessions.

   This lists all the sessions saved in the directory
   g:startify_session_dir.

Section headers:~

Additionally you can add lists of strings to that list. These will be shown
above the following item in |g:startify_list_order|.

NOTE: Section headers are context-senstive. This means that if the following
item is a startify list ("dir", "bookmarks", ...) and empty (no files in the
current directory, no bookmarks defined, ...), the section header won't be
shown as well.

NOTE: The section header use the StartifySection highlight group.

Section headers example:~
>
    let g:startify_list_order = [
            \ ['   My last recently', '   opened files'],
            \ 'files',
            \ ['   My last recently modified files in the current directory:'],
            \ 'dir',
            \ ['   These are my sessions:'],
            \ 'sessions',
            \ ['   These are my bookmarks:'],
            \ 'bookmarks',
            \ ]
<
Feel free to add some cool ASCII action!

------------------------------------------------------------------------------
                                                          *g:startify_bookmarks*
>
    let g:startify_bookmarks = []
<
A list of files to bookmark. Those files will always be shown at the bottom of
the start screen.

Example:
>
    let g:startify_bookmarks = [ '~/.vimrc' ]
<
------------------------------------------------------------------------------
                                                       *g:startify_files_number*
>
    let g:startify_files_number = 10
<
The number of files to list.

------------------------------------------------------------------------------
                                                  *g:startify_session_detection*
>
    let g:startify_session_detection = 1
<
When the file Session.vim is found in the current directory, it will be shown
at the top of all lists as entry [0].

------------------------------------------------------------------------------
                                                   *g:startify_session_autoload*
>
    let g:startify_session_autoload = 0
<
If you bookmark a directory that contains a Session.vim and this option is
enabled, that session will be loaded automatically when you open the
directory.

Great way to create a portable project folder.

------------------------------------------------------------------------------
                                                *g:startify_session_persistence*
>
    let g:startify_session_persistence = 0
<
Automatically update sessions before exiting Vim.

------------------------------------------------------------------------------
                                                      *g:startify_change_to_dir*
>
    let g:startify_change_to_dir = 1
<
When opening a file or bookmark, change to its directory.

------------------------------------------------------------------------------
                                                 *g:startify_change_to_vcs_root*
>
    let g:startify_change_to_vcs_root = 0
<
When opening a file or bookmark, seek and change to the root directory of the
VCS (if there is one).

At the moment only git, hg, bzr and svn are supported.

------------------------------------------------------------------------------
                                                           *g:startify_skiplist*
>
    let g:startify_skiplist = []
<
A list of Vim regular expressions to filter recently used files and files in
the current directory.

Example:
>
    let g:startify_skiplist = [
           \ '.vimgolf',
           \ '^/tmp'
           \ '/project/.*/documentation'
           \ ]
<
------------------------------------------------------------------------------
                                                    *g:startify_skiplist_server*
>
    let g:startify_skiplist_server = []
<
Do not create the startify buffer, if this is a Vim server instance with a
name contained in this list.

Example:
>
    let g:startify_skiplist_server = [ 'GVIM' ]
<
------------------------------------------------------------------------------
                                                   *g:startify_empty_buffer_key*
>
    let g:startify_empty_buffer_key = 'o'
<
This creates an additional, hidden mapping for the empty buffer.

Default: does not exist

------------------------------------------------------------------------------
                                                     *g:startify_enable_special*
>
    let g:startify_enable_special = 1
<
Show <empty buffer> and <quit>.

------------------------------------------------------------------------------
                                                   *g:startify_session_savevars*
>
    let g:startify_session_savevars = []
<
Include a list of variables in here which you would like Startify to save into
the session file in addition to what Vim normally saves into the session file.
For example, Vim will not normally save all-lowercase global variables, which
are common for plugin settings.  It may be advisable to include
|g:startify_session_savevars| and |g:startify_session_savecmds| into this list
so they are saved every time the session saves.

Example:
>
    let g:startify_session_savevars = [
           \ 'g:startify_session_savevars',
           \ 'g:startify_session_savecmds',
           \ 'g:random_plugin_use_feature'
           \ ]
<
------------------------------------------------------------------------------
                                                   *g:startify_session_savecmds*
>
    let g:startify_session_savecmds = []
<
Include a list of cmdline commands which Vim will run upon loading the
session.  This can be useful to set various things (other than variables,
|g:startify_session_savevars| above) which Vim may not normally save into the
session file, as well as run external commands upon loading a session.

Example:
>
    let g:startify_session_savecmds = [
           \ 'silent !pdfreader ~/latexproject/main.pdf &'
           \ ]
<
------------------------------------------------------------------------------
                                                   *g:startify_restore_position*
>
    let g:startify_restore_position = 0
<
Jump to the last cursor position when opening a file. You don't need this, if
you already have this in your vimrc: |last-position-jump|.

------------------------------------------------------------------------------
                                                     *g:startify_custom_indices*
>
    let g:startify_custom_indices = []
<
Use any list of strings as indices instead of increasing numbers. If there are
more startify entries than actual items in the custom list, the remaining
entries will be filled using the default numbering scheme starting from 0.

Thus you can create your own indexing scheme that fits your keyboard layout.
You don't want to leave the home row, do you?!

Example:
>
    let g:startify_custom_indices = ['f', 'g', 'h']
<
This would result in:

    [f]  /last/recently/used/file1
    [g]  /last/recently/used/file2
    [h]  /last/recently/used/file3
    [0]  /last/recently/used/file4
    [1]  /last/recently/used/file5
    [2]  /last/recently/used/file6
    etc.

NOTE: There is no sanitizing going on, so you should know what you're doing!

Best practices:

- do not use 'e', 'i' or 'q'  (they will be overwritten anyway)
- do not use 'b', 's', 't', 'v'  (used for opening several files at once)
- do not use duplicates  (previous mappings will be overwritten)
- do not uses empty strings  (creates unreachable entries)
- you might want to keep 'j' and 'k'  (for navigation)

------------------------------------------------------------------------------
                                                      *g:startify_custom_header*
>
    let g:startify_custom_header = ''
<
This is a list of single-quoted strings to be shown before everything else.
Every string will be written on its own line.

NOTE: If a string contains ', you have to quote it with another '.

A programmatic example:
>
    let g:startify_custom_header =
      \ map(split(system('fortune | cowsay'), '\n'), '"   ". v:val') + ['','']
<
A hardcoded example:
>
    let g:startify_custom_header = [
                \ '   __      ___            ______ ____   ',
                \ '   \ \    / (_)           |____  |___ \ ',
                \ '    \ \  / / _ _ __ ___       / /  __) |',
                \ '     \ \/ / | | ''_ ` _ \     / /  |__ <',
                \ '      \  /  | | | | | | |   / /   ___) |',
                \ '       \/   |_|_| |_| |_|  /_(_) |____/ ',
                \ '',
                \ '',
                \ ]
<
------------------------------------------------------------------------------
                                                      *g:startify_custom_footer*
>
    let g:startify_custom_footer = ''
<
Same as the custom header, but shown at the bottom of the startify buffer.

------------------------------------------------------------------------------
                                                *g:startify_disable_at_vimenter*
>
    let g:startify_disable_at_vimenter = 0
<
Don't run Startify at Vim startup. You can still call it anytime via
:Startify.

==============================================================================
COMMANDS                                                     *startify-commands*
>
    :SLoad
    :SSave
    :SDelete
<
Commands to load, save or delete a session. These take either 0 or 1 argument.
If you don't specify the session name as an argument, they will just ask for
it.

Providing only a part of the session name works too, if you complete the
argument with either <c-d> or <tab> afterwards.
>
    :Startify
<
Open the startify buffer.

==============================================================================
COLORS                                                         *startify-colors*

You can overwrite the highlight groups used by startify. The plugin defines
these groups:

    StartifyBracket         [,]
    StartifyFile            the actual file
    StartifyFooter          the custom footer
    StartifyHeader          the custom header
    StartifyNumber          the numbers between []
    StartifyPath            the path to a file
    StartifySection         section headers
    StartifySlash           slashes in paths
    StartifySpecial         <empty buffer>,<quit>

Example: (my terminal emulator supports 256 colors)
>
    hi StartifyBracket ctermfg=240
    hi StartifyFooter  ctermfg=111
    hi StartifyHeader  ctermfg=203
    hi StartifyNumber  ctermfg=215
    hi StartifyPath    ctermfg=245
    hi StartifySlash   ctermfg=240
<
==============================================================================
FAQ                                                               *startify-faq*

------------------------------------------------------------------------------

CtrlP opens a split in Startify!~

Solution 1)
>
    let g:ctrlp_reuse_window = 'startify'
<
Solution 2)
>
    autocmd FileType startify setlocal buftype=
<
------------------------------------------------------------------------------

How do I get both NERDTree and Startify working at startup?~

Put this in your vimrc:
>
    autocmd VimEnter *
                \ if !argc() |
                \   Startify |
                \   NERDTree |
                \   execute "normal \<c-w>w" |
                \ endif
<
------------------------------------------------------------------------------

The session autoload feature is not working!~

Do you have NERDTree installed by any chance? If so, try this:
>
    let NERDTreeHijackNetrw = 0
<
------------------------------------------------------------------------------

I don't want the start screen to use cursorline!~

Startify sets its own filetype "startify". Thus one could set buffer-local
options like this:
>
    autocmd FileType startify setlocal nocursorline
<
------------------------------------------------------------------------------

Last recently used files don't seem to get updated at :Startify!~

Vim loads the list from viminfo only once, at startup.

------------------------------------------------------------------------------

I have broken colors when using sessions!~

Nothing this plugin could do about. Try playing around with 'sessionoptions'.

NOTE: Startify removes 'options' from the session options automatically,
because it's the source of many problems.

Some people swear it works for them with these settings:
>
    set sessionoptions=blank,curdir,folds,help,tabpages,winpos
<
------------------------------------------------------------------------------

How to disable common but unimportant files?~

Use the skiplist. Personally I use:
>
    let g:startify_skiplist = [
           \ 'COMMIT_EDITMSG',
           \ $VIMRUNTIME .'/doc',
           \ 'bundle/.*/doc',
           \ '\.DS_Store'
           \ ]
<
==============================================================================
vim: tw=78

{'fraction_non_alphanumeric': 0.22598611634289403, 'fraction_numerical': 0.0029596943442931714, 'mean_word_length': 1.425569405468903, 'pattern_counts': {'":': 0, '<': 103, '<?xml version=': 0, '>': 103, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 128, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4285562', 'n_tokens_mistral': 9220, 'n_tokens_neox': 8836, 'n_words': 3140}