Code Monkey home page Code Monkey logo

vim-startify's Introduction

Build Status

vim-startify


This plugin provides a start screen for Vim and Neovim.

It provides dynamically created headers or footers and uses configurable lists to show recently used or bookmarked files and persistent sessions. All of this can be accessed in a simple to use menu that even allows to open multiple entries at once.

Startify doesn't get in your way and works out-of-the-box, but provides many options for fine-grained customization.



Installation and Documentation

Use your favorite plugin manager.

Using vim-plug:

Plug 'mhinz/vim-startify'

It works without any configuration, but you might want to look into the documentation for further customization:

:h startify
:h startify-faq

If you want to share anything with your fellow plugin users, make sure to visit the wiki.

Screenshot

Startify in action!

That's it. A fancy start screen for Vim.

(Almost all visible features enabled. Colorscheme: vim-janah.)

Author and Feedback

If you like my plugins, please star them on Github. It's a great way of getting feedback. Same goes for issues reports or feature requests.

vim-startify's People

Contributors

alexkunin avatar bid0uille avatar blueyed avatar coachshea avatar devlinzed avatar ernstwi avatar herrvonvoid avatar kkoenig avatar konfekt avatar mhinz avatar mwcz avatar ndavd avatar nonlogicaldev avatar noscript avatar osse avatar rdnetto avatar sbdchd avatar somini avatar suy avatar techgaun avatar tmcdonell avatar tssm avatar tsuyoshicho avatar unclebill avatar valleydali avatar vladimirpal avatar weirongxu avatar zeorin avatar zeroknight avatar zhaocai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vim-startify's Issues

Error on start

When vim-startify opens, I get the (non-fatal) error shown at the bottom. The error is caused by interaction with the minibufexpl package.

autocommand call DEBUG('-=> BufDelete AutoCmd', 10) |call AutoUpdate(expand(''),bufnr("%"))

Error detected while processing function 18_AutoUpdate..18_CycleBuffer:
line 13:
E85: There is no listed buffer
autocommand call DEBUG('-=> BufDelete ModTrackingListClean AutoCmd for buffer '.bufnr("%"), 10) |call CleanModTrackingList(bufnr("%"))

Key <Insert> does not work as expected

Hi. Very nice plugin!

Just found that key <Insert> does not start editing from scratch like key i does. Looks like this is due to mapping for this key is missing in autoload/startify.vim. Addition of

  nnoremap <buffer><silent> <insert>      :enew <bar> startinsert<cr>

after similar mapping for i works fine for me.

Cheers, Alexey.

Feature: Rounded brackets instead of Square brackets

@mhinz

Thanks for the Section Headers ! ๐Ÿ˜€

I wanted to know if this feature could be implemented.
Basically, changing the brackets, around the numbers, from [] to ().

Here are the screenshots:

Before

before

After:

after

I had also forked over the repo, and made changes,
Here is the URL, but they are not perfect (The numbers lose the syntax highlighting).
So, I haven't opened up a pull request.

