Подтвердить что ты не робот

Выберите всю строку в VIM, без нового символа строки

Какой самый короткий способ выбрать целую строку без нового символа строки в VIM?

Я знаю, что SHIFT + v выбирает всю строку, но с новым символом строки.


Чтобы сделать это, я перехожу к строке и нажимаю:

  • ^ (помещает курсор в начало строки)
  • v (начинает визуальный выбор)
  • $ (выбирает всю строку, включая новый символ строки)
  • Left (отменяет выбор нового символа строки)

Я также знаю, что могу создать запись, которая делает такую ​​вещь. Но я спрашиваю, есть ли встроенные ярлыки...

4b9b3361

Ответ 1

Нет, нет ничего встроенного, что делает работу. Вот почему люди даже создали плагины для решения этой проблемы.

Вероятно, самым популярным выбором является textobj-line. С помощью textobj-линии вы получаете два новых текстовых объекта, al "строка" и il "внутренняя строка". Тогда,

  • vil выбирает печатаемое содержимое строки (например, ^vg_),
  • val выбирает содержимое всей строки (например, 0v$h).

Оба не включают новую строку в выделение.

Довольно удобный плагин, если вы спросите меня. И он также работает с операторами.


По запросу установка:

  • С простым Vim:
    • Получить последний textobj-user и извлечь его каталоги в ~/.vim.
    • Получите последнюю текстовую строку и извлеките ее директории в ~/.vim.
    • Сгенерировать теги справки :helptags ~/.vim/doc.
  • С помощью диспетчера плагинов (рекомендуется): просто следуйте обычной процедуре установки для своего диспетчера плагинов и не забудьте также установить зависимость textobj-user.

Ответ 2

Да, g_ - это то, что вы ищете. g_ как $, но без символа новой строки в конце.

Используйте 0vg_ или ^vg_, в зависимости от того, хотите ли вы скопировать из начала строки или первого символа в строке соответственно.

Ответ 3

0v$
^v$
0vg_
^vg_
$v0
$v^
g_v0
g_v^

все выполняют работу с различными представлениями о том, что такое строка (от первого столбца или от первого печатного символа, до последнего символа или для последнего печатного символа). Вы можете создать настраиваемое сопоставление, если хотите.

Обратите внимание, что выбор текста часто не нужен в vim.

Ответ 4

Вы все еще можете отображать то, что хотите, например:

nnoremap <leader>v 0v$

Ответ 5

Если вы хотите скопировать строку в буфер, вы можете удалить из позиции курсора в конец строки с помощью D, а затем вернуть изменения с помощью u. Текст будет скопирован в буфер без нового символа строки. Итак, команда:

Du