У меня есть autocmd
в моем .vimrc
:
autocmd FocusLost,BufLeave,BufWritePre *.py :exe "normal! ma" | :%s/\s\+$//e | :exe "normal `a"
Эта команда имеет целью удалить все завершающие пробелы из моего буфера, сохраняя курсор в текущей позиции.
Проблема в том, что когда команда вызывается и какой-то текст выделен, текст заменяется на ma
. Как я могу изменить мою autocmd
декларацию, чтобы:
- Все еще работает, когда какой-то текст выделен
- Сохранить текст без изменений
- Сохранить выделение, если был выбран какой-либо текст
- Сохранить позицию курсора, если текст не был выделен
Примечание: я использую MacVim.