1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00

Make a plugin for leaving insert mode

This commit is contained in:
jdhao 2020-12-16 01:33:03 +08:00
parent c3cdad554b
commit eb0c63c175
3 changed files with 1 additions and 33 deletions

View File

@ -145,33 +145,3 @@ function! utils#Get_titlestr() abort
return l:title_str return l:title_str
endfunction endfunction
function! utils#EscapeInsertOrNot() abort
" If k is preceded by j, then remove j and go to normal mode.
let line_text = getline('.')
let cur_ch_idx = utils#CursorCharIdx()
let pre_char = utils#CharAtIdx(line_text, cur_ch_idx-1)
if pre_char ==# 'j'
return "\<BS>\<ESC>"
else
return 'k'
endif
endfunction
function! utils#CharAtIdx(str, idx) abort
" Get char at idx from str. Note that this is based on character index
" instead of the byte index.
return strcharpart(a:str, a:idx, 1)
endfunction
function! utils#CursorCharIdx() abort
" See https://vi.stackexchange.com/a/28144/15292
" A more concise way to get character index under cursor.
let cursor_byte_idx = col('.')
if cursor_byte_idx == 1
return 0
endif
let pre_cursor_text = getline('.')[:col('.')-2]
return strchars(pre_cursor_text)
endfunction

View File

@ -8,9 +8,6 @@ xnoremap ; :
" Quicker way to open command window " Quicker way to open command window
nnoremap q; q: nnoremap q; q:
" Quicker <Esc> in insert mode
inoremap <expr> k utils#EscapeInsertOrNot()
" Turn the word under cursor to upper case " Turn the word under cursor to upper case
inoremap <c-u> <Esc>viwUea inoremap <c-u> <Esc>viwUea

View File

@ -162,6 +162,7 @@ Plug 'tpope/vim-repeat'
" Show the content of register in preview window " Show the content of register in preview window
" Plug 'junegunn/vim-peekaboo' " Plug 'junegunn/vim-peekaboo'
Plug 'jdhao/better-escape.vim'
"}} "}}
"{{ Linting, formating "{{ Linting, formating