1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-03-27 13:00:30 +08:00

Merge remote-tracking branch 'upstream/dev' into feature/lsp-layer

This commit is contained in:
Seong Yong-ju 2017-11-19 23:38:24 +09:00
commit 4b4fddf4ae
24 changed files with 698 additions and 195 deletions

View File

@ -10,7 +10,7 @@
[![Build Status](https://travis-ci.org/SpaceVim/SpaceVim.svg?branch=dev)](https://travis-ci.org/SpaceVim/SpaceVim) [![Build Status](https://travis-ci.org/SpaceVim/SpaceVim.svg?branch=dev)](https://travis-ci.org/SpaceVim/SpaceVim)
[![Build status](https://ci.appveyor.com/api/projects/status/eh3t5oph70abp665/branch/dev?svg=true)](https://ci.appveyor.com/project/wsdjeg/spacevim/branch/dev) [![Build status](https://ci.appveyor.com/api/projects/status/eh3t5oph70abp665/branch/dev?svg=true)](https://ci.appveyor.com/project/wsdjeg/spacevim/branch/dev)
[![codecov](https://codecov.io/gh/SpaceVim/SpaceVim/branch/dev/graph/badge.svg)](https://codecov.io/gh/SpaceVim/SpaceVim/branch/dev) [![codecov](https://codecov.io/gh/SpaceVim/SpaceVim/branch/dev/graph/badge.svg)](https://codecov.io/gh/SpaceVim/SpaceVim/branch/dev)
![Version](https://img.shields.io/badge/version-0.6.0--dev-FF00CC.svg--dev-FF00CC.svg) ![Version](https://img.shields.io/badge/version-0.6.0--dev-FF00CC.svg)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Doc](https://img.shields.io/badge/doc-%3Ah%20SpaceVim-orange.svg)](doc/SpaceVim.txt) [![Doc](https://img.shields.io/badge/doc-%3Ah%20SpaceVim-orange.svg)](doc/SpaceVim.txt)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/SpaceVim/SpaceVim.svg)](http://isitmaintained.com/project/SpaceVim/SpaceVim "Average time to resolve an issue") [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/SpaceVim/SpaceVim.svg)](http://isitmaintained.com/project/SpaceVim/SpaceVim "Average time to resolve an issue")

View File

@ -157,6 +157,27 @@ let g:spacevim_enable_cursorline = 1
" "
let g:spacevim_statusline_separator = 'arrow' let g:spacevim_statusline_separator = 'arrow'
let g:spacevim_statusline_inactive_separator = 'arrow' let g:spacevim_statusline_inactive_separator = 'arrow'
""
" Define the left section of statusline in active windows. By default:
" >
" let g:spacevim_statusline_left_sections =
" \ [
" \ 'winnr',
" \ 'filename',
" \ 'major mode',
" \ 'minor mode lighters',
" \ 'version control info'
" \ ]
" <
let g:spacevim_statusline_left_sections = ['winnr', 'filename', 'major mode', 'minor mode lighters', 'version control info']
""
" Define the right section of statusline in active windows. By default:
" >
" let g:spacevim_statusline_right_sections = ['fileformat', 'cursorpos']
" <
let g:spacevim_statusline_right_sections = ['fileformat', 'cursorpos', 'percentage']
"" ""
" Enable/Disable unicode symbols in statusline " Enable/Disable unicode symbols in statusline
let g:spacevim_statusline_unicode_symbols = 1 let g:spacevim_statusline_unicode_symbols = 1
@ -288,8 +309,8 @@ let g:spacevim_auto_disable_touchpad = 1
let g:spacevim_debug_level = 1 let g:spacevim_debug_level = 1
let g:spacevim_hiddenfileinfo = 1 let g:spacevim_hiddenfileinfo = 1
let g:spacevim_plugin_groups_exclude = [] let g:spacevim_plugin_groups_exclude = []
let g:spacevim_gitcommit_pr_icon = 'p' let g:spacevim_gitcommit_pr_icon = ''
let g:spacevim_gitcommit_issue_icon = 'i' let g:spacevim_gitcommit_issue_icon = ''
"" ""
" Set SpaceVim buffer index type, default is 0. " Set SpaceVim buffer index type, default is 0.
" > " >

View File

@ -47,14 +47,13 @@ let s:system['isDarwin'] = function('s:isDarwin')
function! s:fileformat() abort function! s:fileformat() abort
let fileformat = '' let fileformat = ''
if &fileformat ==? 'dos' if &fileformat ==? 'dos'
let fileformat = '' let fileformat = ''
elseif &fileformat ==? 'unix' elseif &fileformat ==? 'unix'
if s:isDarwin() if s:isDarwin()
let fileformat = '' let fileformat = ''
else else
let fileformat = '' let fileformat = ''
endif endif
elseif &fileformat ==? 'mac' elseif &fileformat ==? 'mac'
let fileformat = '' let fileformat = ''

View File

@ -5,6 +5,10 @@ function! s:self.current_time() abort
return strftime('%I:%M %p') return strftime('%I:%M %p')
endfunction endfunction
function! s:self.current_date() abort
return strftime('%a %b %d')
endfunction
function! SpaceVim#api#time#get() abort function! SpaceVim#api#time#get() abort
return deepcopy(s:self) return deepcopy(s:self)

View File

@ -111,7 +111,7 @@ function! s:self._update_content() abort
let left_max_key_len = max([len(key.key), left_max_key_len]) let left_max_key_len = max([len(key.key), left_max_key_len])
elseif type(key.key) == 3 " is a list elseif type(key.key) == 3 " is a list
let left_max_key_len = max([len(join(key.key, '/')), left_max_key_len]) let left_max_key_len = max([len(join(key.key, '/')), left_max_key_len])
elseif type(key.key) == 4 " is a list elseif type(key.key) == 4 " is a dict
let left_max_key_len = max([len(key.key.name), left_max_key_len]) let left_max_key_len = max([len(key.key.name), left_max_key_len])
endif endif
endfor endfor
@ -122,7 +122,7 @@ function! s:self._update_content() abort
elseif type(key.key) == 3 " is a list elseif type(key.key) == 3 " is a list
let g:wsd = key.key let g:wsd = key.key
let right_max_key_len = max([len(join(key.key, '/')), right_max_key_len]) let right_max_key_len = max([len(join(key.key, '/')), right_max_key_len])
elseif type(key.key) == 4 " is a list elseif type(key.key) == 4 " is a dict
let right_max_key_len = max([len(key.key.name), right_max_key_len]) let right_max_key_len = max([len(key.key.name), right_max_key_len])
endif endif
endfor endfor
@ -140,6 +140,23 @@ function! s:self._update_content() abort
call extend(self._handle_inputs, {left.key : left.func}) call extend(self._handle_inputs, {left.key : left.func})
endif endif
elseif type(left.key) == 3 elseif type(left.key) == 3
let line .= '[' . join(left.key, '/') . '] '
let line .= repeat(' ', left_max_key_len - len(join(left.key, '/')))
let line .= left.desc
let begin = 1
for key in left.key
call self.highlight_keys(left.exit, i + 2, begin, begin + len(key))
let begin = begin + len(key) + 1
endfor
if !empty(left.cmd)
for key in left.key
call extend(self._handle_inputs, {key : left.cmd})
endfor
elseif !empty(left.func)
for key in left.key
call extend(self._handle_inputs, {key : left.func})
endfor
endif
elseif type(left.key) == 4 elseif type(left.key) == 4
let line .= '[' . left.key.name . '] ' let line .= '[' . left.key.name . '] '
let line .= repeat(' ', left_max_key_len - len(left.key.name)) let line .= repeat(' ', left_max_key_len - len(left.key.name))
@ -180,6 +197,17 @@ function! s:self._update_content() abort
call extend(self._handle_inputs, {key : right.func}) call extend(self._handle_inputs, {key : right.func})
endfor endfor
endif endif
elseif type(right.key) == 4
let line .= '[' . right.key.name . '] '
let line .= repeat(' ', right_max_key_len - len(right.key.name))
let line .= right.desc
let begin = 41
for pos in right.key.pos
call self.highlight_keys(right.exit, i + 2, begin + pos[0], begin + pos[1])
endfor
for handles in right.key.handles
call extend(self._handle_inputs, {handles[0] : handles[1]})
endfor
endif endif
endif endif
call append(line('$'), line) call append(line('$'), line)

View File

@ -0,0 +1,22 @@
scriptencoding utf-8
let s:self = {}
function! s:self.battery_status(v) abort
if a:v >= 90
return ''
elseif a:v >= 75
return ''
elseif a:v >= 50
return ''
elseif a:v >= 25
return ''
else
return ''
endif
endfunction
function! SpaceVim#api#unicode#icon#get()
return deepcopy(s:self)
endfunction

View File

@ -37,7 +37,7 @@ function! SpaceVim#commands#load() abort
\ SPUpdate call SpaceVim#commands#update_plugin(<f-args>) \ SPUpdate call SpaceVim#commands#update_plugin(<f-args>)
"" ""
" Command for reinstall plugin, support completion of plugin anme. " Command for reinstall plugin, support completion of plugin name.
command! -nargs=+ command! -nargs=+
\ -complete=custom,SpaceVim#commands#complete_plugin \ -complete=custom,SpaceVim#commands#complete_plugin
\ SPReinstall call SpaceVim#commands#reinstall_plugin(<f-args>) \ SPReinstall call SpaceVim#commands#reinstall_plugin(<f-args>)

View File

@ -124,6 +124,7 @@ function! SpaceVim#default#SetPlugins() abort
call add(g:spacevim_plugin_groups, 'format') call add(g:spacevim_plugin_groups, 'format')
call add(g:spacevim_plugin_groups, 'chat') call add(g:spacevim_plugin_groups, 'chat')
call add(g:spacevim_plugin_groups, 'git') call add(g:spacevim_plugin_groups, 'git')
call add(g:spacevim_plugin_groups, 'VersionControl')
call add(g:spacevim_plugin_groups, 'javascript') call add(g:spacevim_plugin_groups, 'javascript')
call add(g:spacevim_plugin_groups, 'ruby') call add(g:spacevim_plugin_groups, 'ruby')
call add(g:spacevim_plugin_groups, 'python') call add(g:spacevim_plugin_groups, 'python')

View File

@ -0,0 +1,99 @@
function! SpaceVim#layers#VersionControl#config() abort
let g:_spacevim_mappings_space.g = get(g:_spacevim_mappings_space, 'g', {'name' : '+VersionControl/git'})
call SpaceVim#mapping#space#def('nnoremap', ['g', '.'], 'call call('
\ . string(s:_function('s:buffer_transient_state')) . ', [])',
\ 'buffer transient state', 1)
endfunction
function! s:buffer_transient_state() abort
let state = SpaceVim#api#import('transient_state')
call state.set_title('VCS Transient State')
call state.defind_keys(
\ {
\ 'layout' : 'vertical split',
\ 'left' : [
\ {
\ 'key' : 'n',
\ 'desc' : 'next hunk',
\ 'func' : '',
\ 'cmd' : 'normal ]c',
\ 'exit' : 0,
\ },
\ {
\ 'key' : ['N', 'p'],
\ 'desc' : 'previous hunk',
\ 'func' : '',
\ 'cmd' : 'normal [c',
\ 'exit' : 0,
\ },
\ {
\ 'key' : ['r', 's', 'h'],
\ 'desc' : 'revert/stage/show',
\ 'func' : '',
\ 'cmd' : 'normal [c',
\ 'exit' : 0,
\ },
\ {
\ 'key' : 't',
\ 'desc' : 'toggle diff signs',
\ 'func' : '',
\ 'cmd' : '',
\ 'exit' : 0,
\ },
\ ],
\ 'right' : [
\ {
\ 'key' : {
\ 'name' : 'w/u',
\ 'pos': [[0,1], [2,3]],
\ 'handles' : [
\ ['w', 'Gina add %'],
\ ['u', 'Gina reset %'],
\ ],
\ },
\ 'desc' : 'stage/unstage in current file',
\ 'func' : '',
\ 'cmd' : '',
\ 'exit' : 0,
\ },
\ {
\ 'key' : ['c', 'C'],
\ 'desc' : 'commit with popup/direct commit',
\ 'func' : '',
\ 'cmd' : '',
\ 'exit' : 1,
\ },
\ {
\ 'key' : ['f', 'F', 'P'],
\ 'desc' : 'fetch/pull/push popup',
\ 'func' : '',
\ 'cmd' : '',
\ 'exit' : 1,
\ },
\ {
\ 'key' : ['l', 'D'],
\ 'desc' : 'log/diff popup',
\ 'func' : '',
\ 'cmd' : '',
\ 'exit' : 1,
\ },
\ ],
\ }
\ )
call state.open()
endfunction
" function() wrapper
if v:version > 703 || v:version == 703 && has('patch1170')
function! s:_function(fstr) abort
return function(a:fstr)
endfunction
else
function! s:_SID() abort
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
endfunction
let s:_s = '<SNR>' . s:_SID() . '_'
function! s:_function(fstr) abort
return function(substitute(a:fstr, 's:', s:_s, 'g'))
endfunction
endif

View File

@ -15,6 +15,8 @@ let s:TIME = SpaceVim#api#import('time')
let s:HI = SpaceVim#api#import('vim#highlight') let s:HI = SpaceVim#api#import('vim#highlight')
let s:STATUSLINE = SpaceVim#api#import('vim#statusline') let s:STATUSLINE = SpaceVim#api#import('vim#statusline')
let s:VIMCOMP = SpaceVim#api#import('vim#compatible') let s:VIMCOMP = SpaceVim#api#import('vim#compatible')
let s:SYSTEM = SpaceVim#api#import('system')
let s:ICON = SpaceVim#api#import('unicode#icon')
" init " init
let s:separators = { let s:separators = {
@ -64,16 +66,133 @@ let s:modes = {
\ }, \ },
\ } \ }
" TODO This can not be deleted, it is used for toggle section
let s:loaded_sections = ['syntax checking', 'major mode', 'minor mode lighters', 'version control info', 'cursorpos'] let s:loaded_sections = ['syntax checking', 'major mode', 'minor mode lighters', 'version control info', 'cursorpos']
function! s:battery_status() abort let s:loaded_sections_r = g:spacevim_statusline_right_sections
if executable('acpi') let s:loaded_sections_l = g:spacevim_statusline_left_sections
return ' ⚡' . substitute(split(system('acpi'))[-1], '%', '%%', 'g') . ' '
" build in sections for SpaceVim statusline
function! s:winnr(...) abort
if a:0 > 1
if g:spacevim_windows_index_type == 3
return ' ' . winnr() . ' '
else
return ' ' . s:MESSLETTERS.circled_num(winnr(), g:spacevim_windows_index_type) . ' '
endif
else
if g:spacevim_enable_statusline_display_mode == 1
return '%{SpaceVim#layers#core#statusline#mode(mode())} %{SpaceVim#layers#core#statusline#mode_text(mode())}' . s:MESSLETTERS.circled_num(winnr(), g:spacevim_windows_index_type) . ' '
elseif g:spacevim_windows_index_type == 3
return '%{SpaceVim#layers#core#statusline#mode(mode())} ' . winnr() . ' '
else
return '%{SpaceVim#layers#core#statusline#mode(mode())} ' . s:MESSLETTERS.circled_num(winnr(), g:spacevim_windows_index_type) . ' '
endif
endif
endfunction
function! s:filename() abort
let name = fnamemodify(bufname('%'), ':t')
if empty(name)
let name = 'No Name'
endif
return "%{ &modified ? ' * ' : ' - '}" . s:filesize() . name . ' '
endfunction
if g:spacevim_statusline_unicode_symbols == 1
let g:_spacevim_statusline_fileformat = s:SYSTEM.fileformat()
else
let g:_spacevim_statusline_fileformat = &ff
endif
function! s:fileformat() abort
return '%{" " . g:_spacevim_statusline_fileformat . " | " . (&fenc!=""?&fenc:&enc) . " "}'
endfunction
function! s:major_mode() abort
return '%{empty(&ft)? "" : " " . &ft . " "}'
endfunction
function! s:modes() abort
let m = ' ❖ '
for mode in s:loaded_modes
if g:spacevim_statusline_unicode_symbols == 1
let m .= s:modes[mode].icon . ' '
else
let m .= s:modes[mode].icon_asc . ' '
endif
endfor
return m . ' '
endfunction
function! s:git_branch() abort
if exists('g:loaded_fugitive')
let l:head = fugitive#head()
if empty(l:head)
call fugitive#detect(getcwd())
let l:head = fugitive#head()
endif
return empty(l:head) ? '' : '  '.l:head . ' '
endif
return ''
endfunction
function! s:percentage() abort
return ' %P '
endfunction
function! s:cursorpos() abort
return ' %l:%c '
endfunction
function! s:time() abort
return ' ' . s:TIME.current_time() . ' '
endfunction
function! s:date() abort
return ' ' . s:TIME.current_date() . ' '
endfunction
function! s:whitespace() abort
let ln = search('\s\+$', 'n')
if ln != 0
return ' trailing[' . ln . '] '
else else
return '' return ''
endif endif
endfunction endfunction
function! s:battery_status() abort
if executable('acpi')
let battery = split(system('acpi'))[-1][:-2]
if g:spacevim_statusline_unicode_symbols
return ' ' . s:ICON.battery_status(battery) . ' '
else
return ' ⚡' . battery . ' '
endif
else
return ''
endif
endfunction
let s:registed_sections = {
\ 'winnr' : function('s:winnr'),
\ 'filename' : function('s:filename'),
\ 'fileformat' : function('s:fileformat'),
\ 'major mode' : function('s:major_mode'),
\ 'minor mode lighters' : function('s:modes'),
\ 'version control info' : function('s:git_branch'),
\ 'cursorpos' : function('s:cursorpos'),
\ 'percentage' : function('s:percentage'),
\ 'time' : function('s:time'),
\ 'date' : function('s:date'),
\ 'whitespace' : function('s:whitespace'),
\ 'battery status' : function('s:battery_status'),
\ }
function! s:check_mode() abort function! s:check_mode() abort
if mode() == 'n' if mode() == 'n'
return 'n' return 'n'
@ -109,10 +228,6 @@ function! s:search_status() abort
return ' ' . (str2nr(tt) - str2nr(ct) + 1) . '/' . tt . ' ' return ' ' . (str2nr(tt) - str2nr(ct) + 1) . '/' . tt . ' '
endfunction endfunction
function! s:time() abort
return ' ' . s:TIME.current_time() . ' '
endfunction
if g:spacevim_enable_neomake if g:spacevim_enable_neomake
function! s:syntax_checking() function! s:syntax_checking()
if !exists('g:loaded_neomake') if !exists('g:loaded_neomake')
@ -151,69 +266,6 @@ else
endfunction endfunction
endif endif
function! s:winnr(...) abort
if a:0 > 1
if g:spacevim_windows_index_type == 3
return ' ' . winnr() . ' '
else
return ' ' . s:MESSLETTERS.circled_num(winnr(), g:spacevim_windows_index_type) . ' '
endif
else
if g:spacevim_enable_statusline_display_mode == 1
return '%{SpaceVim#layers#core#statusline#mode(mode())} %{SpaceVim#layers#core#statusline#mode_text(mode())}' . s:MESSLETTERS.circled_num(winnr(), g:spacevim_windows_index_type) . ' '
elseif g:spacevim_windows_index_type == 3
return '%{SpaceVim#layers#core#statusline#mode(mode())} ' . winnr() . ' '
else
return '%{SpaceVim#layers#core#statusline#mode(mode())} ' . s:MESSLETTERS.circled_num(winnr(), g:spacevim_windows_index_type) . ' '
endif
endif
endfunction
function! s:filename() abort
let name = fnamemodify(bufname('%'), ':t')
if empty(name)
let name = 'No Name'
endif
return (&modified ? ' * ' : ' - ') . s:filesize() . name . ' '
endfunction
function! s:git_branch() abort
if exists('g:loaded_fugitive')
let l:head = fugitive#head()
if empty(l:head)
call fugitive#detect(getcwd())
let l:head = fugitive#head()
endif
return empty(l:head) ? '' : '  '.l:head . ' '
endif
return ''
endfunction
function! s:whitespace() abort
let ln = search('\s\+$', 'n')
if ln != 0
return ' trailing[' . ln . '] '
else
return ''
endif
endfunction
function! s:cursorpos() abort
return ' %l:%c '
endfunction
function! s:modes() abort
let m = ' ❖ '
for mode in s:loaded_modes
if g:spacevim_statusline_unicode_symbols == 1
let m .= s:modes[mode].icon . ' '
else
let m .= s:modes[mode].icon_asc . ' '
endif
endfor
return m . ' '
endfunction
function! s:filesize() abort function! s:filesize() abort
let l:size = getfsize(bufname('%')) let l:size = getfsize(bufname('%'))
@ -280,40 +332,18 @@ function! SpaceVim#layers#core#statusline#get(...) abort
endfunction endfunction
function! s:active() abort function! s:active() abort
let lsec = [s:winnr(), s:filename()] let lsec = []
if index(s:loaded_sections, 'search status') != -1 for section in s:loaded_sections_l
call add(lsec, s:search_status()) if has_key(s:registed_sections, section)
endif call add(lsec, call(s:registed_sections[section], []))
if index(s:loaded_sections, 'major mode') != -1 && !empty(&filetype)
call add(lsec, ' ' . &filetype . ' ')
endif endif
endfor
let rsec = [] let rsec = []
if index(s:loaded_sections, 'syntax checking') != -1 && s:syntax_checking() != '' for section in s:loaded_sections_r
call add(lsec, s:syntax_checking()) if has_key(s:registed_sections, section)
endif call add(rsec, call(s:registed_sections[section], []))
if index(s:loaded_sections, 'minor mode lighters') != -1
call add(lsec, s:modes())
endif
if index(s:loaded_sections, 'version control info') != -1
call add(lsec, s:git_branch())
endif
call add(lsec, SpaceVim#plugins#searcher#count())
if index(s:loaded_sections, 'battery status') != -1
call add(rsec, s:battery_status())
endif
call add(rsec, '%{" " . &ff . " | " . (&fenc!=""?&fenc:&enc) . " "}')
if index(s:loaded_sections, 'cursorpos') != -1
call add(rsec, s:cursorpos())
endif
call add(rsec, ' %P ')
if index(s:loaded_sections, 'time') != -1
call add(rsec, s:time())
endif
if index(s:loaded_sections, 'whitespace') != -1
call add(rsec, s:whitespace())
endif endif
endfor
let fname = s:buffer_name() let fname = s:buffer_name()
return s:STATUSLINE.build(lsec, rsec, s:lsep, s:rsep, fname, return s:STATUSLINE.build(lsec, rsec, s:lsep, s:rsep, fname,
\ 'SpaceVim_statusline_a', 'SpaceVim_statusline_b', 'SpaceVim_statusline_c', 'SpaceVim_statusline_z') \ 'SpaceVim_statusline_a', 'SpaceVim_statusline_b', 'SpaceVim_statusline_c', 'SpaceVim_statusline_z')
@ -388,11 +418,26 @@ function! SpaceVim#layers#core#statusline#toggle_mode(name) abort
let &l:statusline = SpaceVim#layers#core#statusline#get(1) let &l:statusline = SpaceVim#layers#core#statusline#get(1)
endfunction endfunction
let s:section_old_pos = {
\ }
function! SpaceVim#layers#core#statusline#toggle_section(name) abort function! SpaceVim#layers#core#statusline#toggle_section(name) abort
if index(s:loaded_sections, a:name) != -1 if index(s:loaded_sections_l, a:name) == -1
call remove(s:loaded_sections, index(s:loaded_sections, a:name)) \ && index(s:loaded_sections_r, a:name) == -1
\ && !has_key(s:section_old_pos, a:name)
call add(s:loaded_sections_r, a:name)
elseif index(s:loaded_sections_r, a:name) != -1
let s:section_old_pos[a:name] = ['r', index(s:loaded_sections_r, a:name)]
call remove(s:loaded_sections_r, index(s:loaded_sections_r, a:name))
elseif index(s:loaded_sections_l, a:name) != -1
let s:section_old_pos[a:name] = ['l', index(s:loaded_sections_l, a:name)]
call remove(s:loaded_sections_l, index(s:loaded_sections_l, a:name))
elseif has_key(s:section_old_pos, a:name)
if s:section_old_pos[a:name][0] == 'r'
call insert(s:loaded_sections_r, a:name, s:section_old_pos[a:name][1])
else else
call add(s:loaded_sections, a:name) call insert(s:loaded_sections_l, a:name, s:section_old_pos[a:name][1])
endif
endif endif
let &l:statusline = SpaceVim#layers#core#statusline#get(1) let &l:statusline = SpaceVim#layers#core#statusline#get(1)
endfunction endfunction
@ -412,6 +457,8 @@ function! SpaceVim#layers#core#statusline#config() abort
\ 'toggle the major mode', 1) \ 'toggle the major mode', 1)
call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 'b'], 'call SpaceVim#layers#core#statusline#toggle_section("battery status")', call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 'b'], 'call SpaceVim#layers#core#statusline#toggle_section("battery status")',
\ 'toggle the battery status', 1) \ 'toggle the battery status', 1)
call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 'd'], 'call SpaceVim#layers#core#statusline#toggle_section("date")',
\ 'toggle the date', 1)
call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 't'], 'call SpaceVim#layers#core#statusline#toggle_section("time")', call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 't'], 'call SpaceVim#layers#core#statusline#toggle_section("time")',
\ 'toggle the time', 1) \ 'toggle the time', 1)
call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 'p'], 'call SpaceVim#layers#core#statusline#toggle_section("cursorpos")', call SpaceVim#mapping#space#def('nnoremap', ['t', 'm', 'p'], 'call SpaceVim#layers#core#statusline#toggle_section("cursorpos")',
@ -533,4 +580,16 @@ function! SpaceVim#layers#core#statusline#unite_mode()
return '' return ''
endfunction endfunction
function! SpaceVim#layers#core#statusline#register_sections(name, func)
if has_key(s:registed_sections, a:name)
call SpaceVim#logger#info('statusline build-in section ' . a:name . ' has been changed!')
call extend(s:registed_sections, {a:name : a:func})
else
call extend(s:registed_sections, {a:name : a:func})
endif
endfunction
" vim:set et sw=2 cc=80: " vim:set et sw=2 cc=80:

