In this lesson I would like to show how I use emacs to navigate the project code and do typical development tasks.

While Emacs is not just text editor, but is a platform where people can navigate (through) text. In this post I will try to show the code & project naviation tips & tricks.

In short:

  • Projectile & its integration with helm (helm-projectile) and plain access via Vertico.
    • projectile-find-file
  • ag - search in project
    • how to filter by extension (-G)
    • exclude something via !
    • AND condition just by adding more words
    • edit files inline!
  • rgrep is standard interface to grep, but its slow
  • rg - search via deadgrep
  • dired to view/copy files
  • dired-sidebar is a nice sidebar (alternatives - ranger, treemacs, etc)
  • LSP tools. I am using tide for Javascript and lsp-bridge for everything else (but there are several alternatives like eglot)
  • bm - bookmarks and helm-bm
  • org-mode and org-store-link to store links to source code
  • ace-window - navigate via several emacs frames
  • avi-goto-line to show key bindings
  • C-c f d - find-dired to find files, for example -wholename \*/management/commands/\*.py
  • C-z o - helm-occur to show occurencies in current file
  • C-x v g to show annotate (for all backends, git, hg, etc)
  • C-x v l to list file changes