The best practice mentioned in the title is [the one suggested by Uri](https://stackoverflow.com/questions/193298/best-practices-in-latex/196724#196724):

> 
> When writing paragraphs, start each
>  sentence at the beginning of a line,
>  and if it spills over, each subsequent
>  line is tabbed.
> 
> 
> 

I use gVim with [Vim-LaTeX](http://vim-latex.sourceforge.net/), which comes with an [`indent/tex.vim`](https://github.com/vim-scripts/LaTeX-Suite-aka-Vim-LaTeX/blob/master/indent/tex.vim) file, to edit LaTeX files. The way I currently implement the practice mentioned above is as follows:

1. I `:set textwidth=79` to automatically break lines before they become too long.
2. I manually hit `Enter` after I finish inserting each sentence.
3. If I'm done with revising and editing a sentence, I manually shift any spillovers using `>``>`, prefixing it with a count if necessary.

Occasionally, that last step will make one or more spillovers go over the maximum line width. In this case, I

1. `g``q``q` the faulty line.
2. `J` my way through to the end of the sentence.
3. repeat steps 1 and 2 as necessary.

As you can imagine, this can become tedious. **Isn't there a more efficient way to achieve the same result?** Ultimately, I want to be able to write the sentences without worrying about their format, and then use `g``q``a``p`, or `g``q``i``p`, to automatically produce the result that I currently produce manually.

To do that, I suspect that I will need to write a `formatexpr` of my own, but I'm not sure how to proceed. I have found a number of plugins, *[Latex Text Formatter](http://www.vim.org/scripts/script.php?script_id=2187)* and *[Text (Especially LaTeX) Formatter](http://www.vim.org/scripts/script.php?script_id=2307)*, and a [tip](http://vim.wikia.com/wiki/Formatting_paragraphs_in_LaTeX:_an_%22environment-aware_gqap%22), but none of them seem to suit my needs, and I'm not sure how to modify them to do so.