Hacking Vim: startify(05)

摘要

本文介绍一个 Vim 的起始页插件 —— startify,可以显示最近使用的文件列表、书签和存储在指定文件夹中的 session.

简介

startify 是一个 Vim 起始页插件,提供文件列表、书签、session 管理. 不指定任何文件打开 Vim 时,它可以显示如下内容:

  • 自定义 Header: 自定义的 ASCII Header,默认为空.
  • 最近使用的文件: 最近使用过的文件,支持使用过滤器,默认开启.
  • 当前文件夹最近使用的文件: 类似于最近使用的文件,但是限定在当前文件夹内,同样支持过滤器,默认开启.
  • Session: 列出指定目录的 session,默认是 ~/.vim/session.
  • 书签: 可以自定义一些始终需要列出的文件列表,默认为空.
  • 自定义 Footer: 类似于 Header,但是出现在底部,默认为空.

安装

Note: 请确保已经正确安装了 Pathogen 插件,如果没有安装,请参考 Hacking Vim: 插件管理器Pathogen(02)

本篇文章的代码在 https://github.com/NsLib/blog-vim-proj/tree/startify

cd ~/.vim/bundle
git clone git@github.com:mhinz/vim-startify.git --depth=1
rm -rf ~/.vim/bundle/vim-startify/.git

基本用法

基本用法1

如果直接打开 Vim 而不指定文件名,startify 会显示一个小巧但精致的窗口,默认包含最近打开的文件列表(使用 viminfo)和 session. 另外,你也可以定义书签,这样这些文件列表会始终显示在启动页.

你可以在显示的列表中浏览,并按回车键打开指定文件. 如果你开启了 Vim 的鼠标支持,也可以双击鼠标左键打开. 更强大的是,还可以直接输入序号来打开指定条目(推荐),一步到位.

请看基本的使用演示:

等等,这还不够,你还可以一次打开多个文件. 你可以在列表项按 b (在同一个窗口打开), s (水平切分窗口), v (垂直切分窗口), t (在tab中打开). 可以同时选择多个条目后,按回车键一起打开. 请看下面的演示.

Note: 使用 b, s, v, t 来进行标记时,是相对于前一个窗口而言,因此第一个选中的并不重要.

可以使用 :Startify 重新打开起始页.

基本用法2

可以针对指定文件夹建立 session,其支持一下操作

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

Note: 这个我基本不用,有兴趣的同学可以自行研究 XD

配置

由于这个插件配置比较多,我只列出常用选项.

" 设置书签
let g:startify_bookmarks            = [
            \ '~/Code/blog/startify/1.txt',
            \ '~/Code/blog/startify/2.txt',
            \]

" 起始页显示的列表长度
let g:startify_files_number = 20

" 是否自动加载目录下的Session.vim, 很好用
let g:startify_session_autoload = 1

" 过滤列表,支持正则表达式
let g:startify_skiplist = [
       \ '\.vimgolf',
       \ '^/tmp',
       \ '/project/.*/documentation',
       \ ]

" 自定义header,见下面的博文

个性化

" 自定义Header和Footer, 如果你熟悉vimscript,也可以编程实现 XD
let g:startify_custom_header = [
            \ '+------------------------------+',
            \ '|  Welcome to my blog.         |',
            \ '|                              |',
            \ '|  http://hackers-delight.com/ |',
            \ '+----------------+-------------+',
            \]

let g:startify_custom_footer = [
            \ '+------------------------------+',
            \ '|  1.01 ^ 365 =  37.78         |',
            \ '+----------------+-------------+',
            \]

效果如下:

Hacking Vim: startify(05)_第1张图片

结语

除了最基本的最近打开文件功能,我最常用的是使用 Bookmarkvimwiki 进行配合; 比如最近在读一本书,需要经常打开同一个 wiki 页做读书笔记,这时候配置一个书签就非常好用了.

至于 Session 这个东西,我比较习惯用 NerdTree 的书签来代替 : )

你可能感兴趣的:(vi,vim)