treemacs find-file可以把根目录替换成文件的根目录吗

我的快捷键是这么定义的

    (hardcore/set-leader-keys
        "ft"    'treemacs
        "fB"    'treemacs-bookmark
        "fT"    'treemacs-find-file
        "f M-t" 'treemacs-find-tag
        "pt"    'hardcore/treemacs-project-toggle)

我在dashboard中打开一个文件,然后用fT在treemacs中搜索。显示是这样的 根目录是我home目录。。

我vim里可以打开后可以直接把文件的根目录定位到root去

可以使用 treemacs-add-project 新建一个项目,其根目录为 /

不同的文件岂不是都要这样做不是麻烦了吗

还好,自己常用文件夹使用treemacs-add-project管理,临时文件夹可以使用 treemacs-find-file 在treemacs 中打开

虽然答非所问,不过咱想建议另一种方式。很多 Emacs 党都觉得侧边栏这种东西没啥用又占空间,想快速找文件的话咱推荐下面的方式:

  1. 借助 counsel 插件的 counsel-file-jump 函数。用咱这个函数:
    (defun toki-find-file ()
      (interactive)
      (let ((current-prefix-arg 4))
        (call-interactively 'counsel-file-jump)))
    
    调用的时候会先让你指定路径,默认就是当前文件所在路径,敲一下回车之后就可以在路径下递归搜索文件。
  2. 使用 projectile 或 find-file-in-project,在当前工程内搜索文件,它们都可以自动识别 git/hg 仓库并把它作为当前工程。
1 个赞

图就是treemacs-find-file打开的 。root目录是我的home目录 我想换成文件的根目录

treemacs project file 我用了 识别git/hg的。但是工作有的时候刚开始建文件写。第一次不是git目录的。写完才提交内部gitlab。这样用findfile显示就不友好。。你说的这个我试试 谢谢~

  • treemacs-find-file 可以自己选定 treemacs侧边栏的根目录,
  • treemacs-root-up 可以设定新的根目录为现在根目录的父目录
  • treemacs-root-down 可以设定现在根目录的某个子目录(默认为光标所在处)为新的根目录

但是treemacs-find-file不能自动定位root为这个文件的根目录吧。你看我的图 emacs就是在dashboard打开文件后用的treemacs-find-file root没有自动更换为文件的root目录