Если в файле (файлах) имеются несовместимые (DOS или UNIX) окончания строк, Vim обнаружит их как Unix, а строки покажут конечный CR (^M
), также в diff.
То, что вы описываете (изменений не обнаружено) происходит, когда один файл последовательно использует dos, а другой последовательно использует окончания строки unix. Затем Vim «абстрагирует» согласованные окончания строк в значении опции :help 'fileformat'
.
Некоторые пользователи помещают значение 'fileformat'
в 'statusline'
и используют это, чтобы заметить расхождение. (Я делаю это с условным отображением только в том случае, если оно отличается от значения по умолчанию для платформы.)
Если вы хотите показать различия в конце строки внутри самого diff, вы можете заставить 'fileformat'
дешифровать при запуске:
$ vimdiff --cmd 'set fileformats=unix' file1 file2
или внутри Vim:
:windo e! ++ff=unix
Довольно неэффективный, но как насчет:
(defun my-ido-find-tag ()
"Find a tag using ido"
(interactive)
(tags-completion-table)
(let (tag-names)
(mapc (lambda (x)
(unless (integerp x)
(push (prin1-to-string x t) tag-names)))
tags-completion-table)
(find-tag (ido-completing-read "Tag: " tag-names))))
Для нахождения определений, я использую команду CEDET semantic-ia-fast-jump, который вместе с gtags от Глобального GNU дает надлежащую и быструю навигацию через исходные файлы.
Конечно, это возможно, это - EMACS. Что нерабочий код делает, который говорит Вам, что не работает?
Мое первое подозрение - то, что это могло бы работать лучше, если бы Вы использовали tags-apropos
(займитесь строкой 1885 в etags.el), видя как etags-tags-apropos
не определяется и так далее.