В VIM, как вы удаляете в конец строки в командном режиме:?

В VIM у меня есть ярлык лидера для следующего:

:!git commit % -m 'updated '; git push;                                                                                                                                                                   

Мой курсор попадает на персонажа после обновления, когда я выполняю этот ярлык лидера. Теперь вопрос:

Как удалить до конца этой строки с помощью сочетания клавиш? В bash это будет "CTRL-k", но здесь это не работает. Я просто хочу удалить все после слова "обновлено".

введите описание изображения здесь

2 ответа

Решение

Для того, что вы просили, не существует сопоставления ярлыков по умолчанию. Полную документацию по редактированию командного режима можно найти через :help cmdline-editing, Вы можете просмотреть его, чтобы найти что-нибудь полезное для вас. Но я не думаю, что функция, которую вы просили, заключается в этом.

Я думаю, что стандартный способ редактирования командной строки не требует такой операции. Обычно мы удаляем слово перед курсором <Ctrl-W> без перемещения курсора. Но, конечно, если у вас есть свой собственный способ его редактирования, вы всегда можете изменить поведение vim в свою пользу.

Вы можете получить нужный ярлык, отображая <C-K> к функции, определенной в соответствии с вашим требуемым поведением. Здесь я пишу пример. Вы можете просто вставить следующий код в свой ~/.vimrc, Ресурс файла. И вы можете иметь ярлык, работающий по-своему.

cnoremap <C-k> <C-\>estrpart(getcmdline(),0,getcmdpos()-1)<CR>

Если вы заинтересованы, это вызывает ярлык командного режима по умолчанию (<C-\>e) для оценки {expr} и замены всей командной строки результатом. strpart() является функцией усечения строки, заданной vim.

По вашему <C-k> При нажатии клавиши vim извлекает содержимое из командного режима в виде строки. И вернуть только содержимое от начала строки на одну позицию впереди позиции курсора. Остальная часть контента будет усечена и, следовательно, удалена.

После ввода : чтобы войти в командный режим или после того, как вы вставите свою команду, введите CTRL+f. Ваша история команд появится в новом "окне командной строки". Оказавшись там, вы можете использовать D с той точки, с которой вы хотите начать удаление. Затем просто введите ↩, чтобы выполнить вашу команду.

Другие вопросы по тегам