this post was submitted on 12 Oct 2023
5 points (100.0% liked)

Emacs

310 readers
2 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

I am a C++ dev. I am now able to follow up symbols or files using LSP,/projectile/ivy/transient aso... but inside one file, I have difficulties going quickly up function by function, or by if/for statement. Do you know a convenient way to do this ? I am interested in any navigation tips as well ! Thanks for your help !

you are viewing a single comment's thread
view the rest of the comments
[–] bananalimecherry@alien.top 2 points 1 year ago (5 children)

You can go to the next/previous function with C-M-a and C-M-e. With evil mode it's ] m and [ m. You can use imenu. You can make keybindings to scroll forwards/backwards several lines at a time.

[–] _Gink0_@alien.top 1 points 1 year ago (2 children)

That one is great !!! What if I want to navigate through statements of the same type ? Like if instructions?

[–] 7890yuiop@alien.top 1 points 1 year ago

I'm not sure what that means, but forward-sexp, backward-sexp, and backward-up-list are good for navigating across and within balanced expressions.

[–] bananalimecherry@alien.top 1 points 1 year ago (2 children)

I don't know any good way to do that.

[–] uita23@alien.top 1 points 1 year ago

Feels like this would be something cool to add to a treesitter mode.

Meanwhile I just C-s if

[–] 00-11@alien.top 1 points 1 year ago

See my reply above. You can use either thing-cmd.el or find-where.el for that. You just need to define "statements of a given type" as a THING or define a predicate that is true for them. Or if their text has some property (even just face from font-locking) then isearch-prop.el will help.

load more comments (2 replies)