Emacs Projectile

洋蔥工作室

Emacs Projectile

  • Emacs 有關專案(Project)的套件
  • 專案指的是在某個目錄下的檔案們
  • 支援 git, mercurial, darcs 跟 bazaar 版本控制的專案
  • 支援 lein, maven, sbt, scons, rebar and bundler 專案
  • 也可以手動增加一個 .projectile

Youtube 影片

Projectile 的功能

  • jump to a file in project
  • jump to files at point in project
  • jump to a directory in project
  • jump to a file in a directory
  • jump to a project buffer
  • jump to a test in project
  • toggle between files with same names but different extensions (e.g. .h <-> .c/.cpp, Gemfile <-> Gemfile.lock)
  • toggle between code and its test (e.g. main.service.js <-> main.service.spec.js)
  • jump to recently visited files in the project
  • switch between projects you have worked on
  • kill all project buffers
  • replace in project
  • multi-occur in project buffers
  • grep in project
  • regenerate project etags or gtags (requires ggtags).
  • visit project in dired
  • run make in a project with a single key chord
  • browse dirty version controlled projects

安裝

(use-package projectile
  :ensure t
  :config
  (projectile-mode t)
  (setq projectile-completion-system 'ivy)
  (use-package counsel-projectile
    :ensure t)
  )

主要 keybindings

  • C-c C-p ?
  • C-c C-p D projectile-dired
  • C-c C-p I projectile-ibuffer
  • C-c C-p S projectile-save-project-buffers
  • C-c C-p T projectile-find-test-file
  • C-c C-p V projectile-browse-dirty-projects
  • C-c C-p c projectile-compile-project
  • C-c C-p d projectile-find-dir
  • C-c C-p e projectile-recentf
  • C-c C-p f projectile-find-file
  • C-c C-p p projectile-switch-project
  • C-c C-p s g projectile-grep
  • C-c C-p s r projectile-ripgrep
  • C-c C-p s s projectile-ag