mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-03-22 17:05:42 +08:00
Add edit mode
This commit is contained in:
parent
cb90f6fc4f
commit
bae59d93f4
@ -605,7 +605,15 @@ function! SpaceVim#layers#core#statusline#mode(mode)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! SpaceVim#layers#core#statusline#mode_text(mode)
|
function! SpaceVim#layers#core#statusline#mode_text(mode)
|
||||||
|
let iedit_mode = get(w:, 'spacevim_iedit_mode', '')
|
||||||
if a:mode == 'n'
|
if a:mode == 'n'
|
||||||
|
if !empty(iedit_mode)
|
||||||
|
if iedit_mode ==# 'n'
|
||||||
|
return 'IEDIT-NORMAL '
|
||||||
|
else
|
||||||
|
return 'IEDIT-INSERT '
|
||||||
|
endif
|
||||||
|
endif
|
||||||
return 'NORMAL '
|
return 'NORMAL '
|
||||||
elseif a:mode == 'i'
|
elseif a:mode == 'i'
|
||||||
return 'INSERT '
|
return 'INSERT '
|
||||||
|
@ -93,6 +93,19 @@ function! s:handle_normal(char) abort
|
|||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'ii'
|
let w:spacevim_statusline_mode = 'ii'
|
||||||
redrawstatus!
|
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
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@ -102,6 +115,8 @@ function! s:handle_insert(char) abort
|
|||||||
let s:mode = 'n'
|
let s:mode = 'n'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'in'
|
let w:spacevim_statusline_mode = 'in'
|
||||||
|
silent! call s:highlight_cursor()
|
||||||
|
redraw!
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
return
|
return
|
||||||
elseif a:char == 23
|
elseif a:char == 23
|
||||||
@ -145,7 +160,7 @@ function! s:replace_symbol(symbol) abort
|
|||||||
let pos = s:stack[len-1-idx]
|
let pos = s:stack[len-1-idx]
|
||||||
let line = getline(pos[0])
|
let line = getline(pos[0])
|
||||||
let begin = line[:pos[1]]
|
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
|
let line = begin . a:symbol . end
|
||||||
call setline(pos[0], line)
|
call setline(pos[0], line)
|
||||||
let s:stack[len-1-idx][2] = len(a:symbol)
|
let s:stack[len-1-idx][2] = len(a:symbol)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user