繁体   English   中英

Emacs shell模式在缓冲区中打开文件

[英]Emacs shell mode open file in buffer

我的设置:

  • Emacs终端模式( emacs -nw
  • 在它里面,使用shell模式(用Mx ansi-term调用)
  • 在这个shell中,用ssh连接到远程服务器

假设我正在浏览shell中的远程服务器并找到我想要编辑的文件。 是否有命令将其作为并行缓冲区/窗口打开?

我知道从shell打开文件的唯一方法是再次执行emacs -nw ,这不太方便,因为a)我不保持shell打开,b)它实际上是一个不同的Emacs会话,例如“yank缓冲区”是不同的。

编辑:如果有一个不同的/更好的方式来使用Emacs的远程服务器,我只是感兴趣; 这就是我想要做的。

最好使用tramp。

我有这个快捷方式(我用smex称它):

(defun connect-remote ()
  (interactive)
  (dired "/user@domain.com:/"))

这将在遥控器上打开一个直接缓冲区。 你只需将它用作任何直接缓冲区。

我有一个函数从dired打开一段时间,但我刚刚从tramp dired缓冲区添加了一个ssh选项:

(defun dired-open-term ()
  "Open an `ansi-term' that corresponds to current directory."
  (interactive)
  (let ((current-dir (dired-current-directory)))
    (term-send-string
     (terminal)
     (if (file-remote-p current-dir)
         (let ((v (tramp-dissect-file-name current-dir t)))
           (format "ssh %s@%s\n"
                   (aref v 1) (aref v 2)))
       (format "cd '%s'\n" current-dir)))))

(defun terminal ()
  "Switch to terminal. Launch if nonexistent."
  (interactive)
  (if (get-buffer "*terminal*")
      (switch-to-buffer "*terminal*")
    (term "/bin/bash")))

这是我使用的快捷方式:

(define-key dired-mode-map (kbd "`") 'dired-open-term)

您可以在原始emacs会话中使用tramp来使用dired通过ssh浏览远程服务器。 然后,您打开的任何远程文件都会在本地emacs会话中打开。

如果您希望避免使用dired并希望使用shell进行浏览,则可以将远程位置(/ name @ host:/ path / from / pwd)添加到文件名中。 您可以使用功能自动执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM