LINUX.ORG.RU

Быстрая смена директорий

 ,


0

1

Давно хожу вокруг и до окола в этой теме. Попробовал bookmarks, bookmarks+ - Мне нужно быстрая навигация по проектам. Для этого достаточно сделать выставить default-directory

попробовал это сделать через helm-projectile-switch-project. Там вроде как есть опция

(setq projectile-switch-project-action 'some)

По дефолту стоит

(setq helm-projectile-find-file 'projectile-switch-project-action)

Но дело в том, что я не хочу открывать файл проекта. Я хочу только открыть директорию проекта. А дальше искать helm’ом файлы в проекте.

Да, это не только меня интересует, но и других людей. Но ответа я так и не нашел

https://emacs.stackexchange.com/questions/9608/can-i-make-the-projectile-chosen-project-sticky-and-not-follow-the-current-buffe

https://emacs.stackexchange.com/questions/59423/can-i-make-projectile-open-a-default-file-when-i-switch-to-a-project

По этому гайду попробовал сделать

(defun set-main-project (&optional dir)
  "Set the projectile main project based on the current buffer.
When called with argument DIR, make that main project instead."
  (interactive)
  (if dir
      (setq projectile-main-project dir)
      (let ((current-project))
        (let ((projectile-main-project nil))
          (setq current-project (projectile-project-root)))
        (setq projectile-main-project current-project))))

(setq projectile-project-action 'set-main-project)
(setq projectile-switch-project-action 'set-main-project)

У меня после смены проекта в default-directory остается старый путь(т.е не меняется)

projectile-switch-project ведет себя так же. Такое ощущение, что projectile после отработки функции, которая указана в параметре переменной projectile-project-action, устанавливает старый default-directory

★★★★

Мне нужно быстрая навигация по проектам

не хочу открывать файл проекта

ЯННП. Что мешает открыть прожектайлом директорию в диреде и занавигироваться там до посинения?

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Я не хочу навигироваться в проекте dired’ом. Я хочу там навигироваться helm-projectile-find-file-dwim. А открывать какой-то файл в проекте, чтобы потом его закрыть - это не очень хорошая идея

bryak ★★★★ ()
Ответ на: комментарий от bryak

Так вот я и не пойму чего ты хочешь? При переключении проекта и так происходит навигация по проекту в хелм. Если тебе только посмотреть, ну посмотри, ничего не открывай. Или открой директорию проекта, вместо файла (также через перечключение в хелм) и там уже ползай.

PS: я, когда нужно работать с несколькими проектами, просто открываю отдельный фрейм на проект.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от no-such-file

Как вариант конечно да, можно сделать

(setq projectile-project-action 'helm-projectile-find-file-dwiw)
(setq projectile-switch-project-action 'helm-projectile-find-file-dwim)

Но хотелось бы просто переходить в директорию с проектом и всё. После projectile-switch-project или helm-projectile-switch-project, я просто хочу, чтобы emacs сделал (setq default-directory <path_project>). И всё! Больше ничего не хочу. По первым двум ссылках аналогичные хотелки у людей

bryak ★★★★ ()

как по мне, было бы удобно что-то типа `helm-cdpath-list` — просто чтобы показывал все варианты из `$CDPATH`. Сейчас погуглил, ничего такого не попалось, но я думаю самому можно по-быстрому набросать.

zarkone ★★ ()