Commit graph

376 commits

Author SHA1 Message Date
Marco Hinz 423eb03de4
Simplify buffer deletion for g:startify_session_delete_buffers 2018-05-05 14:24:07 +02:00
Marco Hinz 2cdbe64a7d
Refactor warnings 2018-05-05 14:14:21 +02:00
Marco Hinz c1a81780d5
Refactor headers and footers
g:startify_custom_header and g:startify_custom_footer behave the same now.

Prior to this change, g:startify_custom_footer only accepted lists and no
strings containing expressions that evaluate to lists.

References #316
2018-04-26 21:26:17 +02:00
Marco Hinz ca03433196
Make g:startify_custom_header handle empty string
eval() throws errors on empty strings.
2018-04-26 13:15:10 +02:00
Marco Hinz 6f621bd99a
Skip creating new buffer if current buffer is empty
This prevents buffer-local commands getting lost that were set before startify
was run. E.g. :Git which is set by fugitive.
2018-04-09 17:02:43 +02:00
Marco Hinz 5a1d811d5f
Allow to run :Startify from a startify buffer 2018-04-09 16:46:53 +02:00
Marco Hinz 669d87dcec
Warn for unsaved changes if 'nohidden' and 'modified' 2018-04-09 16:42:13 +02:00
Marco Hinz 0a81f95abf
Always create new buffer
Nowadays :enew won't create a new buffer if the current buffer is empty. So this
won't create an unused, empty, unnamed buffer.
2018-04-09 16:13:47 +02:00
Marco Hinz 87861176ca
Narrow scope of lists variable 2018-03-27 16:15:28 +02:00
valleydali 54483c88e5 Avoid taking over a modified buffer 2018-03-21 09:48:36 +01:00
Marco Hinz 50d4c51607
Fix type mismatch for heterogenous lists in older Vims
Fixes #293
2018-03-18 00:38:03 +01:00
Marco Hinz 362001d03e
Refactoring 2018-03-16 17:14:40 +01:00
Marco Hinz bdb389ef61
Fix firstline offset under new s:lists format 2018-03-16 16:47:40 +01:00
Marco Hinz 15ee162f99
Compat: convert g:startify_list_order to g:startify_lists format
g:startify_list_order is deprecated in favor of g:startify_lists.

They use different formats, but for compatability, the old g:startify_list_order
format is converted to the newer g:startify_lists format.

References #288
2018-03-16 15:28:51 +01:00
Marco Hinz f16cfcebe8
Add experimental support for g:startify_lists
References #288
2018-03-16 15:03:36 +01:00
Marco Hinz 5df5b7478c
Avoid magic number 2018-03-16 12:16:07 +01:00
Marco Hinz 5425dd3e84
Run :Startify on DirChanged
Otherwise relative entries could become out-of-date.

Fixes #305
2018-03-16 01:06:40 +01:00
Marco Hinz 983919aee2
Make entry format customizable 2018-02-07 16:47:42 +01:00
Marco Hinz 4f1cd14e94
Open all folds
Fixes #300.
2018-01-24 16:29:33 +01:00
Marco Hinz fbcba230e9
Refactoring: g:startify_custom_header 2018-01-14 17:30:26 +01:00
Marco Hinz c905a0c959
Rework the default skiplist 2017-12-06 20:11:16 +01:00
Marco Hinz cbb1b487d0
Add "plugged/.*/doc" to default skiplist
We have "bundle" already, so add "plugged" as well. These two are the most
commonly used directories for plugins.
2017-12-05 14:52:15 +01:00
Marco Hinz 17ef51a2d1
Set 'matchpairs' to empty
Use this to avoid weird highlighting of the `[` and `]` characters, if the
matchparen plugin is enabled.
2017-11-23 22:53:12 +01:00
Marco Hinz e6547e9887
Fix cursor setting code
This makes the local j/k mappings obsolete.

References #294, #156.
2017-11-21 22:18:41 +01:00
Marco Hinz 95d182979e
Use :SS! to force overwriting a potentially existing session
This can be used to avoid the following prompt when using :SSave

  "Session already exists. Overwrite?  [y/n]"

