Есть ли ярлык для "удаления до начала слова" в режиме командной строки (аналогично dw в обычном режиме)? Я хочу переназначить C-Del к этому. Если нет, может, есть другой способ заставить работать C-Del?

2 ответа2

0

Нашел какой-то путь, немного неловко

function! CtrlDel()
    let str = getcmdline()
    let pos = getcmdpos()
    let len = strlen(str)
    let i = 0
    while pos + i < len && str[pos + i] !~ "\\s"
        let i = i + 1
    endwhile
    while pos + i < len && str[pos + i] =~ "\\s"
        let i = i + 1
    endwhile
    return strpart(str, 0, pos - 1) . strpart(str, pos + i)
endfunction
cnoremap <c-del> <c-\>eCtrlDel()<cr>

Он состоит из функции, которая заменяет всю командную строку, и отображения, которое вызывает эту функцию через Ctrl-\ e.

-1

Я думаю, что dw уже предоставляет то, что вы ищете, для «слов», которые состоят исключительно из «словесных символов» (букв, цифр и подчеркиваний).  Для обработки слов с пунктуацией используйте dW (с большой буквы W).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .