Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
change.emacs文件';s位置_Emacs_Directory_Initialization_Home Directory - Fatal编程技术网

change.emacs文件';s位置

change.emacs文件';s位置,emacs,directory,initialization,home-directory,Emacs,Directory,Initialization,Home Directory,我正在使用windows xp 我将emacs存储在usb中 我想携带.emacs文件和二进制文件 我试过的是 (setenv “HOME” (format "%s" (getenv "emacspath"))) (setenv “HOME” (format "%s/" (getenv "emacspath"))) 如果我在emacs中评估表达式,它似乎是有效的 在setenv之后,我可以注意到(getenv“home”) 但是我把(setenv“home”(格式“%s/”(getenv“e

我正在使用windows xp

我将emacs存储在usb中

我想携带.emacs文件和二进制文件

我试过的是

(setenv “HOME” (format "%s" (getenv "emacspath")))

(setenv “HOME” (format "%s/" (getenv "emacspath")))
如果我在emacs中评估表达式,它似乎是有效的

setenv
之后,我可以注意到
(getenv“home”)

但是我把
(setenv“home”(格式“%s/”(getenv“emacspath”))放到了

在“site lisp”文件夹中的“site start.el”文件中,启动emacs时会显示
“符号作为变量的值无效:“HOME”


有什么想法吗?

一种更简单的方法-只需在USB驱动器上创建一个批处理文件,您可以在其中设置所需的所有环境变量。然后从批处理中启动emacs.exe

例如,如果要运行SBCL,请将以下行添加到批处理中

rem SBCL_HOME is required for SBCL
set SBCL_HOME=%utils%\Lisp\sbcl\1.0.29
set SBCL_RUN=%SBCL_HOME%\sbcl.exe
set SBCL_OPTIONS=--noinform
将其作为符号链接或简单的elisp pinter使用到您的文件中如何:

(load-file "/path/to/usb/.emacs")

将以下代码添加到文件(例如c:/.emacs)

打开emacs并加载文件c:/.emacs

;; This function must be at begin
(defun zxy-relocate-dotemacs ()
  "Relocate .emacs file"
  (interactive)
  (with-temp-buffer
    (let (print-level print-length)
      (insert (format "(load-file \"%s\")" load-file-name))
      (if (file-exists-p "~/.emacs")
          (message "[zxy] Don't need relocate .emacs file!")
        (progn
          (message "[zxy] Relocate .emacs file.")
          (write-file "~/.emacs"))))))
(zxy-relocate-dotemacs)
;; Your configuration here
然后它将把.emacs重新定位到c:/.emacs

;; This function must be at begin
(defun zxy-relocate-dotemacs ()
  "Relocate .emacs file"
  (interactive)
  (with-temp-buffer
    (let (print-level print-length)
      (insert (format "(load-file \"%s\")" load-file-name))
      (if (file-exists-p "~/.emacs")
          (message "[zxy] Don't need relocate .emacs file!")
        (progn
          (message "[zxy] Relocate .emacs file.")
          (write-file "~/.emacs"))))))
(zxy-relocate-dotemacs)
;; Your configuration here
我在将emacs复制到新计算机时使用此选项

更多信息请访问我的博客Aboot emacs。

不幸的是,Windows使用的是糟糕的驱动器号机制,因此如果您将驱动器放在另一个端口中,这可能会失败。