2

При работе с текстовыми файлами, когда я снова открываю их в Vim для добавления контента, я хочу перейти к концу последней строки контента и перейти в режим вставки. В идеальных условиях простой GA после открытия файла позаботится об этом. К сожалению, у меня есть привычка добавлять несколько новых строк в конце файла, и избавиться от них сложно.

Учитывая это, как проще всего сказать в Vim: «перейти к последней строке файла, в которой есть содержимое, перейти к концу этой строки и перейти в режим вставки»? Я думаю, суть моего вопроса в том, как я могу выразить концепцию «последней строки, в которой есть содержание» Vim?

3 ответа3

1

Если вы хотите всегда перейти к последней непробельной строке файла или файла определенного типа, вы можете вставить autocmd в ~/.vimrc . Например:

:autocmd BufRead *.txt :$;?\S?

Это автоматически переходит в конец файла и выполняет поиск непробельного символа в любом файле, соответствующем шаблону glob *.txt . Затем вы набираете o например, чтобы добавить материал.

Тот же метод можно использовать для удаления пустых строк, которые вы оставляете в конце буферов, когда записываете их обратно в файл, что позволяет избежать проблемы в первую очередь. Например:

:autocmd FileType python autocmd BufWritePre <buffer> :%s/\(\n\s*\)\+\%$//e

Этот пример делает это только для файлов, распознаваемых как тип файла python (например, суффикс .py).

1

Вы могли бы использовать ?\w введите, а затем A

  • ?\w ищет в обратном направлении первое слово
  • A переводит вас в режим вставки в последней строке, содержащей контент
0

Я никогда не работал в Vim, но я предложу немного логики:

  • Перейти к концу файла
  • Резервное копирование одного персонажа
  • Замените символ новой строки пустой строкой - в случае успеха повторите; если нет, мы закончили.

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