                 (when (setq host (plist-get plist :host))
                   (cons (format "%-18s %s" host
                                 (plist-get plist :description))
-                        (list :method method
-                              :user user
-                              :host host
-                              :dir dir
-                              :hops hops
-                              ))))
+                        (list
+                         :method
+                         (plist-get plist :method)
+                         :user
+                         (plist-get plist :user)
+                         :host
+                         (plist-get plist :host)
+                         :dir
+                         (plist-get plist :dir)
+                         :hops hops
+                         ))))
               remotehost-connect-hosts)
       (lambda (left right) (string-lessp (car left) (car right))))
      :test (lambda (x y) (equal (car x) (car y))))))

              :action (lambda (x)
                        (if (consp x)
                            (remotehost-connect--find-file
                             (cdr x) method user dir)
                          (remotehost-connect--find-file
                           x method user dir)))
              :caller 'remotehost-connect
              )))


  (interactive "FFile: ")
  (let ((lines (read-file-into-lines file 'trim))
        (lst '())
        host desc elts user)
    (dolist (line (seq-remove 'string-empty-p lines))
      (setq elts (split-string line))
      (setq host (car elts))
      (setq desc (string-join (cdr elts) " "))
      (unless (char-equal ?# (string-to-char host))
        (if (string-equal host ":user")
            (setq user (car (cdr elts)))
          (if user
              (push `(:host ,host :user ,user :description ,desc) lst)
            (push `(:host ,host :description ,desc) lst)))))
    lst))

(defun remotehost-connect--gather-hosts (method user dir
