启动时在Emacs中选择其他窗口

时间:2013-08-14 11:00:08

标签: emacs

假设我有两个文本文件A.txtB.txt。我选择使用

从Emacs打开
emacs -no-splash -mm A.txt B.txt

现在框架垂直分成两部分,文件A显示在左侧窗口中,文件B显示在右侧窗口中。但是,Emacs会自动选择文件B.我可以输入C-x oESC-: (other-window 1)将该点移动到其他窗口。但我想自动执行此操作,例如在命令行或.emacs文件中。

我试过

emacs -no-splash -mm --eval `(other-window 1)` A.txt B.txt

但它不起作用..

5 个答案:

答案 0 :(得分:1)

将以下内容放入~/.emacs文件中:

(add-hook 'emacs-startup-hook '(lambda () (select-first-buffer-in-list command-line-args)))

(defun select-first-buffer-in-list (list)
  (let (buffer)
    (while list
      (if (setq buffer (get-file-buffer (car list)))
      (progn (select-window (get-buffer-window buffer))
         (setq list nil))
    (setq list (cdr list))))))

它将检查哪个命令行参数对应于缓冲区。它选择一个窗口显示第一个这样的参数的缓冲区。

答案 1 :(得分:1)

以下似乎有效:输入.emacs

(add-hook 'emacs-startup-hook '(lambda () (other-window 1)))

答案 2 :(得分:0)

独立于命令行参数的顺序,此方法找到最左侧,最上面的窗口并选择它。将以下代码放在.emacs文件中:

(add-hook 'emacs-startup-hook '(lambda () (select-upper-left-window)))

(defun select-upper-left-window ()
  (let (window)
    (while (setq window (window-in-direction 'above nil t))
      (select-window window))
    (while (setq window (window-in-direction 'left nil t))
      (select-window window))))

答案 3 :(得分:0)

这会使单个窗口保持“B.txt”

emacs --find-file A.txt B.txt -Q -eval "(delete-other-windows)"

答案 4 :(得分:0)

您是否有理由不想在命令行中反转文件名的顺序?