Emacs:文件名的Tab键完成后附加一个i:\ cygwin

时间:2009-11-10 05:27:51

标签: emacs cygwin elisp tab-completion tramp

我在emacs中面临一些奇怪的文件名完成行为。找到文件的C-x C-f用i:/ cygwin / home / rrajagop / StockScreener / working_copy / master_repo / stock_screener /打开迷你缓冲区。点击TAB使其成为i:/ cygwini:/ cygwin / home / rrajagop / StockScreener / working_copy / master_repo / stock_screener /。我注意到了几件有趣的事情:

  1. 当迷你缓冲区打开时,i:/ cygwin灰显,路径似乎从/ home开始。一个C-a(开始行)将我带到/ home而不是i:/ cygwin。因此看起来emacs中的某些内容正在解析从/ home开始而不是从i:/ cygwin开始的路径。
  2. 我检查过TAB从minibuffer.el运行minibuffer-complete(通过为TAB做一个describe-key),所以看起来像miniuffer-complete正在为cygwin做一些翻译并追加额外的i:/ cygwin。
  3. 我将如何解决这个问题/修复它?

    编辑:额外信息 我尝试用-Q打开emacs,但这个问题不会发生。所以这是我在我的.emacs中加载的东西。这就是我的.emacs

    中的内容
    (require 'cl)
    
    ; Needed to see how fast Emacs loads. Loading time is printed at the 
    ; and of the execution of .emacs file.
    (defvar *emacs-load-start* (current-time))
    
    ; I really like this font. I also tried Monaco which you can
    ; see on lot of Railscasts but I couldn't find the one which
    ; supports Serbian Cyrillic and Latin letters.
    (set-default-font "-outline-Courier New-normal-r-normal-normal-19-142-96-96-c-*-iso8859-1")
    
    ;; Don't show that splash screen
    (setq inhibit-startup-message t)
    
    ; This should allegedly speed up Emacs starting by preventing
    ; some requests from the window manager back to the Emacs. Frankly
    ; speaking I didn't notice some speed up but I still keep it:(
    (modify-frame-parameters nil '((wait-for-wm . nil)))
    
    ;Allows syntax highlighting to work, among other things
    (global-font-lock-mode 1)
    
    ; Sets initial window position
    (set-frame-position (selected-frame) 0 0)
    
    ; Sets initial window size to 85 columns and 47 rows
    (set-frame-size (selected-frame) 88 32)
    
    ; Makes last line ends in carriage return
    (setq requre-final-newline t)
    
    ; Sets Ctrl-x / key combination for easy commenting
    ; out of selected lines.
    (global-set-key "\C-x/" 'comment-or-uncomment-region)
    
    ; Allow resizing of the mini-buffer when necessary
    (setq resize-minibuffer-mode t)
    
    ; Auto magically read compressed files
    (auto-compression-mode 1)
    
    ; Set standard indent to 2 rather then 4
    (setq standard-indent 2)
    
    ; This tells Emacs to create backup files.
    (setq make-backup-files t)
    
    ; And this will enable versioning with default values.
    (setq version-control t)
    
    ; Remove annoying message about deleting excess backup of .recentf
    ; which is list of recent files used 
    (setq delete-old-versions t)
    
    ; Finally do not spread backups all over the disk.
    ; Just save all backup files in this directory.
    (setq backup-directory-alist (quote ((".*" . "~/.emacs_backups/"))))
    
    ;; Directory to put various el files.
    (add-to-list 'load-path "~/.emacs.d/includes")
    
    (require 'ascii-table)
    
    ;; Loading collection of generic modes for different languages
    (require 'generic-x)
    
    ;; Recent files
    (require 'recentf)
    (recentf-mode 1)
    
    ;; Loads ruby mode when a ruby file is opened.
    (autoload 'ruby-mode "ruby-mode" "Major mode for editing ruby scripts." t)
    (setq auto-mode-alist (cons '(".rb$" . ruby-mode) auto-mode-alist))
    (setq auto-mode-alist (cons '(".rhtml$" . html-mode) auto-mode-alist))
    (setq auto-mode-alist (cons '(".html.erb$" . html-mode) auto-mode-alist))
    
    ;; Turn on ruby electric (auto completion of parenthesis, etc.)
    (add-hook 'ruby-mode-hook
          (lambda()
            (add-hook 'local-write-file-hooks
                  '(lambda()
                 (save-excursion
                   (untabify (point-min) (point-max))
                   (delete-trailing-whitespace) )))
            (set (make-local-variable 'indent-tabs-mode) 'nil)
            (set (make-local-variable 'tab-width) 2)
            (imenu-add-to-menubar "IMENU")
            (define-key ruby-mode-map "\C-m" 'newline-and-indent)
            (require 'ruby-electric)
            (ruby-electric-mode t) ))
    
    ;; Ruby debugging.
    (add-to-list 'load-path "~/.emacs.d/plugins/rdebug")
    (autoload 'rdebug "rdebug" "Ruby debugging support." t)
    (global-set-key [f9] 'gud-step)
    (global-set-key [f10] 'gud-next)
    (global-set-key [f11] 'gud-cont)
    (global-set-key "\C-c\C-d" 'rdebug)
    
    
    ;; set compile command based on current major mode
    (autoload 'mode-compile "mode-compile"
    "Command to compile current buffer file based on the major mode" t)
    (global-set-key "\C-cc" 'mode-compile)
    (autoload 'mode-compile-kill "mode-compile"
    "Command to kill a compilation launched by `mode-compile'" t)
    (global-set-key "\C-ck" 'mode-compile-kill)
    
    ;; yasnippet - adding code snippet insertion
    (add-to-list 'load-path "~/.emacs.d/plugins/yasnippet")
    (require 'yasnippet) ;; not yasnippet-bundle
    (yas/initialize)
    (yas/load-directory "~/.emacs.d/plugins/yasnippet/snippets")
    
    ;; Use CYGWIN bash
    (require 'setup-cygwin)
    
    ;; Subversion integration via psvn - not gonna use svn anymore
    ;; (require 'psvn)
    
    
    ;; add some elisp tutorials to the info directory
    (let ((info-root (concat usb-drive-letter "cygwin/usr/local/bin/emacs/info/")))
      (setq Info-directory-list (list info-root 
                      (concat info-root "elisp-tutorial-2.04/") 
                      (concat info-root "emacs-lisp-intro-2.14")) ) 
    )
    
    ;; Load time for .emacs - this should be the last line in .emacs for accurate load time
    (message "ido and org-install took: %ds" 
         (destructuring-bind (hi lo ms) (current-time)
           (- (+ hi lo) (+ (first *emacs-load-start*) (second *emacs-load-start*)) )))
    

3 个答案:

答案 0 :(得分:0)

您可以通过更改变量tramp-mode来控制tramp。

旁注,您可能会发现使用customize自定义emacs很有用。 我用customize-apropos做了tramp并找到了tramp组。单击那里显示了配置tramp的所有方法,包括关闭它。

答案 1 :(得分:0)

答案 2 :(得分:0)

文件名阴影模式使文件名中的c:灰显.....所以当运行cygwin-mount-substitute-longest-mount-name时,它看不到c:并添加另一个

M-x查找文件

c:/home/
> a
c:/home/a            ; but the c: is greyed
> TAB   
c:c:/home/anything