我正在编写一个函数,旨在使当前缓冲区中的任何文件都可写,而不会被提示输入其名称或模式(我总是希望为644).我还希望自动刷新缓冲区以反映其内容现在可写的事实.
我的.emacs文件中有以下代码:
;; from http://www.stokebloke.com/wordpress/2008/04/17/emacs-refresh-f5-key/
(defun refresh-file ()
"Refresh the buffer from the disk (prompt if modified)."
(interactive)
(revert-buffer t (not (buffer-modified-p)) t))
(defun my-make-writable ()
"make file writable to owner"
(interactive)
(chmod buffer-file-name 644)
(refresh-file))
Run Code Online (Sandbox Code Playgroud)
但是,当我执行该功能时,emacs会在迷你缓冲区中显示以下错误消息:
文件名不再可读
这是相当令人不安的.但是,我仍然可以执行"chmod"命令来使文件可读和可写.
我该怎么做才能使我的功能正常工作?
unix权限位以八进制表示,您输入十进制数.
您将文件模式设置为1204(即"粘贴位,用户可以写入,组没有权限,其他人都可以读取).如果您使用(chmod buffer-file-name #o644)或者(chmod buffer-file-name 420)您可能会得到您期望的结果.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |