fal*_*lse 16 git emacs symlink
在一个目录中,我有一个符号链接到一个git管理的目录(所有在Linux下).每次我想e-dit这样的链接我得到一个对话框问题:
Symbolic link to Git-controlled source file; follow link? (yes or no)
我必须输入y e s ⏎以获取该文件.有一种更简单的方法吗?
理想情况下,声明目录不需要对话.
jpk*_*tta 11
设置vc-follow-symlinks
.你可能想要它nil
(开放链接),但一定要阅读文档因为t
(开放目标)也是明智的.
(setq vc-follow-symlinks nil)
Run Code Online (Sandbox Code Playgroud)
如果您不想全局设置,可以将其设为dir局部变量.
一个有趣的问题。我将所有点文件存储在存储库中,并且一堆符号链接分散在整个文件系统中,因此这对我来说是一个已知问题。
首先,一个半解决方案:
(defalias 'yes-or-no-p 'y-or-n-p)
Run Code Online (Sandbox Code Playgroud)
现在,您无需键入完整的yes
+,只需在中询问的所有情况下Enter键入单个y或字母即可。nyes-or-no
Emacs
现在,一个真正的解决方案:
(defun vc-mode-hook ()
(message buffer-file-name)
(when
(and
(file-exists-p (buffer-file-name))
(stringp buffer-file-name)
(or (string-equal "/home/ja/.fluxbox/keys" buffer-file-name)
(string-equal "<PATH_TO_ANOTHER_FILE>" buffer-file-name))
(setq-local vc-follow-symlinks t)
)))
(add-hook 'find-file-hook 'vc-mode-hook)
Run Code Online (Sandbox Code Playgroud)
在这里,我们创建一个新的钩子,每次调用时都会调用该find-file
钩子,例如使用C-x
C或in 。它首先检查访问的文件是否确实存在于文件系统上
,因为在尚未创建的文件上运行它是没有意义的。接下来,它检查文件名是否已知
,例如,当打开常规文件但
在缓冲区中时,它将返回。最后它检查文件名是否等于使用 提供的字符串之一。如果是,则在本地设置为。您可以
根据需要添加任意多行。在上面的示例中,我
在下一行中添加了另一个文件名的占位符。feDired
file-exists-p
stringp
t
nil
Dired
string-equal
vc-follow-symlinks
t
string-equal
/home/ja/.fluxbox/keys
归档时间: |
|
查看次数: |
353 次 |
最近记录: |