Питер Ринкер дал мне следующую идею:
"My custom text objects (move until one character before word)
nnoremap <silent> [ ?\S\zs\s<cr>
nnoremap <silent> ] /\s\S<cr>
vnoremap <silent> [ ?\S\zs\s<cr>
vnoremap <silent> ] /\s\S<cr>
nnoremap <silent> d[ d?\S\zs\s<cr>
nnoremap <silent> d] d/\s\S<cr>
nnoremap <silent> c[ c?\S\zs\s<cr>
nnoremap <silent> c] c/\s\S<cr>
Значения:
?
- поиск назад
/
- поиск вперед
\S
- поиск не символ пробела
\s
- поиск символа пробела
<cr>
- нажатие клавиши ввода (завершение команды)
\zs
- установка курсора на эту позицию. Найдите «помощь \ zs», для получения более точной информации.
Пример:
nnoremap <silent> [ ?\S\zs\s<cr>
При нажатии кнопки [
выполните поиск в обратном направлении (?
) , для непробельного символа (\S
), за которым следует символ пробела (\s
). Поместите курсор между пробелом и непробельным символом (\zs
). Введите команду (<cr>
).