我尝试在emacs中编写代码。我有很多不同的python项目,除了一个外,它们都有空格缩进。我想检查打开的文件路径是否包含此项目的目录名,并设置选项卡而不是空格,仅用于此目录中的文件。
我试试
(when (string-match "project_name" buffer-file-name)
do sth)
但它不起作用
另外,如果您编写如何设置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))))
答案 0 :(得分:4)
简单回答
(when (string-prefix-p "/home/user/project-path" (buffer-file-name))
;;do sth
)
您可能还需要使用expand-file-name
来获取与buffer-file-name
匹配的完整路径,以便您可以处理"~/project-paht"
之类的内容。
(expand-file-name (buffer-file-name))
您可能还需要通过
nil
来处理buffer-file-name
结果
(or (buffer-file-name) "")
答案 1 :(得分:1)
所有你需要做的检查是:
<tr>
<td><input type="text" size="6" id="position"></td>
<td><input type="text" size="6" id="order"></td>
<td><input type="text" size="6" id="unit"></td>
<td><span onclick="addRow(this);">Add</span><span onclick="deleteRow(this);">Remove</span></td>
</tr>
(when (string-match-p "project_name" (buffer-file-name))
(message "cat"))
是一个函数,buffer-file-name
对字符串匹配