我想写一个ELisp函数,它将: 将当前区域附加到新文件(它已经在ELisp标准库中编写,它被称为写区域),然后在后台打开此文件作为新的buffor,以便稍后编辑它
但我也希望删除当前选定的区域
我想做这样的事情
(defun write-region-delete-and-open(start end filename)
"function takes current region, and writes it to specified file"
(interactive "r\nsFilename: ")
(write-region start end filename t)
(kill-region start end))
但它没有按照我的假设工作。当我切割区域时,它总是在缓冲区中杀死所有区域。我也想用(ido-find-file)选择要写自助餐的文件。我完全不知道如何在后台打开创建的文件。请帮帮我。
答案 0 :(得分:3)
要使用ido-find-file
,请将filename
参数的交互式规范更改为F
。那就是:
(interactive "r\nFFilename: ")
假设您已经使用ido打开其他文件,例如(ido-mode 1)
文件中的.emacs
。
在后台打开文件的功能,我假设您打算立即打开文件,而不是立即显示该文件,称为find-file-noselect
。
我不知道为什么该区域之后的整个缓冲区会被kill-region
的调用杀死;我在使用你的代码时没有看到这种情况。