File plugin/emacscommandline.vim changed (mode: 100644) (index 4b5aec9..e9abd79) |
... |
... |
cnoremap <Del> <C-\>e<SID>DeleteChar()<CR> |
63 |
63 |
cmap <C-D> <Del> |
cmap <C-D> <Del> |
64 |
64 |
function! <SID>DeleteChar() |
function! <SID>DeleteChar() |
65 |
65 |
call <SID>saveUndoHistory(getcmdline(), getcmdpos()) |
call <SID>saveUndoHistory(getcmdline(), getcmdpos()) |
66 |
|
let l:cmd = getcmdline() |
|
67 |
|
let l:rem = strpart(l:cmd, getcmdpos() - 1, 1) |
|
|
66 |
|
let l:cmd = getcmdline() |
|
67 |
|
" Get length of character to be deleted (in bytes) |
|
68 |
|
let l:charlen = strlen(substitute(strpart(l:cmd, getcmdpos() - 1), '^\(.\).*', '\1', '')) |
|
69 |
|
let l:rem = strpart(l:cmd, getcmdpos() - 1, l:charlen) |
68 |
70 |
if ('' != l:rem) |
if ('' != l:rem) |
69 |
71 |
let @c = l:rem |
let @c = l:rem |
70 |
72 |
endif |
endif |
71 |
|
let l:ret = strpart(l:cmd, 0, getcmdpos() - 1) . strpart(l:cmd, getcmdpos()) |
|
|
73 |
|
let l:ret = strpart(l:cmd, 0, getcmdpos() - 1) . strpart(l:cmd, getcmdpos() + l:charlen - 1) |
72 |
74 |
call <SID>saveUndoHistory(l:ret, getcmdpos()) |
call <SID>saveUndoHistory(l:ret, getcmdpos()) |
73 |
75 |
return l:ret |
return l:ret |
74 |
76 |
endfunction |
endfunction |
|
... |
... |
function! <SID>BackwardDeleteChar() |
79 |
81 |
if (getcmdpos() < 2) |
if (getcmdpos() < 2) |
80 |
82 |
return getcmdline() |
return getcmdline() |
81 |
83 |
endif |
endif |
82 |
|
let l:cmd = getcmdline() |
|
83 |
|
let l:rem = strpart(l:cmd, getcmdpos() - 2, 1) |
|
84 |
|
let @c = l:rem |
|
85 |
|
let l:pos = getcmdpos() - 1 |
|
86 |
|
let l:ret = strpart(l:cmd, 0, getcmdpos() - 2) . strpart(l:cmd, getcmdpos() - 1) |
|
|
84 |
|
let l:cmd = getcmdline() |
|
85 |
|
" Get length of character to be deleted (in bytes) |
|
86 |
|
let l:charlen = strlen(substitute(strpart(l:cmd, 0, getcmdpos() - 1), '.*\(.\)$', '\1', '')) |
|
87 |
|
let l:pos = getcmdpos() - l:charlen |
|
88 |
|
let l:rem = strpart(l:cmd, getcmdpos() - l:charlen - 1, l:charlen) |
|
89 |
|
let @c = l:rem |
|
90 |
|
let l:ret = strpart(l:cmd, 0, l:pos - 1) . strpart(l:cmd, getcmdpos() - 1) |
87 |
91 |
call <SID>saveUndoHistory(l:ret, l:pos) |
call <SID>saveUndoHistory(l:ret, l:pos) |
88 |
92 |
call setcmdpos(l:pos) |
call setcmdpos(l:pos) |
89 |
93 |
return l:ret |
return l:ret |