【问题标题】:Select other window in Emacs at startup启动时选择 Emacs 中的其他窗口
【发布时间】:2013-08-15 02:10:24
【问题描述】:

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

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

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

我试过了

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

但它没有工作..

【问题讨论】:

    标签: emacs


    【解决方案1】:

    以下似乎有效:输入.emacs

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

    【讨论】:

      【解决方案2】:

      将以下内容放入您的 ~/.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))))))
      

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

      【讨论】:

      • 谢谢,但我无法让它工作。也许是因为我也在使用toggle-window-split 函数,请参阅emacswiki.org/emacs/ToggleWindowSplit
      • 不,也许这毕竟不是问题。我现在从我的.emacs 中删除了toggle-window-split,但它仍然不起作用..(窗口现在水平拆分)跨度>
      • 不应该有所作为。你运行的是什么版本的 Emacs?你能把上面的代码放在一个空文件中,然后用它代替你的常规 .emacs 文件吗?
      • 您收到错误消息,还是根本没有显示任何差异?
      • 我在 Ubuntu 12.04 上使用 GNU Emacs 23.3.1。我现在使用了一个空的.emacs,但它仍然无法正常工作.. 我在 Emacs 消息缓冲区中没有收到任何错误消息..
      【解决方案3】:

      与命令行参数的顺序无关,这种方法会找到最左边、最上面的窗口并选择它。将以下代码放入您的 .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))))
      

      【讨论】:

        【解决方案4】:

        这将保留一个带有“B.txt”的窗口

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

        【讨论】:

          【解决方案5】:

          您是否有理由不想只是在命令行上颠倒文件名的顺序?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-04-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-25
            相关资源
            最近更新 更多