References #295
2017-11-21 20:13:48 +01:00
Marco Hinz 22ccf58613
Add covenience function for warnings 2017-11-02 20:29:48 +01:00
Marco Hinz 0c23b67dbf
Warn if :StartifyDebug is run outside Startify buffer 2017-11-02 20:24:23 +01:00
Marco Hinz ae8cfbb9db
g:startify_use_env: ignore $HOME
References #284.
2017-05-30 00:00:35 +02:00
Marco Hinz 367aec0966
g:startify_use_env: compare against absolute path
References #284.
2017-05-29 23:13:35 +02:00
Marco Hinz c60ebcc313
g:startify_relative_path: :.:~ -> :~:.
References #284.
2017-05-29 21:13:58 +02:00
Marco Hinz 1e251fb749
Fix g:startify_change_to_dir corner cases
References https://github.com/mhinz/vim-startify/issues/283
2017-05-07 20:05:50 +02:00
Samar Dhwoj Acharya 8abaf8ed9f Fix dir listing corner case 2017-05-03 09:45:17 +02:00
Marco Hinz 664ed502ed
Use vim-devicons only when it's enabled
References c193556225 (commitcomment-21866826)
2017-04-22 16:32:36 +02:00
Marco Hinz f80b0cbe62
Make <MiddleMouse> use "* instead of "" by default
Startify remaps <MiddleMouse> and uses v:register to paste from a specific
register.

The problem:

Unless 'clipboard' is set to "unnamed" or "unnamedplus", v:register will default
to "", whereas <MiddleMouse> usually defaults to "*.

Fixes #281.
2017-04-07 01:52:21 +02:00
Marco Hinz 2e89a6ec2b
Expand bookmark paths
Closes #275.
2017-03-13 15:53:25 +01:00
Marco Hinz 967ea449f5
Make <MiddleMouse> take register
References #272.
2017-02-22 21:08:07 +01:00
Marco Hinz 66d4500576
Make <MiddleMouse> paste in new empty buffer
References #272.
2017-02-22 19:48:42 +01:00
Marco Hinz 72c51e773a
New option: g:startify_session_number
Closes #268.
2017-01-20 20:11:32 +01:00
Marco Hinz b08d65a967
Make buffer readonly again
This time we pay more attention to when the buffer will still be written by the
plugin itself.

Note to self: Never commit after midnight.
2017-01-19 14:07:27 +01:00
Marco Hinz 42a317bc9e
Revert "Make buffer readonly"
This reverts commit 5c4ed4a34a.
2017-01-19 13:16:31 +01:00
Marco Hinz 5c4ed4a34a
Make buffer readonly
This is done to avoid accidentally saving the Startify buffer to disk.

For why Startify is not using buftype=nofile in the first place, see `:h
startify-faq-05`.

References #265.
2017-01-19 03:49:14 +01:00
Marco Hinz 579b106724
Make g:startify_session_delete_buffers = 1 the default
References #262.
2017-01-11 16:28:38 +01:00
Marco Hinz af521fa617
Fix s:sort_by_mtime()
Fixes #260.
2017-01-07 14:13:07 +01:00
Marco Hinz 28cfff5ba9
Sessions: filter foox.vim only if foo.vim exists
We used to filter all sessions ending with "x.vim", because of session extra
files. (See 10. in `:h :mks`.)

To avoid false positives, we now only filter a session "foox.vim", if there is
also an accompanying session "foo.vim".

References #259.
2017-01-06 00:36:58 +01:00
Marco Hinz 881246ed5c
Mappings: add s:nowait to j and k 2016-12-20 11:39:27 +01:00
Marco Hinz 3a1ed53393
Remove "wait" arg from s:register 2016-12-20 11:29:17 +01:00
Marco Hinz 685760fb69
Remove g:startify_mapping_nowait
This option got obsoleted by 07b122f.
2016-12-07 13:15:40 +01:00
Marco Hinz 07b122f7b4
Enforce mapping order when using <nowait>
Opposed to normal mappings, the definition order is important when using
<nowait> mappings.

Simple test case:

:enew | nnoremap <buffer><nowait> 1 :echo "foo"<cr>| nnoremap <buffer><nowait> 11 :echo "bar"<cr>

Then hit 1 in normal mode.

