如何获得dirtrack模式,有色,多线工作的提示
我用下面的提示对我的Emacs的外壳:如何获得dirtrack模式,有色,多线工作的提示
PS1='\n\[\e[33m\]\w\033[36m\]$(parse_git_branch)\[\033[00m\]\n$ '
输出看起来是这样的:
我试着使用正则表达式"(^[^\\(]*)"
来匹配路径并将其设置在dirtrack-list中:
(setq-default dirtrack-list '("(^[^\\(]*)" 1 1))
但由于颜色,外壳永远不会匹配(所以它不能跟踪我的cwd)。是否可以扩展我的正则表达式以包含颜色?
包括@ tripleee的正则表达式的作品:
(setq-default dirtrack-list '("\\s-\\(\033\\[[0-9]+m\\)*\\([^\033\\(]+\\)" 2 1))
但现在当我cd
我随机得到以下错误在*Warnings*
缓冲区:
Warning (emacs):
/does not exist
问题来自rvm
部分。当您在该特定存储库中使用cd
时,它会自动吐出一行,告诉您它正在使用gemset。正则表达式不足以消除这种误报。我相信下面的正则表达式应该可以工作:"\\s-\\(\033\\[[0-9]+m\\)\\([^\033\\(]+\\)"
。
试着这么做"^\\(\033\\[[0-9]+m\\)*\\([^\033\\(]+\\)"
和抢第二个捕获组而不是第一个。
tracking.el
什么也没有引发警告。我用下面的.emacs
,试图重现该问题,并没有什么错:
(add-hook 'shell-mode-hook
(lambda()
(shell-dirtrack-mode -1)
(dirtrack-mode 1)))
(add-hook 'dirtrack-directory-change-hook
(lambda()
(message default-directory)))
(setq-default dirtrack-list '("\\s-\\(\033\\[[0-9]+m\\)*\\([^\033\\(]+\\)" 2 1))
什么操作系统和您使用的是什么版本的Emacs的?
我在Mac OS 10.8.3上使用Emacs 23.3.50(9.0)。我创建了一个小视频,我认为这个视频最能说明问题:https://www.youtube.com/watch?v=GsVXdAM93L8 – 2013-05-01 04:48:25
谢谢,这工作,但现在我随机得到: '警告(Emacs的):目录 /不exist' 在'*警告*'缓冲区。如果我reverx正则表达式一切正常,任何想法? – 2013-04-28 14:32:05