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

Add edit mode

This commit is contained in:
wsdjeg 2018-01-10 22:17:19 +08:00
parent cb90f6fc4f
commit bae59d93f4
2 changed files with 24 additions and 1 deletions

View File

@ -605,7 +605,15 @@ function! SpaceVim#layers#core#statusline#mode(mode)
endfunction
function! SpaceVim#layers#core#statusline#mode_text(mode)
let iedit_mode = get(w:, 'spacevim_iedit_mode', '')
if a:mode == 'n'
if !empty(iedit_mode)
if iedit_mode ==# 'n'
return 'IEDIT-NORMAL '
else
return 'IEDIT-INSERT '
endif
endif
return 'NORMAL '
elseif a:mode == 'i'
return 'INSERT '

View File

@ -93,6 +93,19 @@ function! s:handle_normal(char) abort
let w:spacevim_iedit_mode = s:mode
let w:spacevim_statusline_mode = 'ii'
redrawstatus!
elseif a:char == 97
silent! call s:remove_cursor_highlight()
let s:mode = 'i'
let w:spacevim_iedit_mode = s:mode
let w:spacevim_statusline_mode = 'ii'
let s:symbol_begin = s:symbol_begin . s:symbol_cursor
if !empty(s:symbol_cursor)
noautocmd normal! l
endif
let s:symbol_cursor = matchstr(s:symbol_end, '^.')
let s:symbol_end = substitute(s:symbol_end, '^.', '', 'g')
silent! call s:highlight_cursor()
redrawstatus!
endif
endfunction
@ -102,6 +115,8 @@ function! s:handle_insert(char) abort
let s:mode = 'n'
let w:spacevim_iedit_mode = s:mode
let w:spacevim_statusline_mode = 'in'
silent! call s:highlight_cursor()
redraw!
redrawstatus!
return
elseif a:char == 23
@ -145,7 +160,7 @@ function! s:replace_symbol(symbol) abort
let pos = s:stack[len-1-idx]
let line = getline(pos[0])
let begin = line[:pos[1]]
let end = line[pos[1] + pos[2] - 2:]
let end = line[pos[1] + pos[2]:]
let line = begin . a:symbol . end
call setline(pos[0], line)
let s:stack[len-1-idx][2] = len(a:symbol)