:enew | nnoremap <buffer><nowait> 11 :echo "foo"<cr>| nnoremap <buffer><nowait> 1 :echo "bar"<cr>

Then hit 1 in normal mode again.

References #252.
2016-12-06 21:57:49 +01:00
Nate c14a677496
Add g:startify_padding_left
Closes https://github.com/mhinz/vim-startify/pull/250
2016-11-27 02:39:09 +01:00
Marco Hinz df32cef08b
Enable g:startify_mapping_nowait by default
Closes #247.
2016-11-22 10:36:46 +01:00
Marco Hinz 9732427469 Don't silence system()
References #243.
2016-10-31 22:53:10 +01:00
Marco Hinz 150571becb Revert "Ignore "ln" errors"
This reverts commit 7b8f614b09.
2016-10-31 22:47:42 +01:00
Marco Hinz 7b8f614b09 Ignore "ln" errors
References #243.
2016-10-31 13:02:12 +01:00
Marco Hinz 7a2c7da36d Unsafe: filter directories
References #242.
2016-10-28 16:07:30 +02:00
Marco Hinz 9923657918
Two Startify buffers shouldn't share certain data (part 3) 2016-10-15 14:36:25 +02:00
Marco Hinz bd1ea1b347
Two Startify buffers shouldn't share certain data (part 2)
References #240.
2016-10-14 20:21:07 +02:00
Marco Hinz 3a0cc7df67
Two Startify buffers shouldn't share certain data
References #240.
2016-10-14 20:15:47 +02:00
Marco Hinz ab3513c8ea
Two different buffers mustn't have the same filename
Closes #240.
2016-10-14 19:37:51 +02:00
Marco Hinz 74471c5274 Windows: handle spaces properly
References #239.
2016-10-13 14:27:30 +02:00
Steve Dignam 98034672bb Disable colorcolumn in startify buffer
In a previous [issue][1] someone asked to disable colorcolumn, but it was
fixed with by disabling cursorcolumn in a [pull request][2].

Both should be disabled.

This change disables colorcolumn.

[1]: https://github.com/mhinz/vim-startify/issues/80
[2]: https://github.com/mhinz/vim-startify/pull/83
2016-10-11 17:57:02 +02:00
Marco Hinz cbcf3f2518 Only emit User event if there is a receiving end 2016-07-21 17:03:55 +02:00
Marco Hinz 84a296eb5c Session autoload: handle spaces in session path 2016-07-01 02:16:29 +02:00
Marco Hinz f41732a392 Bookmarks: consider delete_buffers option on session autoload
References https://github.com/mhinz/vim-startify/issues/231
2016-07-01 01:49:18 +02:00
Marco Hinz 41801d60cb Bookmarks: wipe directory buffers on session autoload
References https://github.com/mhinz/vim-startify/issues/231
2016-07-01 01:41:05 +02:00
Marco Hinz 1d73c869e9 Don't use fnameescape() twice on paths
References https://github.com/mhinz/vim-startify/issues/230
2016-06-27 15:56:58 +02:00
Marco Hinz dbaa025424 Too much escaping
References #227.
2016-06-08 11:53:27 +02:00
Marco Hinz 26cff271ef Silence options 2016-06-02 13:22:11 +02:00
Trevor L. McDonell 71a517c93c Disable spell checking 2016-06-02 13:12:53 +02:00
Marco Hinz 3bd270a3f2 New option: g:startify_session_before_save
Execute commands before saving the session. Useful for cleaning up.

Closes #222.
2016-06-01 17:43:19 +02:00
Marco Hinz cee51f4a9a New option: g:startify_session_sort
Sort your sessions by mtime by putting this in your vimrc:

    let g:startify_session_sort = 1

Closes #221.
2016-06-01 17:23:57 +02:00
Marco Hinz 54ee02272c Make n/N work properly
For caveats see:

https://github.com/mhinz/vim-startify/issues/218#issuecomment-222962221

References #218.
2016-06-01 13:12:44 +02:00
Marco Hinz 3c3a835d8d Check user options properly
References #220.
2016-06-01 02:13:55 +02:00
Marco Hinz 977ee633e5 Don't make Startify a scratch buffer
It's a real file buffer now, since that is what most plugins assume
anyway.

