vim-modestatus


Ⅰ. 插件描述

A vanilla vim-like statusline alternative.

Ⅱ. 基本信息

创建日期:  2012-10-13
使用用户:  1
Github星:  1
插件作者:  Robert Kernan

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'kernan/vim-modestatus'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'kernan/vim-modestatus'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'kernan/vim-modestatus'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/kernan/vim-modestatus

Ⅳ. 文档说明

# Modestatus

Modestatus is (yet another) statusline replacement!

Installation

Just choose your favorite plugin manager:

  • NeoBundle

    • NeoBundle 'rkernan/vim-modestatus'
  • Pathogen

    • git clone https://github.com/rkernan/vim-modestatus.git ~/.vim/bundle/
  • vim-plug

    • Plug 'rkernan/vim-modestatus'
  • Vundle

    • Plugin 'rkernan/vim-modestatus'

Supported Plugins

Example Statusline

screenshot

let g:modestatus#statusline = [
    \        ['mode'],
    \        ['fugitive_branch', 'signify_added', 'signify_modified', 'signify_removed'],
    \        'filename', 'modified', 'readonly', 'filetype', 'ale_errors', 'ale_warnings', 'ale_style_errors', 'ale_style_warnings',
    \        '%=',
    \        'expandtab', 'shiftwidth', 'encoding', 'bomb', 'fileformat',
    \        ['line', 'column', 'line_percent']
    \    ]

let g:modestatus#statusline_override_denite = [['denite_mode'], 'denite_sources', 'denite_path', 'filetype', '%=', ['line', 'line_max', 'line_percent']]
let g:modestatus#statusline_override_fugitiveblame = ['filetype', '%=', ['line', 'line_max', 'line_percent']]
let g:modestatus#statusline_override_qf = [['mode'], 'buftype', 'filetype', '%=', ['line', 'line_max', 'line_percent']]

augroup vimrc
    " overrides
    autocmd FileType denite call modestatus#setlocal('denite')
    autocmd FileType fugitiveblame call modestatus#setlocal('fugitiveblame')
    autocmd FileType qf call modestatus#setlocal('qf')
augroup END

call modestatus#options#add('mode', 'color', 'ModestatusMode')
call modestatus#options#add('fugitive_branch', 'color', ['Modestatus2', 'Modestatus2NC'])
call modestatus#options#add('signify_added', 'color', ['Modestatus2Green', 'Modestatus2NCGreen'])
call modestatus#options#add('signify_modified', 'color', ['Modestatus2Aqua', 'Modestatus2NCAqua'])
call modestatus#options#add('signify_removed', 'color', ['Modestatus2Red', 'Modestatus2NCRed'])
call modestatus#options#add('filename', 'color', ['ModestatusBold', 'ModestatusNC'])
call modestatus#options#add('modified', 'color', ['ModestatusRedBold', 'ModestatusNCRedBold'])
call modestatus#options#add('readonly', 'color', ['ModestatusRed', 'ModestatusNCRed'])
call modestatus#options#add('ale_errors', 'color', ['ModestatusRed', 'ModestatusNCRed'])
call modestatus#options#add('ale_errors', 'format', '•%s')
call modestatus#options#add('ale_warnings', 'color', ['ModestatusYellow', 'ModestatusNCYellow'])
call modestatus#options#add('ale_warnings', 'format', '•%s')
call modestatus#options#add('ale_style_errors', 'color', ['ModestatusPurple', 'ModestatusNCPurple'])
call modestatus#options#add('ale_style_errors', 'format', '•%s')
call modestatus#options#add('ale_style_warnings', 'color', ['ModestatusAqua', 'ModestatusNCAqua'])
call modestatus#options#add('ale_style_warnings', 'format', '•%s')
call modestatus#options#add('expandtab', 'format', '[%s')
call modestatus#options#add('shiftwidth', 'format', '%s]')
call modestatus#options#add('encoding', 'format', '[%s')
call modestatus#options#add('encoding', 'separator', 0)
call modestatus#options#add('bomb', 'format', '-%s')
call modestatus#options#add('bomb', 'separator', 0)
call modestatus#options#add('fileformat', 'format', ':%s]')
call modestatus#options#add('line', 'color', ['Modestatus2', 'Modestatus2NC'])
call modestatus#options#add('line', 'separator', 0)
call modestatus#options#add('column', 'format', ',%s')
call modestatus#options#add('column', 'color', ['Modestatus2', 'Modestatus2NC'])
call modestatus#options#add('line_max', 'format', '/%s')
call modestatus#options#add('line_max', 'color', ['Modestatus2', 'Modestatus2NC'])
call modestatus#options#add('line_percent', 'color', ['Modestatus2', 'Modestatus2NC'])
call modestatus#options#add('denite_mode', 'color', 'ModestatusMode')
call modestatus#options#add('denite_sources', 'color', ['ModestatusBold', 'ModestatusNC'])

