Emacs: Tab completion of file name appends an extra i:\cygwin
Asked Answered
I

3

3

I am facing some strange behavior with file-name completion in emacs. C-x C-f to find file opens up the minibuffer with i:/cygwin/home/rrajagop/StockScreener/working_copy/master_repo/stock_screener/. Hitting a TAB makes it i:/cygwini:/cygwin/home/rrajagop/StockScreener/working_copy/master_repo/stock_screener/. A couple of interesting things I've noticed:

  1. When the minibuffer opens up, i:/cygwin is greyed out and the path seems to start from /home. A C-a (go to begining of line) takes me to /home and not to i:/cygwin. So it looks like something in emacs is parsing the path to start from /home and not from i:/cygwin.
  2. I checked that TAB runs minibuffer-complete from minibuffer.el (by doing a describe-key for TAB), so it looks like minibuffer-complete is doing some translation for cygwin and appending the extra i:/cygwin.

How would I go about figuring this out/fixing it?

EDIT: Extra Information I tried opening up emacs with -Q and this problem doesn't happen. So this is something I'm loading in my .emacs. This is what I have in my .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*)) )))
Induna answered 10/11, 2009 at 5:27 Comment(3)
Commenting out (require 'setup-cygwin) in the .emacs seems to solve this problem. I also notice that there is a message "loading tramp... done" before the first time this problem occurs.Induna
starks-browning.com/david/tramp seems to say that tramp is not compatible with cygwin-mount. I have cygwin-mount. If I had to choose between tramp and cygwin-mount, I'll take cygwin-mount. So now I need to figure out what is loading tramp and how to remove that - and hope that nothing breaks because of not loading tramp.Induna
After a lot more troubleshooting, I finally decided to just get rid of the tramp related el and elc files from my computer (yes, pretty drastic!) and the problem still occurs! Now I'm thinking this is some kind of interaction between minibuffer-complete and cygwin - because, the problem seems to go away without cygwin-mount and setup-cygwin.Induna
B
0

I think my answer to your previous question on finding the package loading tramp will help you out here.

Brigade answered 10/11, 2009 at 12:49 Comment(1)
Yes, this helped. I finally narrowed it down to file-name-shadow-mode. Disabling the file-name-shadow-mode fixes this problem. More than that I learned a couple of tricks to debug future emacs and elisp problems from you and Friedrich, so thank you!Induna
L
0

you can control tramp by changing the variable tramp-mode.

Side note, you would probably find it useful to use customize to customize emacs. I did a customize-apropos with tramp and it found the tramp group. Clicking there showed all the ways to configure tramp, including turning it off.

Llywellyn answered 10/11, 2009 at 8:27 Comment(0)
B
0

I think my answer to your previous question on finding the package loading tramp will help you out here.

Brigade answered 10/11, 2009 at 12:49 Comment(1)
Yes, this helped. I finally narrowed it down to file-name-shadow-mode. Disabling the file-name-shadow-mode fixes this problem. More than that I learned a couple of tricks to debug future emacs and elisp problems from you and Friedrich, so thank you!Induna
D
0

File-name-shadow-mode greys out the c: in the file name..... so when cygwin-mount-substitute-longest-mount-name runs it does no see the c: and adds another

M-x find-file

c:/home/
> a
c:/home/a            ; but the c: is greyed
> TAB   
c:c:/home/anything  
Delvecchio answered 2/4, 2010 at 17:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.