| 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 |