Vit*_*huk 2 python emacs elisp
我尝试在emacs中编写代码。我有许多不同的python项目,除了一个项目外,所有项目都有空格缩进。我要检查打开的文件路径是否包含此项目的目录名称,并仅针对此目录中的文件设置选项卡而不是空格。
我尝试
(when (string-match "project_name" buffer-file-name)
do sth)
Run Code Online (Sandbox Code Playgroud)
但这不是工作
另外,如果您编写了如何为python和javascript文件设置标签的选项,将会很有帮助)
UPD
我的工作代码
(add-hook 'python-mode-hook
(lambda()
(setq tab-width 4)
(setq python-indent 4)
(if (string-match-p "project_name" (or (buffer-file-name) ""))
(setq indent-tabs-mode t)
(setq indent-tabs-mode nil))))
Run Code Online (Sandbox Code Playgroud)
简单的答案
(when (string-prefix-p "/home/user/project-path" (buffer-file-name))
;;do sth
)
Run Code Online (Sandbox Code Playgroud)
您可能还需要使用expand-file-name来获取完整的匹配路径,buffer-file-name以便您可以处理"~/project-paht"。
(expand-file-name (buffer-file-name))
Run Code Online (Sandbox Code Playgroud)
您可能还需要注意nil来自buffer-file-name的结果
(or (buffer-file-name) "")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |