Emacs中与vim的vertsplit (vs)相对应的命令是什么?

3

当我已经打开了一个文件,想要打开另外一个文件,并且让它们在同一个窗口内纵向分屏。在vim中,可以使用命令:vs 文件名实现。在emacs中,我认为使用的是以下命令:C-X 3, C-X o, C-X C-F, 文件名。我们能不能缩短这个过程呢?

2个回答

5

C-h f find-file-other-window RET

这个命令默认情况下绑定到C-x 4 f,但是你可以使用global-set-key将其重新映射到C-x f


2
find-file 的帮助页面可能应该提到相关函数。另外,记住 C-h f find--file TAB TAB 可以自动完成所有可能的匹配,并且可以轻松查找与这些单词相关的内容。 - pmr

0

我认为仅使用find-file-other-window并不完全符合您的要求。它使用display-buffer,这不仅是垂直分割,而且尝试找到一个显示新缓冲区的位置。您可以像这样做:

(defun find-file-split-horizontally()
  (interactive)
  (flet                                 ; temporary change
                                        ; display-buffer function to
                                        ; our needs
    ((display-buffer (buffer-or-name &optional not-this-window frame)
       (select-window (split-window-horizontally)) ; select newly created window
       (switch-to-buffer buffer-or-name)))
(call-interactively 'find-file-other-window)))

(defun switch-to-buffer-split-horizontally()
  (interactive)
  (flet
    ((display-buffer (buffer-or-name &optional not-this-window frame)
       (select-window (split-window-horizontally))
       (switch-to-buffer buffer-or-name)))
(call-interactively
  ;; use only one of these
  'ido-switch-buffer-other-window
  ;;'switch-to-buffer-other-window
  )))

这将始终尝试在水平方向上分割您当前的缓冲区。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接