(Also, I'm bad at Vimscript ! ๐Ÿ˜…)

I'd be happy if you could make these changes !

Thanks !

FR: Mapping index

Hi there,

Recent files, bookmarks and sessions are indexed in numeric order with mappings from 0 onwards.

Here's an alternative arrangement:

a s d f g h j k l ; q w e r t y u i o p 1 2 3 4 5 6 7 8 9 0

The advantage of this arrangement is that it's closer to the QWERTY home row, and thereby faster to use. You also get 30 mappings that can be used with a single key stroke (more if you use the row below the home row), whereas in the traditional approach, you need two keystrokes after the tenth item (11-99).

This arrangement is used by another plugin called unite.vim, and I've found it pretty handy in practice. Would be great if it were available as an alternative to the numeric index.

Thanks.

make "empty buffer" key configurable

I use command-t and muscle memory is set to open vim, hit the leader key, and go to the file I'm looking for. I think startify is awesome, but it would be great if I could set "leader" as my empty buffer key so I don't have to hit "e" each time when I'm planning on using command-t which is 90% of the time.

Session Persistence does not seem to work

[ Vim 7.4 - Debian Testing ]

I set let g:startify_session_persistence = 1 in my vimrc, called :SSave to save a session of a group of windows - I :qa and then reopened vim and selected the session - this worked.

But I then added another split and called :qa - upon reopening vim and the session the new split wasn't there - the session was in the state it was when I last manually called :SSave

(I also tried with a value of 0 with the same result)

duplicate and error problem

Hi,I got some problem while using vim-startify with gVim.
My config is this:
let g:startify_session_dir = '~/.vim/.cache/sessions'
let g:startify_show_sessions = 1

The whole vimrc is here: https://gist.github.com/bebound/5845032

  1. Get error everytime when try open file list in vim-startify:http://i.imgur.com/UuOFDb8.png
    after press enter, I can open the file
    2 Auto deplicate files you have opend and add "//" with path:
    http://i.imgur.com/MuwQOhN.png
    I just open .reg for 4 times.

Unable to highlight startify page items

I'm trying to apply highlighting to the startify page with:

syntax on
colorscheme Sunburst
hi StartifyBracket ctermfg=100
hi StartifyNumber  ctermfg=215
hi StartifyPath    ctermfg=245
hi StartifySlash   ctermfg=240

But it isn't being applied - the text in the startify page remains white. Do you have any suggestions about where I where I might start looking for the cause?

Splash screen doesn't show

When starting Vim with no filenames the Startify splash screen doesn't appear. It works inside the buffer via ':Startify'

I've added the recommended mappings via my vimrc.

This on Ubuntu 12.04 & Vim 7.3.429 & I installed via Vundle...

Scratch Window created with MiniBufExplorer

Hi,
I really like this plugin, but it's not playing well with MiniBufExpl (techlivezheng/vim-plugin-minibufexpl).

  1. Start vim
  2. Open any recent file from Startify Menu
  3. Open startify again (:Startify)

http://d.pr/i/g9nx

The last commands creates two more windows. The top window is the Startify window, and then an empty buffer window in the middle, and finally the first opened file window.

If I disable MiniBufExpl (or set MiniBufExpl to open on start), then Startify behaves as expected and doesn't create any new windows

ignore git artfifacts by default

Hey,

I think it'd be wise to ignore .git directories by default. At minimum the COMMIT_EDITMSG files. For example, this is what I see:

   [2]  ~/code/github/dotfiles/vimrc
   [3]  ~/code/github/dotfiles/.git/COMMIT_EDITMSG
   [4]  ~/code/datadog/dd-agent/test.py
   [5]  ~/code/datadog/dd-agent/.git/COMMIT_EDITMSG
   [6]  ~/code/datadog/dd-agent/checks.d/gunicorn.py

I know this can be configured, I just think it's a sane default to ignore the commit message files. And thanks for the helpful plugin.

running vi instead of vim doesnt start startify (even if they are both the same application)

running vi instead of vim does not show startify menu.

below is the resolution of vi -> vim via /etc/alternatives. They both end up being the same executable /usr/local/bin/vim.

Oddly vim-startify menu only shows when running vim. not vi.

% which vi
/usr/local/bin/vi

% which vim
/usr/local/bin/vim

% ls -la /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 Jul 13 15:25 /etc/alternatives/vi -> /usr/local/bin/vim*

% ls -la /etc/alternatives/vim
lrwxrwxrwx 1 root root 18 Jul 15 15:06 /etc/alternatives/vim -> /usr/local/bin/vim*

% ls -la /usr/local/bin/vi
lrwxrwxrwx 1 root root 20 Nov 7 2012 /usr/local/bin/vi -> /etc/alternatives/vi*

% ls -la /usr/local/bin/vim
-rwxr-xr-x 1 root root 2259416 Jul 12 13:01 /usr/local/bin/vim*

vimwikify startify

(this issue cross-posted at vimwiki/vimwiki#18)

Startify is great! vimwiki also great!

but like chocolate and peanutbutter.. what if..

What if the header or footer of the startify page could be a startify-header.wiki or startify-footer.wiki?
If you could immediately edit a free-form text launch-page, with links, tables, what have you, wouldn't that be wicked?

Error message when trying to open a file with spaces in its path

When trying to open a file which has spaces in its path, I get an error "Only one file name allowed".

This patch fixed the error for me:

diff --git a/autoload/startify.vim b/autoload/startify.vim
index 698fe67..ac6c71c 100644
--- a/autoload/startify.vim
+++ b/autoload/startify.vim
@@ -17,7 +17,7 @@ function! startify#get_session_names_as_string(lead, ...) abort
 endfunction

 function! startify#escape(path) abort
-  return !exists('+shellslash') || &shellslash ? a:path : escape(a:path, '\')
+  return !exists('+shellslash') || &shellslash ? escape(a:path, ' ') : escape(a:path, '\ ')
 endfunction

 function! startify#get_sep() abort

git commands don't run inside startify

i use fugitive and gitv a lot, and frequently i'll start up vim and then do a :Gstatus or :Gitv to look up on git related stuff. however, the commit 53019cc broke this workflow; specifically, the enew call.

i deleted that line and don't notice anything funky...and the commands started working again.

Custom text before filenames

I would like to put "Vim" text as ascii-art before all that startify adds. Is it somehow possible?

 __      ___             ______ ____  
 \ \    / (_)           |____  |___ \ 
  \ \  / / _ _ __ ___       / /  __) |
   \ \/ / | | '_ ` _ \     / /  |__ < 
    \  /  | | | | | | |   / /   ___) |
     \/   |_|_| |_| |_|  /_(_) |____/ 


Auto close start screen when CtrlP opens a new file

There are only two use cases how I use my Vim:

  1. I use bookmarks from Startify,
  2. I ignore start screen and press <C-p>;

When I open a new file in current tab using CtrlP, it opens as a new split. Then I manually need to close it.

Any idea how can I fix my problem?

Adding set shortmess=a causes undesired behavior

Jumping to a file, e.g. "0" from the startup screen, when I have "set shortmess=a" in my .vimrc, causes a status line print:

:edit ~/dotfiles/.vimrc | call 41_check_user_options()

which then waits for me to hit enter. I've even verified that this still occurs when that is the only option set in my .vimrc.

No such group or event: <nomodeline> startify User

When starting Vim is showing the follow error message:

Error detected while processing function startify#insane_in_the_membrane:
line 76
E216: No such group or event: <nomodeline> startify User

The following code is causing the error (vim-startify/autoload/startify.vim):

doautocmd <nomodeline> startify User

Add smart chdir for files in projects

It would be nice if startify could chdir to the repository root directory if it can find one rather than chdiring to the directory the file is in.

I don't know how hard it would be, but I guess given you also work on signify it wouldn't be too hard.

Section Headers

It would be really great to have headers for sections, eg.

[e]

Recent Files

[0] ~/repos/puppet/.gitignore
[1] ~/repos/puppet/modules/user/manifests/init.pp
[2] ~/.vimrc
[3] ~/repos/puppet/manifests/nodes/dev.pp

Current Directory

[4] puppet.conf
[5] .gitignore

[q]

Add a way to filter recent files.

It would be nice if there was a way to filter recent files, I use fugitive so most of the recent files are COMMIT_EDITMSG which is pretty useless.

Feature: Recent files from current directory, recursively

It would be cool if the recent files in current dir and subdirs could be displayed. Such a list could be generated by a command similar to this one:

find . -type f -not -path "./.git/*" -printf '%T@ %p\n' | sort -n | cut -f2- -d" "

Does nor work in gvim

Great plugin!

Works like a charme in command line vim, but not in gvim? any ideas why? Does it conflict with nerdtree opening by default?

Customer ASCII Header clipped

I added a customer header, but Startify scrolls down and clips the header. I thought that maybe my scrolloff=3 was causing issues, but when I removed scrolloff, the header couldn't be seen at all!

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 29 2013 18:22:21)
Included patches: 1-918