The above uses the excellent gruvbox vim colorscheme.

function! s:get_gruvbox_color(group)
    let gui_color = synIDattr(hlID(a:group), 'fg', 'gui')
    let term_color = synIDattr(hlID(a:group), 'fg', 'cterm')
    return [gui_color, term_color]
endfunction

function! s:hl(group, fg, bg, emphasis)
    execute 'highlight ' . a:group . ' guifg=' . a:fg[0] . ' guibg=' . a:bg[0] . ' gui=' . a:emphasis .
        \                        ' ctermfg=' . a:fg[1] . ' ctermbg=' . a:bg[1] . ' cterm=' . a:emphasis
endfunction

let s:bg0 = s:get_gruvbox_color('GruvboxBg0')
let s:bg1 = s:get_gruvbox_color('GruvboxBg1')
let s:bg2 = s:get_gruvbox_color('GruvboxBg2')
let s:bg3 = s:get_gruvbox_color('GruvboxBg3')
let s:bg4 = s:get_gruvbox_color('GruvboxBg4')
let s:fg0 = s:get_gruvbox_color('GruvboxFg0')
let s:fg1 = s:get_gruvbox_color('GruvboxFg1')
let s:fg2 = s:get_gruvbox_color('GruvboxFg2')
let s:fg3 = s:get_gruvbox_color('GruvboxFg3')
let s:fg4 = s:get_gruvbox_color('GruvboxFg4')
let s:red = s:get_gruvbox_color('GruvboxRed')
let s:green = s:get_gruvbox_color('GruvboxGreen')
let s:yellow = s:get_gruvbox_color('GruvboxYellow')
let s:aqua = s:get_gruvbox_color('GruvboxAqua')
let s:blue = s:get_gruvbox_color('GruvboxBlue')
let s:orange = s:get_gruvbox_color('GruvboxOrange')

" active statusline colors
call s:hl('StatusLine', s:fg4, s:bg2, 'none')
call s:hl('ModestatusBold', s:fg4, s:bg2, 'bold')
call s:hl('ModestatusRed', s:red, s:bg2, 'none')
call s:hl('ModestatusRedBold', s:red, s:bg2, 'bold')
call s:hl('Modestatus2', s:fg3, s:bg3, 'none')
call s:hl('Modestatus2Red', s:red, s:bg3, 'none')
call s:hl('Modestatus2Green', s:green, s:bg3, 'none')
call s:hl('Modestatus2Aqua', s:aqua, s:bg3, 'none')
" inactive statusline colors
call s:hl('StatusLineNC', s:bg4, s:bg1, 'none')
call s:hl('ModestatusNCRed', s:red, s:bg1, 'none')
call s:hl('ModestatusNCRedBold', s:red, s:bg1, 'bold')
call s:hl('ModestatusNCYellow', s:yellow, s:bg1, 'none')
call s:hl('Modestatus2NC', s:fg4, s:bg2, 'none')
call s:hl('Modestatus2NCRed', s:red, s:bg2, 'none')
call s:hl('Modestatus2NCGreen', s:green, s:bg2, 'none')
call s:hl('Modestatus2NCAqua', s:aqua, s:bg2, 'none')
" mode colors
call s:hl('ModestatusModeNormal', s:bg0, s:fg4, 'none')
call s:hl('ModestatusModeInsert', s:bg0, s:blue, 'none')
call s:hl('ModestatusModeReplace', s:bg0, s:aqua, 'none')
call s:hl('ModestatusModeVisual', s:bg0, s:orange, 'none')
call s:hl('ModestatusModeVisualLine', s:bg0, s:orange, 'none')
call s:hl('ModestatusModeVisualBlock', s:bg0, s:orange, 'none')

添加新评论