![](/img/trans.png)
[英]Open an Emacs buffer when a command tries to open an editor in shell-mode
[英]Emacs shell mode open file in buffer
我的設置:
emacs -nw
) ansi-term
調用) 假設我正在瀏覽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.