View File

@ -21,6 +21,7 @@ function! SpaceVim#layers#edit#plugins() abort
\ ['haya14busa/vim-easyoperator-line'], \ ['haya14busa/vim-easyoperator-line'],
\ ['editorconfig/editorconfig-vim', { 'merged' : 0}], \ ['editorconfig/editorconfig-vim', { 'merged' : 0}],
\ ['floobits/floobits-neovim', { 'on_cmd' : ['FlooJoinWorkspace','FlooShareDirPublic','FlooShareDirPrivate']}], \ ['floobits/floobits-neovim', { 'on_cmd' : ['FlooJoinWorkspace','FlooShareDirPublic','FlooShareDirPrivate']}],
\ ['osyo-manga/vim-jplus', { 'on_map' : '<Plug>(jplus' }],
\ ] \ ]
if executable('fcitx') if executable('fcitx')
call add(plugins,['lilydjwg/fcitx.vim', { 'on_event' : 'InsertEnter'}]) call add(plugins,['lilydjwg/fcitx.vim', { 'on_event' : 'InsertEnter'}])
@ -44,6 +45,12 @@ function! SpaceVim#layers#edit#config() abort
"noremap <SPACE> <Plug>(wildfire-fuel) "noremap <SPACE> <Plug>(wildfire-fuel)
vnoremap <C-SPACE> <Plug>(wildfire-water) vnoremap <C-SPACE> <Plug>(wildfire-water)
let g:wildfire_objects = ["i'", 'i"', 'i)', 'i]', 'i}', 'ip', 'it'] let g:wildfire_objects = ["i'", 'i"', 'i)', 'i]', 'i}', 'ip', 'it']
" osyo-manga/vim-jplus {{{
nmap <silent> J <Plug>(jplus)
vmap <silent> J <Plug>(jplus)
" }}}
let g:_spacevim_mappings_space.x = {'name' : '+Text'} let g:_spacevim_mappings_space.x = {'name' : '+Text'}
let g:_spacevim_mappings_space.x.a = {'name' : '+align'} let g:_spacevim_mappings_space.x.a = {'name' : '+align'}
let g:_spacevim_mappings_space.x.d = {'name' : '+delete'} let g:_spacevim_mappings_space.x.d = {'name' : '+delete'}

