4

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

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

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

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

2 ответа2

5

По умолчанию не существует сопоставления ярлыков для выполнения того, что вы просили. Полную документацию по редактированию в командном режиме можно найти через :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 извлечет содержимое из командного режима в виде строки. И поместите обратно только содержимое от начала строки на одну позицию впереди позиции курсора. Остальная часть контента будет усечена и, следовательно, удалена.

4

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

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