Команда «перейти в конец последней строки с содержимым в режиме вставки»

344
sundar

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

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

2

3 ответа на вопрос

1
Lieven Keersmaekers

Вы можете использовать с ?\w enterпоследующимA

  • ?\w ищет назад первое слово
  • A переводит вас в режим вставки в последней строке, содержащей контент
Просто и блестяще. Спасибо! Ради потомков я обнаружил, что Ctrl-End также переводит курсор в конец последней строки - но я предпочитаю это решение, так как оно соответствует норме Vim - не сдвигать руку с домашнего ряда. Я добавлю это как `map`ing в мой vimrc, возможно` nnoremap ? \ ШA`. sundar 8 лет назад 1
1
meuh

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

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

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

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

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

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

Я принял ответ Ливена, так как он лучше сочетается с моим стилем работы, но ваш ответ более универсален и дает больше возможностей для обучения для будущих читателей, поэтому большое спасибо за добавление. sundar 8 лет назад 0
0
aparente001

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

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