View File

@ -1,8 +1,7 @@
function! SpaceVim#layers#git#plugins() abort function! SpaceVim#layers#git#plugins() abort
let plugins = [ let plugins = [
\ ['cohama/agit.vim', { 'on_cmd' : ['Agit','AgitFile']}], \ ['cohama/agit.vim', { 'on_cmd' : ['Agit','AgitFile']}],
\ ['gregsexton/gitv', { 'on_cmd' : ['Gitv']}], \ ['airblade/vim-gitgutter', { 'merged' : 0}],
\ ['junegunn/gv.vim', { 'on_cmd' : 'GV'}],
\ ['tpope/vim-fugitive', { 'merged' : 0}], \ ['tpope/vim-fugitive', { 'merged' : 0}],
\ ] \ ]
if has('patch-8.0.0027') || has('nvim') if has('patch-8.0.0027') || has('nvim')
@ -15,40 +14,25 @@ endfunction
function! SpaceVim#layers#git#config() abort function! SpaceVim#layers#git#config() abort
let g:_spacevim_mappings_space.g = get(g:_spacevim_mappings_space, 'g', {'name' : '+VersionControl/git'})
if has('patch-8.0.0027') || has('nvim') if has('patch-8.0.0027') || has('nvim')
nnoremap <silent> <Leader>gd :Gina diff<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 's'], 'Gina status', 'git status', 1)
nnoremap <silent> <Leader>gs :Gina status<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'S'], 'Gina add %', 'stage current file', 1)
nnoremap <silent> <Leader>gc :Gina commit<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'U'], 'Gina reset -q %', 'unstage current file', 1)
nnoremap <silent> <Leader>gb :Gina blame :<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'c'], 'Gina commit', 'edit git commit', 1)
nnoremap <silent> <Leader>gp :Gina push<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'p'], 'Gina push', 'git push', 1)
nnoremap <silent> <Leader>ga :Gina add %<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'd'], 'Gina diff', 'view git diff', 1)
nnoremap <silent> <Leader>gA :Gina add .<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'A'], 'Gina add .', 'state all files', 1)
let g:_spacevim_mappings.g = {'name' : '+git function', call SpaceVim#mapping#space#def('nnoremap', ['g', 'b'], 'Gina blame', 'view git blame', 1)
\ 'd' : ['Gina diff', 'git diff'],
\ 's' : ['Gina status', 'git status'],
\ 'c' : ['Gina commit', 'git commit'],
\ 'b' : ['Gina blame', 'git blame'],
\ 'p' : ['Gina push', 'git push'],
\ 'a' : ['Gina add %', 'git add current buffer'],
\ 'A' : ['Gina add .', 'git add all files'],
\ }
else else
nnoremap <silent> <Leader>gd :Gita diff<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 's'], 'Gita status', 'git status', 1)
nnoremap <silent> <Leader>gs :Gita status<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'S'], 'Gita add %', 'stage current file', 1)
nnoremap <silent> <Leader>gc :Gita commit<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'U'], 'Gita reset %', 'unstage current file', 1)
nnoremap <silent> <Leader>gb :Gita blame :<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'c'], 'Gita commit', 'edit git commit', 1)
nnoremap <silent> <Leader>gp :Gita push<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'p'], 'Gita push', 'git push', 1)
nnoremap <silent> <Leader>ga :Gita add %<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'd'], 'Gita diff', 'view git diff', 1)
nnoremap <silent> <Leader>gA :Gita add .<CR> call SpaceVim#mapping#space#def('nnoremap', ['g', 'A'], 'Gita add .', 'state all files', 1)
let g:_spacevim_mappings.g = {'name' : 'git function', call SpaceVim#mapping#space#def('nnoremap', ['g', 'b'], 'Gina blame', 'view git blame', 1)
\ 'd' : ['Gita diff', 'git diff'],
\ 's' : ['Gita status', 'git status'],
\ 'c' : ['Gita commit', 'git commit'],
\ 'b' : ['Gita blame', 'git blame'],
\ 'p' : ['Gita push', 'git push'],
\ 'a' : ['Gita add %', 'git add current buffer'],
\ 'A' : ['Gita add .', 'git add all files'],
\ }
endif endif
nmap <leader>hj <plug>(signify-next-hunk) nmap <leader>hj <plug>(signify-next-hunk)
nmap <leader>hk <plug>(signify-prev-hunk) nmap <leader>hk <plug>(signify-prev-hunk)
@ -59,6 +43,22 @@ function! SpaceVim#layers#git#config() abort
autocmd FileType diff nnoremap <buffer><silent> q :bd!<CR> autocmd FileType diff nnoremap <buffer><silent> q :bd!<CR>
autocmd FileType gitcommit setl omnifunc=SpaceVim#plugins#gitcommit#complete autocmd FileType gitcommit setl omnifunc=SpaceVim#plugins#gitcommit#complete
augroup END augroup END
call SpaceVim#mapping#space#def('nnoremap', ['g', 'M'], 'call call('
\ . string(function('s:display_last_commit_of_current_line')) . ', [])',
\ 'display the last commit message of the current line', 1)
call SpaceVim#mapping#space#def('nnoremap', ['g', 'V'], 'AgitFile', 'View git log of current file', 1)
call SpaceVim#mapping#space#def('nnoremap', ['g', 'v'], 'Agit', 'View git log of current repo', 1)
endfunction
function! s:display_last_commit_of_current_line() abort
let line = line('.')
let file = expand('%')
let cmd = 'git log -L ' . line . ',' . line . ':' . file
let cmd .= ' --pretty=format:"%s" -1'
let title = systemlist(cmd)[0]
if v:shell_error == 0
echo 'Last commit of current line is: ' . title
endif
endfunction endfunction
" vim:set et sw=2 cc=80: " vim:set et sw=2 cc=80:

