1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-04-14 23:49:19 +08:00

fix(prompt): fix ctrl-r mode

`"\<bs>" =~# '[a-zA-Z0-9"+:/]'` return 1
`eval('@' . "\<bs>")` cause E488
This commit is contained in:
wsdjeg 2022-04-22 19:13:11 +08:00
parent faf0a6b494
commit ae6ecf01cf

View File

@ -81,13 +81,18 @@ func! s:self._handle_input(...) abort
call call(self._function_key[char], [])
continue
endif
if self._c_r_mode ==# 1 && char =~# '[a-zA-Z0-9"+:/]'
let reg = '@' . char
let paste = get(split(eval(reg), "\n"), 0, '')
let self._prompt.begin = self._prompt.begin . paste
let self._prompt.cursor = matchstr(self._prompt.end, '.$')
let self._c_r_mode = 0
call self._build_prompt()
if self._c_r_mode ==# 1
if char =~# '^[a-zA-Z0-9"+:/]$'
let reg = '@' . char
let paste = get(split(eval(reg), "\n"), 0, '')
let self._prompt.begin = self._prompt.begin . paste
let self._prompt.cursor = matchstr(self._prompt.end, '.$')
let self._c_r_mode = 0
call self._build_prompt()
else
let self._c_r_mode = 0
continue
endif
elseif char ==# "\<C-r>"
let self._c_r_mode = 1
call timer_start(2000, self._c_r_mode_off)