This blog post дает простой способ использования Vim с svn diff
. К сожалению, Vim не понимает левый файл, поэтому нет подсветки синтаксиса. Каков самый простой/лучший способ решить это?svn diff с vim, но с соответствующим типом файла
ответ
Когда я использую реструктурированный текст в файле с суффиксом .txt, по умолчанию vim не выделяет текст. Поэтому я поставил это в верхней части своего файла:
.. vim: set filetype=rst :
И тогда vim делает все симпатичные выделения синтаксиса.
Попробуйте добавить моделью в первую строку своих файлов, а затем посмотрите, делает ли vim то, что вы хотите, когда выполняете diff.
Кстати, это мой блог, с которым вы связались! Могу ли я получить приз?
Это тоже работает, спасибо Мэтью. Решение, данное «слишком много php», работает, конечно, но я считаю, что это хорошая практика и не зависит от расширения файла. – user400978
быстрый поиск по "vim set filetype" дал мне this link, в котором показано, как сделать эту работу «навсегда», изменив немного .vimrc. Если вы просто застряли с файлом для один раз, и вы знаете свой «правильный» тип файла, вы можете попробовать (с левой стороны файла руки):
:set filetype=XXX
где XXX является соответствующий формат (например, Python, C и т.д.)
взгляд на
:help filteype
может также помочь немного
Боюсь, что нет. Тип файла в левой части будет
Я понимаю, что вы имеете в виду, но я предложил вам «заставить руку vim» понять левую сторону, это другой тип файла. Я сделал это: эхо «время импорта»> 1.py эхо «время импорта»> файле 2.cpp теперь слева от входа, набрав : набор Filetype показывает: Filetype = питона на РИТ это показывает : filetype = cpp , но я могу заставить rhs использовать: : set filetype = python Надеюсь, что это поможет. –
это как если бы vimdiff был вызван следующей командой
vimdiff .svn/text-base/foo.php.svn-base foo.php
, поэтому вы видите, что vim не распознает тип файла lhs как php из-за разного расширения.
Не найдено подходящего решения. Я использую нечто подобное в другом сценарии, но только исправления подсветка синтаксиса:
au BufReadPost *.php.svn-base set syntax=php
Вы также можете попробовать, что:
au FileType *.php.svn-base set filetype=php
, но я не могу проверить, что у меня есть :filetype
отключен. Это должно переписать определение типа файла для файлов .php.svn-base
и сопоставить его с нужным php
. Я проверил, что он переопределяет 'filetype'
и 'syntax'
: :set filetype?
и :set syntax?
производят ожидаемый выход.
Добавьте следующий код ~/.vim/filetype.vim
:
" only load filetypes once if exists("did_load_filetypes") finish endif augroup filetypedetect " when BufRead or BufNewFile event is triggered, pop off the .svn-base extension and " manually restart filetype autocommands autocmd! BufRead *.svn-base execute 'doautocmd filetypedetect BufRead ' . expand('%:r') autocmd! BufNewFile *.svn-base execute 'doautocmd filetypedetect BufNewFile ' . expand('%:r') augroup END
В состоянии комментариев, этот код будет забрать .svn-base
файлы и попытаться выяснить, что Filetype бы без этого расширения на конце.
:help new-filetype :help :doautocmd :help expand()
Работает! Спасибо. – user400978
Основываясь на слишком большом ответе php, это работает даже в том случае, если расширение файла не указано в имени файла svn.Предполагая, что вы запустите vimdiff с СВН-базой в качестве первого аргумента и рабочей копии в качестве второго:
autocmd! BufRead *.svn-base if &diff && argc() == 2 |
\ execute 'doautocmd filetypedetect BufRead '.argv(1) |
\ endif
autocmd! BufNewFile *.svn-base if &diff && argc() == 2 |
\ execute 'doautocmd filetypedetect BufNewFile '.argv(1) |
\ endif
Используя GVim 8.0 as the Diff Viewer for TortoiseSVN 1.9.7 on Windows 10, я обнаружил, что GVim распознает расширение файла PHP правильно и отображается подсветка синтаксиса отлично.
- 1. SVN Diff Раскраска в Vim
- 2. Открытие файла в Vim открывает vim diff?
- 3. svn diff для полного файла?
- 4. SVN Diff двух файлов с разным расширением
- 5. Сделать протокол Swift совместимым с соответствующим типом
- 6. Сравнивая общие перечисления с соответствующим типом
- 7. svn diff: файл с именем двоичный тип
- 8. как сделать svn diff выглядеть как diff?
- 9. svn merge --dry-run Показать svn diff
- 10. Проблема с SVN-diff в Windows
- 11. Почему 'svn diff --diff-cmd = diff' выводит внутренний формат diff?
- 12. SVN Diff Export
- 13. Использование команды svn diff
- 14. using vim for diffs svn
- 15. svn diff в командном файле
- 16. svn diff through perltidy
- 17. Создание файла SVN-diff для каждого измененного файла в редакции
- 18. svn diff summary
- 19. Image diff viewer SVN
- 20. как сделать diff выглядеть как svn diff?
- 21. Создание файла diff с git
- 22. SVN diff показывает изменения, SVN merge не
- 23. Diff two tabs in Vim
- 24. Несогласованный результат команды SVN diff
- 25. Как объявить функцию с конкретным типом возврата, соответствующим протоколу?
- 26. Почему существует разница между «diff» и «svn diff»?
- 27. SVN diff command - ignore BOM
- 28. vim Выполнение команды diff дважды
- 29. Порядок изменения диапазона svn diff
- 30. C# - Открытие выбранного файла с соответствующим приложением
Что такое тип файла в левой части файла? вы можете найти файл синтаксиса для него на vim.org? – michaelmichael
скриншот? или, по крайней мере, имена файлов? – Dummy00001
например: это как если бы vimdiff был вызван с помощью следующей команды vimdiff .svn/текст-основа/foo.php.svn база foo.php так что вы видите, ВИМ не распознает тип файла файла LHS как php из-за разного расширения. – user400978