We also give it a proper name, "Startify", because after `buftype=` it
would be listed as "[No Name]" instead of "[Scratch]", which is arguably
confusing.

Closes #214.
2016-06-01 01:02:40 +02:00
Marco Hinz e5ce53fbef Make g:startify_commands more flexible 2016-05-31 23:38:29 +02:00
Ernst Widerberg 9a833c5bc6 Add ex command list 2016-05-31 23:38:29 +02:00
Xandor Schiefer b16c8353e5 devicons: remove parentheses around symbols 2016-05-31 17:30:58 +02:00
Marco Hinz 8512fa3b1c Always put cursor on first entry
References #212.
2016-03-24 12:42:07 +01:00
Marco Hinz 5a45174657 Transformations: fall back to normal usage if no match 2016-03-21 11:25:30 +01:00
Marco Hinz c381ab79fc Transformations: allow patterns
The type of g:startify_transformations has to be a list of lists now.
The inner lists contain 2 elements, a pattern and either a string or a
funcref.

Example:

function! s:foo(filename)
  return fnamemodify(a:filename, ':t')
endfunction

let g:startify_transformations = [
      \ ['.*vimrc$', 'vimrc'],
      \ ['.*', function('s:foo')],
      \ ]

References #209.
2016-03-20 15:37:22 +01:00
Marco Hinz 570ef9e11f Don't add blank line for empty custom header
Closes #210.
2016-03-20 14:21:56 +01:00
Marco Hinz ffb80ec99e Add g:startify_transformations 2016-03-18 16:59:24 +01:00
Marco Hinz 41b53389af Make q work with 'buflisted' set
References #208.
2016-03-17 12:47:25 +01:00
Marco Hinz f90594bb9a Eval g:startify_custom_header if it's a string 2016-03-17 11:44:33 +01:00
Marco Hinz 994a85ac22 Refactoring: fortune.vim 2016-03-17 11:05:36 +01:00
Marco Hinz fa733c3e20 Show random quotes if g:startify_custom_header isn't set 2016-03-14 15:29:20 +01:00
Marco Hinz 193e0802ec Redraw screen after env hack 2016-03-07 15:58:03 +01:00
Sergey Vlasov f610be1431 Avoid 'Press Enter' message on session write 2016-03-07 16:28:52 +02:00
Marco Hinz 23e043cc82 Env: prevent 'press enter' prompt in small windows (only Vim) 2016-02-15 16:14:36 +01:00
Marco Hinz d14150d22b Env: only run for the "files" listing 2016-02-13 21:23:24 +01:00
Marco Hinz de965726eb Env: prefer shortest variable name
If several environment variables point to the same directory, prefer the one
with the shortest name.

References #197.
2016-02-12 18:06:35 +01:00
Marco Hinz c621e375a1 Make g:startify_use_env work on Windows 2016-02-12 17:43:10 +01:00
Marco Hinz 9e4a159637 New option: g:startify_use_env
References #197.
2016-02-12 14:26:33 +01:00
Marco Hinz 57252a4a56 Check if to be deleted session even exists 2016-02-02 15:01:00 +01:00
Marco Hinz 7994cae378 Add :SDelete! 2016-02-02 14:54:58 +01:00
Marco Hinz ec24c42b5c Never list __LAST__ as valid session 2016-02-02 14:44:07 +01:00
Marco Hinz 1c1c3abb80 Tests: add session.vader 2016-02-02 13:35:34 +01:00
Marco Hinz 8545f6f553 Put last used session marker in session directory 2016-01-12 15:11:03 +01:00
Marco Hinz e75c49a339 Shorter section headers
Use shorter section headers and add the current working directory to the 'dir'
list.

References #193.
2015-12-27 21:10:07 +01:00
Marco Hinz 295fe7a09a Avoid '&&' in system()
I assumed that every shell would support '&&'. Apparently this is not the case
for Fish: it uses 'and'...

Anyway, the simple solution is to avoid cd'ing in the proper directory first
and just using absolute paths for ln instead.

References #165.
2015-12-11 15:51:08 +01:00
Marco Hinz 720299cbf5 Make potential warning less obtrusive 2015-12-11 12:29:44 +01:00