On Thu, Nov 6, 2025 at 12:31 AM Arash Esbati <[email protected]> wrote:
>
> Hongyi Zhao <[email protected]> writes:
>
> > The most significant advantage I've found is the on-the-fly
> > diagnostics. The server flags issues like undefined labels, incorrect
> > command usage, or missing packages as you type, often before you even
> > think about compiling. This shortens the feedback cycle dramatically
> > and catches small mistakes instantly.
>
> Thanks.  In my workflow, these were non-issues: I added and referenced
> labels/citations exclusively with RefTeX, so there were no undefined
> labels, commands were provided by AUCTeX-completion, and I was happy
> that the editor didn't add any new packages to my file behind my back.
>
> > Modern LSPs also add seamless "go to definition" for labels/citations
> > and richer context-aware autocompletion (e.g., showing abstracts for
> > \cite candidates), which feels very much like a modern IDE.
>
> Check `reftex-view-crossref'.
>
> > Many people now seem to be adopting a hybrid approach:
> >
> > 1. Using LSP for the live error-checking and smart navigation.
> > 2. Still relying on AUCTeX for its superior compilation process (C-c
> > C-c) and the amazing preview-latex feature, which LSP can't replace.
> >
> > It's less of a replacement and more of a powerful enhancement. Just
> > thought I'd share my perspective on how things have evolved recently.
>
> Yes, this seems to the reality now.  Don't get me wrong, I'm not arguing
> against a LSP-server, I think it just didn't fit the way I wrote LaTeX
> files.
>
> Personally, I think the killer feature of AUCTeX (or Emacs in general)
> is bound to M-q.

But in my case, I only found that:

```C-h k M q RET
M-q runs the command fill-paragraph (found in global-map), which is an
interactive native-comp-function in ‘fill.el’.

It is bound to M-q.

(fill-paragraph &optional JUSTIFY REGION)

Inferred type: (function (&optional t t) t)

Fill paragraph at or after point.

If JUSTIFY is non-nil (interactively, with prefix argument), justify as well.
If ‘sentence-end-double-space’ is non-nil, then period followed by one
space does not end a sentence, so don’t break a line there.
The variable ‘fill-column’ controls the width for filling.

If ‘fill-paragraph-function’ is non-nil, we call it (passing our
argument to it), and if it returns non-nil, we simply return its value.

If ‘fill-paragraph-function’ is nil, return the ‘fill-prefix’ used for filling.

The REGION argument is non-nil if called interactively; in that
case, if Transient Mark mode is enabled and the mark is active,
call ‘fill-region’ to fill each of the paragraphs in the active
region, instead of just filling the current paragraph.

  Probably introduced at or before Emacs version 1.1.
```

> Best, Arash

Regards,
Zhao

Reply via email to