This is how vim session starts:
vim-startify-custom-header

If I scroll up (Ctrl-y), the header is there:
vim-startify-ctrl-y

Loading vim-startify clears unnamed register

Not sure when this started happening, but when I open vim startify, with no other plugins installed, my unnamed register (and system clipboard) are emptied.

I haven't done a bisect to find the issue, but I do know that it doesn't happen when I checkout a857d83.

Allow a custom footer

The custom header is lovely, but what if i want an ASCII art unicorn below the file list and bookmarks? It would be cool to have the option of setting a custom footer in addition to the header.

pastemode && ascii art

I'm trying to do fortune | cowsay as footer.
let g:startify_custom_footer = system("fortune | cowsay")

However, that just prints it in one line. How could I get it to work with set paste?

Feature Request: Folder Bookmarks

I have a series of folders that I often work on, it would be nice to be able to either display a series of predefined folders, or perhaps keep a log of various folder I have been in, and display those as usable goto's

stray highlighting in empty buffer

I get this when starting an empty buffer:
empty-buffer
No idea what causes it, but it shows up even when I use a clean configuration (nothing except this plugin, nocompatible, and enabling filetype syntax stuff).

Opening a file with CtrlP opens in a split window

I was wondering if there was a way to get startify to close if I use CtrlP to find a file. At the moment it opens in a vertical split which it would not do if I had an empty document up. It should really replace the contents of the window.

I'm not sure if this is related to CtrlP instead of startify though.

SSave overwrite

Could u please make a setting so that its possible to set overwrite always (so we don't have to type y(es) every time :) )

Thanks

Your plugin kills children!

More people install this plugin, less will see the default message to help children in Uganda. Thus, your plugin kills children.

:{-

Add ability to open files in tabs

Startify allows for opening files in buffers, split, and vertical splits. Any possibility to add Tabs as well, using the 't' key?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.