View File

@ -28,7 +28,6 @@ function! SpaceVim#layers#tools#plugins() abort
\ 'loadconf' : 1, \ 'loadconf' : 1,
\}], \}],
\ ['godlygeek/tabular', { 'on_cmd' : 'Tabularize'}], \ ['godlygeek/tabular', { 'on_cmd' : 'Tabularize'}],
\ ['airblade/vim-gitgutter', { 'on_cmd' : 'GitGutterEnable'}],
\ ['itchyny/calendar.vim', { 'on_cmd' : 'Calendar'}], \ ['itchyny/calendar.vim', { 'on_cmd' : 'Calendar'}],
\ ['wsdjeg/Mysql.vim', { 'on_cmd' : 'SQLGetConnection'}], \ ['wsdjeg/Mysql.vim', { 'on_cmd' : 'SQLGetConnection'}],
\ ['wsdjeg/job.vim', { 'merged' : 0}], \ ['wsdjeg/job.vim', { 'merged' : 0}],

View File

@ -2,7 +2,6 @@ scriptencoding utf-8
function! SpaceVim#layers#ui#plugins() abort function! SpaceVim#layers#ui#plugins() abort
let plugins = [ let plugins = [
\ ['Yggdroot/indentLine'], \ ['Yggdroot/indentLine'],
\ ['mhinz/vim-signify'],
\ ['majutsushi/tagbar', {'loadconf' : 1}], \ ['majutsushi/tagbar', {'loadconf' : 1}],
\ ['tenfyzhong/tagbar-makefile.vim', {'merged': 0}], \ ['tenfyzhong/tagbar-makefile.vim', {'merged': 0}],
\ ['tenfyzhong/tagbar-proto.vim', {'merged': 0}], \ ['tenfyzhong/tagbar-proto.vim', {'merged': 0}],

View File

@ -194,6 +194,25 @@ Set the statusline separators of statusline, default is 'arrow'
See more details in: http://spacevim.org/documentation/#statusline See more details in: http://spacevim.org/documentation/#statusline
*g:spacevim_statusline_left_sections*
Define the left section of statusline in active windows. By default:
>
let g:spacevim_statusline_left_sections =
\ [
\ 'winnr',
\ 'filename',
\ 'major mode',
\ 'minor mode lighters',
\ 'version control info'
\ ]
<
*g:spacevim_statusline_right_sections*
Define the right section of statusline in active windows. By default:
>
let g:spacevim_statusline_right_sections = ['fileformat', 'cursorpos']
<
*g:spacevim_statusline_unicode_symbols* *g:spacevim_statusline_unicode_symbols*
Enable/Disable unicode symbols in statusline Enable/Disable unicode symbols in statusline
@ -451,7 +470,7 @@ COMMANDS *SpaceVim-commands*
< <
:SPReinstall *:SPReinstall* :SPReinstall *:SPReinstall*
Command for reinstall plugin, support completion of plugin anme. Command for reinstall plugin, support completion of plugin name.
:SPInstall *:SPInstall* :SPInstall *:SPInstall*
Command for install plugins. Command for install plugins.

View File

@ -519,6 +519,7 @@ let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
| `SPC t m n` | toggle the cat! (if colors layer is declared in your dotfile)(TODO) | | `SPC t m n` | toggle the cat! (if colors layer is declared in your dotfile)(TODO) |
| `SPC t m p` | 显示/隐藏鼠标位置信息 | | `SPC t m p` | 显示/隐藏鼠标位置信息 |
| `SPC t m t` | 显示/隐藏时间 | | `SPC t m t` | 显示/隐藏时间 |
| `SPC t m d` | 显示/隐藏日期 |
| `SPC t m T` | 显示/隐藏状态栏 | | `SPC t m T` | 显示/隐藏状态栏 |
| `SPC t m v` | 显示/隐藏版本控制信息 | | `SPC t m v` | 显示/隐藏版本控制信息 |

View File

@ -0,0 +1,14 @@
---
title: SpaceVim release v0.2.0
categories: changelog
excerpt: "Mnemonic key bindings in SpaceVim"
---
# [Changelogs](https://spacevim.org/development#changelog) > SpaceVim release v0.2.0
SpaceVim is a community-driven vim distribution inspired by spacemacs.
features:
**Mnemonic key bindings:** commands have mnemonic prefixes like <kbd>[Window]</kbd> for all the window and buffer commands or <kbd>[Unite]</kbd> for the unite work flow commands.
**Denite support:** <kbd>[Denite]</kbd> key guide for denite.

View File

@ -0,0 +1,37 @@
---
title: SpaceVim release v0.3.1
categories: changelog
excerpt: "Here you can check what has been done so far."
---
# [Changelogs](https://spacevim.org/development#changelog) > SpaceVim release v0.3.1
**Install:** https://github.com/SpaceVim/SpaceVim/wiki/Installing-SpaceVim
### FEATURES:
- Add complete function for gitcommit buffer [#568](https://github.com/SpaceVim/SpaceVim/pull/#568) [#567](https://github.com/SpaceVim/SpaceVim/pull/#567) [#579](https://github.com/SpaceVim/SpaceVim/pull/#579) [#575](https://github.com/SpaceVim/SpaceVim/pull/#575)
- Undo quit window && redo quit window [#599](https://github.com/SpaceVim/SpaceVim/pull/#599)
- Add mappings for buffer [#600](https://github.com/SpaceVim/SpaceVim/pull/#600)
- Add mappings for file [#607](https://github.com/SpaceVim/SpaceVim/pull/#607)
- Add doc for file tree [#612](https://github.com/SpaceVim/SpaceVim/pull/#612)
- g prefix guide [#618](https://github.com/SpaceVim/SpaceVim/pull/#618)
- z prefix guide [#662](https://github.com/SpaceVim/SpaceVim/pull/#662)
- tmux lang layer [#658](https://github.com/SpaceVim/SpaceVim/pull/#658)
- Improve searching feature [#652](https://github.com/SpaceVim/SpaceVim/pull/#652)
- complete parameter for ycm [#663](https://github.com/SpaceVim/SpaceVim/pull/#663)
- Improve searching index [#676](https://github.com/SpaceVim/SpaceVim/pull/#676)
### CHANGES:
- Change mappings for buffer jumpping and window jumpping [#572](https://github.com/SpaceVim/SpaceVim/pull/#572)
### FIXES:
- [#564](https://github.com/SpaceVim/SpaceVim/pull/#564) Fix [Window]Q close current buffer
- [#574](https://github.com/SpaceVim/SpaceVim/pull/#574) Fix ctrlp file finder
- [#584](https://github.com/SpaceVim/SpaceVim/pull/#584) Fix spacevim startup errors
- [#610](https://github.com/SpaceVim/SpaceVim/pull/#610) Support old vim version

View File

@ -0,0 +1,40 @@
---
title: SpaceVim release v0.4.0
categories: changelog
excerpt: "Here you can check what has been done so far."
---
# [Changelogs](https://spacevim.org/development#changelog) > SpaceVim release v0.4.0
### FEATURES:
- Add comment mappings [#683](https://github.com/SpaceVim/SpaceVim/pull/#683)
- Achievements [#677](https://github.com/SpaceVim/SpaceVim/pull/#677)
- Add text manipulation commands [#684](https://github.com/SpaceVim/SpaceVim/pull/#684)
- Add text insertion commands [#685](https://github.com/SpaceVim/SpaceVim/pull/#685)
- Add CompleteParameter [#688](https://github.com/SpaceVim/SpaceVim/pull/#688)
- Toggle cursor position [#697](https://github.com/SpaceVim/SpaceVim/pull/#697)
- Add background searching feture [#699](https://github.com/SpaceVim/SpaceVim/pull/#699)
- Improve plugin manager [#702](https://github.com/SpaceVim/SpaceVim/pull/#702) [#703](https://github.com/SpaceVim/SpaceVim/pull/#703)
- Grep on the fly [#705](https://github.com/SpaceVim/SpaceVim/pull/#705) [#709](https://github.com/SpaceVim/SpaceVim/pull/#709) [#714](https://github.com/SpaceVim/SpaceVim/pull/#714) [#717](https://github.com/SpaceVim/SpaceVim/pull/#717)
- Add prompt api [#715](https://github.com/SpaceVim/SpaceVim/pull/#715)
- Add web api [#726](https://github.com/SpaceVim/SpaceVim/pull/#726)
- Add check requirement script [#736](https://github.com/SpaceVim/SpaceVim/pull/#736)
- Add language specified mappings [#748](https://github.com/SpaceVim/SpaceVim/pull/#748)
- Improve Java layer [#749](https://github.com/SpaceVim/SpaceVim/pull/#749)
- Add project manager mappings [#751](https://github.com/SpaceVim/SpaceVim/pull/#751)
- Add plugin for mark active window [#755](https://github.com/SpaceVim/SpaceVim/pull/#755) (not sure if it will be removed)
- Add help for mappings [#756](https://github.com/SpaceVim/SpaceVim/pull/#756)
- Update autocomplete layer doc [#759](https://github.com/SpaceVim/SpaceVim/pull/#759)
- Add tags layer [#764](https://github.com/SpaceVim/SpaceVim/pull/#764)
### FIX:
- Fix vimfiler direction [#686](https://github.com/SpaceVim/SpaceVim/pull/#686)
- Fix welcome page [#707](https://github.com/SpaceVim/SpaceVim/pull/#707)
- Fix visual SPC [#708](https://github.com/SpaceVim/SpaceVim/pull/#708)
- Fix windows support [#712](https://github.com/SpaceVim/SpaceVim/pull/#712)
- Fix n/N hl state [#720](https://github.com/SpaceVim/SpaceVim/pull/#720)
- Fix guibg parse [#723](https://github.com/SpaceVim/SpaceVim/pull/#723)
- Fix unknown option [#727](https://github.com/SpaceVim/SpaceVim/pull/#727)
- Fix select mode statusline [#737](https://github.com/SpaceVim/SpaceVim/pull/#737)

View File

@ -0,0 +1,114 @@
---
title: SpaceVim release v0.5.0
categories: changelog
excerpt: "Many new features come out with v0.5.0"
---
# [Changelogs](https://spacevim.org/development#changelog) > SpaceVim release v0.5.0
## New Features
- Add clojure layer [#964](https://github.com/SpaceVim/SpaceVim/pull/964)
- Add lang#solidity layer [#959](https://github.com/SpaceVim/SpaceVim/pull/959)
- Add complete script [#954](https://github.com/SpaceVim/SpaceVim/pull/954)
- Add remote manager [#949](https://github.com/SpaceVim/SpaceVim/pull/949)
- add wiki [#946](https://github.com/SpaceVim/SpaceVim/pull/946)
- Added a new plugin thinca/vim-quickrun [#939](https://github.com/SpaceVim/SpaceVim/pull/939)
- Added a new plugin vimwiki/vimwiki [#938](https://github.com/SpaceVim/SpaceVim/pull/938)
- Added a new plugin vimwiki/vimwiki [#935](https://github.com/SpaceVim/SpaceVim/pull/935)
- Add statusline errors / warnings report for ale [#934](https://github.com/SpaceVim/SpaceVim/pull/934)
- Add quickfix plugin [#930](https://github.com/SpaceVim/SpaceVim/pull/930)
- Add base64 api [#924](https://github.com/SpaceVim/SpaceVim/pull/924)
- Added a new layer, japanese [#921](https://github.com/SpaceVim/SpaceVim/pull/921)
- Added auto-completion settings for Haskell [#920](https://github.com/SpaceVim/SpaceVim/pull/920)
- Added Shougo/echodoc.vim to autocomplete layer [#919](https://github.com/SpaceVim/SpaceVim/pull/919)
- Add mail layer [#904](https://github.com/SpaceVim/SpaceVim/pull/904)
- Add pmd support [#902](https://github.com/SpaceVim/SpaceVim/pull/902)
- Add appveyor badges [#888](https://github.com/SpaceVim/SpaceVim/pull/888)
- Add server support [#870](https://github.com/SpaceVim/SpaceVim/pull/870)
- Add option for disable unicode symbols in statusline [#858](https://github.com/SpaceVim/SpaceVim/pull/858)
- Add project manager [#850](https://github.com/SpaceVim/SpaceVim/pull/850)
- Add lang#typescript layer [#839](https://github.com/SpaceVim/SpaceVim/pull/839)
- Add key binding for clear saved buffers [#830](https://github.com/SpaceVim/SpaceVim/pull/830)
- Add airline/tabline theme for nord [#825](https://github.com/SpaceVim/SpaceVim/pull/825)
- Add layer for Pony programming language [#823](https://github.com/SpaceVim/SpaceVim/pull/823)
- Add vim-repeat to edit layer [#818](https://github.com/SpaceVim/SpaceVim/pull/818)
- Add lang#julia layer [#814](https://github.com/SpaceVim/SpaceVim/pull/814)
- Add lang#ruby layer [#812](https://github.com/SpaceVim/SpaceVim/pull/812)
- Add buffer # keymap [#811](https://github.com/SpaceVim/SpaceVim/pull/811)
- Add help desc [#798](https://github.com/SpaceVim/SpaceVim/pull/798)
## Bug Fixs
- Fix multiple cursor [#963](https://github.com/SpaceVim/SpaceVim/pull/963)
- fix help info for rg [#950](https://github.com/SpaceVim/SpaceVim/pull/950)
- Fix #908 [#947](https://github.com/SpaceVim/SpaceVim/pull/947)
- Fix Typo [#937](https://github.com/SpaceVim/SpaceVim/pull/937)
- Fixed ALE setting issues [#936](https://github.com/SpaceVim/SpaceVim/pull/936)
- Fix shell layer [#926](https://github.com/SpaceVim/SpaceVim/pull/926)
- Fix a typo in doc/SpaceVim.txt [#905](https://github.com/SpaceVim/SpaceVim/pull/905)
- fix spellcheck msg & some documentations [#878](https://github.com/SpaceVim/SpaceVim/pull/878)
- Fix command documentation [#810](https://github.com/SpaceVim/SpaceVim/pull/810)
- fix typo [#795](https://github.com/SpaceVim/SpaceVim/pull/795)
- Fix mapping to ( [#782](https://github.com/SpaceVim/SpaceVim/pull/782)
## Unmarked PRs
- Installer windows [#965](https://github.com/SpaceVim/SpaceVim/pull/965)
- Cache E117 when load neomake conf [#958](https://github.com/SpaceVim/SpaceVim/pull/958)
- Help describe key bindings [#948](https://github.com/SpaceVim/SpaceVim/pull/948)
- resolve conflicts between tmux layer and edit layer [#945](https://github.com/SpaceVim/SpaceVim/pull/945)
- Update Docs [#943](https://github.com/SpaceVim/SpaceVim/pull/943)
- Improve wording on the README.md [#942](https://github.com/SpaceVim/SpaceVim/pull/942)
- WIP: Update syntax checker layer [#933](https://github.com/SpaceVim/SpaceVim/pull/933)
- WIP: improve Neomake integration [#931](https://github.com/SpaceVim/SpaceVim/pull/931)
- Codecov [#928](https://github.com/SpaceVim/SpaceVim/pull/928)
- Minor fix for Vim help language setting example [#927](https://github.com/SpaceVim/SpaceVim/pull/927)
- Offer the possibility to add custom palette [#922](https://github.com/SpaceVim/SpaceVim/pull/922)
- Update appveyor setting [#918](https://github.com/SpaceVim/SpaceVim/pull/918)
- Update SPC e c command [#916](https://github.com/SpaceVim/SpaceVim/pull/916)
- translate the buffer section to chinese [#915](https://github.com/SpaceVim/SpaceVim/pull/915)
- Display mode in statusline like in some airline theme [#907](https://github.com/SpaceVim/SpaceVim/pull/907)
- tests: use stable covimerage [#901](https://github.com/SpaceVim/SpaceVim/pull/901)
- Made gitcommit completion source changeable [#900](https://github.com/SpaceVim/SpaceVim/pull/900)
- typo: fix typo 'colorcolume' in ui. [#898](https://github.com/SpaceVim/SpaceVim/pull/898)
- Improve test for SpaceVim [#895](https://github.com/SpaceVim/SpaceVim/pull/895)
- rename open browser [#894](https://github.com/SpaceVim/SpaceVim/pull/894)
- update golang keybindings [#893](https://github.com/SpaceVim/SpaceVim/pull/893)
- Test changed vim scripts only [#891](https://github.com/SpaceVim/SpaceVim/pull/891)
- test main vimrc [#890](https://github.com/SpaceVim/SpaceVim/pull/890)
- Update project layout [#889](https://github.com/SpaceVim/SpaceVim/pull/889)
- Edits: Minor spelling and grammar changes [#886](https://github.com/SpaceVim/SpaceVim/pull/886)
- Use v:false if possible [#885](https://github.com/SpaceVim/SpaceVim/pull/885)
- Markdown list item [#883](https://github.com/SpaceVim/SpaceVim/pull/883)
- Update job api [#882](https://github.com/SpaceVim/SpaceVim/pull/882)
- Build improvements [#881](https://github.com/SpaceVim/SpaceVim/pull/881)
- Travis fix [#880](https://github.com/SpaceVim/SpaceVim/pull/880)
- Travis: set -e with script blocks [#879](https://github.com/SpaceVim/SpaceVim/pull/879)
- [WIP] Add Runner for spacevim [#876](https://github.com/SpaceVim/SpaceVim/pull/876)
- [WIP] Improve tests [#872](https://github.com/SpaceVim/SpaceVim/pull/872)
- Update shell layer [#871](https://github.com/SpaceVim/SpaceVim/pull/871)
- Update readme [#869](https://github.com/SpaceVim/SpaceVim/pull/869)
- Update doc for git layer [#867](https://github.com/SpaceVim/SpaceVim/pull/867)
- Update website [#863](https://github.com/SpaceVim/SpaceVim/pull/863)
- `eslint --fix` for javascript [#851](https://github.com/SpaceVim/SpaceVim/pull/851)
- Mod stylesheets [#849](https://github.com/SpaceVim/SpaceVim/pull/849)
- 翻译了窗口操作章节的剩余内容. [#844](https://github.com/SpaceVim/SpaceVim/pull/844)
- Update index [#843](https://github.com/SpaceVim/SpaceVim/pull/843)
- Translate some contents in Chinese documentation [#837](https://github.com/SpaceVim/SpaceVim/pull/837)
- Set img size [#836](https://github.com/SpaceVim/SpaceVim/pull/836)
- Update remark config [#821](https://github.com/SpaceVim/SpaceVim/pull/821)
- Improve markdown layer & Update chinese documentation. [#806](https://github.com/SpaceVim/SpaceVim/pull/806)
- Update php layer [#805](https://github.com/SpaceVim/SpaceVim/pull/805)
- Split lang#json layer [#804](https://github.com/SpaceVim/SpaceVim/pull/804)
- Update autocomplete layer options [#800](https://github.com/SpaceVim/SpaceVim/pull/800)
- Update autocomplete layer [#799](https://github.com/SpaceVim/SpaceVim/pull/799)
- Move context from readme [#797](https://github.com/SpaceVim/SpaceVim/pull/797)
- remove stray chars from documentation [#790](https://github.com/SpaceVim/SpaceVim/pull/790)
- Update statusline for ctrlp buffer [#783](https://github.com/SpaceVim/SpaceVim/pull/783)
- Remove g:delimitMate_matchpairs setting. [#781](https://github.com/SpaceVim/SpaceVim/pull/781)
- Remove plugin that does not exist [#780](https://github.com/SpaceVim/SpaceVim/pull/780)
- Update lang#python layer [#779](https://github.com/SpaceVim/SpaceVim/pull/779)
- plugin: json-vim: update to newer, forked version [#776](https://github.com/SpaceVim/SpaceVim/pull/776)

View File

@ -13,7 +13,7 @@ going on.
<li> <li>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2> <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<span class="post-date">{{ post.date | date_to_string }}</span> <span class="post-date">{{ post.date | date_to_string }}</span>
<h4>{{ post.excerpt | truncatewords: 100 }}</h4> <h3>{{ post.excerpt | truncatewords: 100 }}</h3>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@ -444,6 +444,7 @@ Some elements can be dynamically toggled:
| `SPC t m n` | toggle the cat! (if colors layer is declared in your dotfile)(TODO) | | `SPC t m n` | toggle the cat! (if colors layer is declared in your dotfile)(TODO) |
| `SPC t m p` | toggle the cursor position | | `SPC t m p` | toggle the cursor position |
| `SPC t m t` | toggle the time | | `SPC t m t` | toggle the time |
| `SPC t m d` | toggle the date |
| `SPC t m T` | toggle the mode line itself | | `SPC t m T` | toggle the mode line itself |
| `SPC t m v` | toggle the version control info | | `SPC t m v` | toggle the version control info |

View File

@ -3,60 +3,64 @@ title: "Home"
description: "SpaceVim is a community-driven vim distribution that seeks to provide layer feature." description: "SpaceVim is a community-driven vim distribution that seeks to provide layer feature."
--- ---
# Introduction [![Gitter](https://badges.gitter.im/SpaceVim/SpaceVim.svg)](https://gitter.im/SpaceVim/SpaceVim)
[![Build Status](https://travis-ci.org/SpaceVim/SpaceVim.svg?branch=dev)](https://travis-ci.org/SpaceVim/SpaceVim) [![Build Status](https://travis-ci.org/SpaceVim/SpaceVim.svg?branch=dev)](https://travis-ci.org/SpaceVim/SpaceVim)
![Version](https://img.shields.io/badge/version-0.6.0--dev-FF00CC.svg) [![Build status](https://ci.appveyor.com/api/projects/status/eh3t5oph70abp665/branch/dev?svg=true)](https://ci.appveyor.com/project/wsdjeg/spacevim/branch/dev)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/SpaceVim/SpaceVim/dev/LICENSE) [![codecov](https://codecov.io/gh/SpaceVim/SpaceVim/branch/dev/graph/badge.svg)](https://codecov.io/gh/SpaceVim/SpaceVim/branch/dev)
[![Doc](https://img.shields.io/badge/doc-%3Ah%20SpaceVim-orange.svg?style=flat-square)](https://raw.githubusercontent.com/SpaceVim/SpaceVim/dev/doc/SpaceVim.txt) [![Version](https://img.shields.io/badge/version-0.6.0--dev-FF00CC.svg)](https://github.com/SpaceVim/SpaceVim/releases/tag/0.5.0)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/SpaceVim/SpaceVim.svg)](http://isitmaintained.com/project/SpaceVim/SpaceVim "Average time to resolve an issue") [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/SpaceVim/SpaceVim/blob/dev/LICENSE)
[![Percentage of issues still open](http://isitmaintained.com/badge/open/SpaceVim/SpaceVim.svg)](http://isitmaintained.com/project/SpaceVim/SpaceVim "Percentage of issues still open")
SpaceVim is a community-driven vim distribution that seeks to provide layer feature, especially for neovim. It offers a variety of layers to choose from. To create a suitable vim development environment, you just need to select the required layers. SpaceVim is a community-driven vim distribution that supports vim and Neovim. SpaceVim manages collections of plugins in layers. Layers make it easy for you, the user, to enable a new language or feature by grouping all the related plugins together.
See the [documentation](https://spacevim.org/documentation) or [the list of layers](http://spacevim.org/layers/) for more information. [Hack-SpaceVim](https://github.com/Gabirel/Hack-SpaceVim) will tell you how to hack SpaceVim. Please star the project on github - it is a great way to show your appreciation while providing us motivation to continue working on this project. The extra visibility for the project doesn't hurt either!
![2017-04-29-20 54 49](https://cloud.githubusercontent.com/assets/13142418/25555650/d7d2c07e-2d1e-11e7-975d-646a07b38a62.png) ![welcome-page](https://cloud.githubusercontent.com/assets/13142418/26402270/28ad72b8-40bc-11e7-945e-003f41e057be.png)
See the [documentation](https://spacevim.org/documentation) or [the list of layers](http://spacevim.org/layers/) for more information.
Here is a throughput graph of the repository for the last few weeks:
[![Throughput Graph](https://graphs.waffle.io/SpaceVim/SpaceVim/throughput.svg)](https://waffle.io/SpaceVim/SpaceVim/metrics/throughput)
## Requirements
At a minimum, SpaceVim requires `git` and `wget` to be installed. These tools are needed for downloading plugins and fonts.
If you are new to vim, you should learning about Vim in general, read [vim-galore](https://github.com/mhinz/vim-galore). If you are new to vim, you should learning about Vim in general, read [vim-galore](https://github.com/mhinz/vim-galore).
## Install ## Install
### Linux/Mac ### Linux and macOS
If you are using linux or mac os, it is recommended to use this command to install SpaceVim: ```bash
```sh
curl -sLf https://spacevim.org/install.sh | bash curl -sLf https://spacevim.org/install.sh | bash
``` ```
with this command, SpaceVim will be installed. All the plugins will be installed **automatically** when vim/nvim is run for the first time. After SpaceVim is installed, launch `vim` and SpaceVim will **automatically** install plugins.
For more info about the install script, please check: For more info about the install script, please check:
```sh ```bash
curl -sLf https://spacevim.org/install.sh | bash -s -- -h curl -sLf https://spacevim.org/install.sh | bash -s -- -h
``` ```
### windows support ### Windows
- For vim in windows, please just clone this repo as vimfiles in you Home directory. The easist way is to download [install.cmd](https://spacevim.org/install.cmd) and run it as administrator, or install SpaceVim manually.
by default, when open a cmd, the current dir is your Home directory, run this command in cmd.
make sure you have a backup of your own vimfiles.
```sh
git clone https://github.com/SpaceVim/SpaceVim.git vimfiles
```
- For neovim in windows, please clone this repo as `AppData\Local\nvim` in your home directory.
for more info, please check out [neovim's wiki](https://github.com/neovim/neovim/wiki/Installing-Neovim).
by default, when open a cmd, the current dir is your Home directory, run this command in cmd.
```sh
git clone https://github.com/SpaceVim/SpaceVim.git AppData\Local\nvim
```
## Features ## Features
- **Great documentation:** access documentation in Vim with <kbd>SPC h SPC</kbd>.
![SPC h SPC](https://user-images.githubusercontent.com/13142418/31620230-48b53eea-b2c9-11e7-90d0-b717878875d4.gif)
- **Beautiful GUI:** you'll love the awesome UI and its useful features.
- **Mnemonic key bindings:** all key bindings have mnemonic prefixes.
![mapping guide](https://user-images.githubusercontent.com/13142418/31550099-c8173ff8-b062-11e7-967e-6378a9c3b467.gif)
- **Describe key bindings:** use <kbd>SPC h d k</kbd> to describe key bindings.
![describe key](https://user-images.githubusercontent.com/13142418/32134986-060a3b8a-bc2a-11e7-89a2-3ee4e616bf06.gif)
- **Lazy load plugins:** Lazy-load 90% of plugins with [dein.vim](https://github.com/Shougo/dein.vim)
![UI for dein](https://user-images.githubusercontent.com/13142418/31309093-36c01150-abb3-11e7-836c-3ad406bdd71a.gif)
- **Neovim centric:** Dark powered mode of SpaceVim
## News ## News
[Newsletter #1 - A New Hope](https://spacevim.org/SpaceVim-Newsletter-A-New-Hope/) [Newsletter #1 - A New Hope](https://spacevim.org/SpaceVim-Newsletter-A-New-Hope/)
@ -77,16 +81,12 @@ Contribute code, report bugs and request features at [GitHub](https://github.com
1. What is the project status? 1. What is the project status?
The current stable version is 0.2.0. See the milestones page for development progress and the roadmap for high-level plans. The current stable version is 0.5.0. See the milestones page for development progress and the roadmap for high-level plans.
2. Is SpaceVim trying to turn Vim/Neovim into an IDE? 2. Is SpaceVim trying to turn Vim/Neovim into an IDE?
With layers feature, this [version](<>) of vim distribution to turn vim/neovim into an IDE for many language. With layers feature, this version of vim distribution try to turn vim/neovim into an IDE for many language.
3. Will SpaceVim deprecate Vimscript? 3. Which version of vim/neovim is needed?
No, the custom configration file is written in vim script. vim 7.4/neovim v0.1.7, and `+lua` or `+python3` is needed.
4. Which version of vim/neovim is needed?
vim 7.4/neovim v0.1.7

View File

@ -200,6 +200,44 @@ usage () {
} }
download_font () {
url="https://raw.githubusercontent.com/wsdjeg/DotFiles/master/local/share/fonts/$1"
path="$HOME/.local/share/fonts/$1"
if [[ -f "$path" ]]
then
success "Downloaded $1"
else
info "Downloading $1"
wget -q -O "$path" "$url"
success "Downloaded $1"
fi
}
install_fonts () {
if [[ ! -d "$HOME/.local/share/fonts" ]]; then
mkdir -p $HOME/.local/share/fonts
fi
download_font "DejaVu Sans Mono Bold Oblique for Powerline.ttf"
download_font "DejaVu Sans Mono Bold for Powerline.ttf"
download_font "DejaVu Sans Mono Oblique for Powerline.ttf"
download_font "DejaVu Sans Mono for Powerline.ttf"
download_font "DroidSansMonoForPowerlinePlusNerdFileTypesMono.otf"
download_font "Ubuntu Mono derivative Powerline Nerd Font Complete.ttf"
download_font "WEBDINGS.TTF"
download_font "WINGDNG2.ttf"
download_font "WINGDNG3.ttf"
download_font "devicons.ttf"
download_font "mtextra.ttf"
download_font "symbol.ttf"
download_font "wingding.ttf"
echo -n "Updating font cache... "
fc-cache -fv
mkfontdir "$HOME/.local/share/fonts"
mkfontscale "$HOME/.local/share/fonts"
echo "done"
}
if [ $# -gt 0 ] if [ $# -gt 0 ]
then then
case $1 in case $1 in
@ -247,3 +285,4 @@ fetch_repo
install_vim install_vim
install_neovim install_neovim
install_package_manager install_package_manager
install_fonts