This blog post給出了一個簡單的方法來使用Vim與svn diff
。不幸的是,Vim不理解左側的文件類型,所以沒有語法高亮。解決這個問題最簡單/最好的方法是什麼?svn與vim的差異,但與正確的文件類型
回答
當我在帶有.txt後綴的文件中使用重構文本時,默認情況下,vim不會突出顯示文本。所以我把它放在我的文件頂部:
.. vim: set filetype=rst :
然後vim做所有可愛的語法突出顯示。
嘗試添加一個模式行到你的文件的第一行,然後看看當你做差異時vim是否做你想要的。
順便說一下,這是我的博客鏈接到!我可以得到獎品嗎?
這也適用,謝謝馬修。 當然,「太多的PHP」給出的解決方案的作品,但我認爲這是一個很好的做法,是獨立於文件擴展名。 – user400978 2010-07-27 16:01:39
快速搜索「vim set filetype」給了我this link,它告訴你如何通過改變.vimrc來「永遠」做這件事。 如果你只是堅持一次一個文件,你知道它的「正確」的文件類型,你可以嘗試(從左側文件):
:set filetype=XXX
其中XXX是適當的格式(如蟒蛇,c等)
看看
:help filteype
也可能有助於有點
恐怕不是。左側文件的文件類型將是
我明白你的意思了,但我建議你「強迫vim的手」理解左手邊是不同的文件類型。 我這樣做: 回聲「導入時間」> 1.py 回聲「導入時間」> 2.cpp 現在左手邊鍵入 :設置文件類型 顯示: 文件類型=蟒蛇 在RHS它顯示: filetype = cpp 但我可以通過使用以下命令強制使用rhs: :set filetype = python 希望有所幫助。 – 2010-07-26 14:22:53
就好像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
文件,並試圖找出文件類型會是什麼,而不在結束該擴展。
:help new-filetype :help :doautocmd :help expand()
工程!謝謝。 – user400978 2010-07-27 16:02:46
建立在php的答案太多的情況下,即使文件擴展名不在svn文件名中,也能工作。假設你使用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. 使用vim作爲svn的差異
- 2. 某些文件類型的Svn塊差異
- 3. 大文件的Eclipse差異顯示不正確的差異
- 4. Java與MySQL:浮點類型差異
- 5. 不要與SVN進行差異合併
- 6. Phabricator中的SVN原始差異文件
- 7. 差異與不同的make文件
- 8. Mpegts與ts文件之和的差異
- 9. pandas read_table與read_csv的性能差異與from_csv與read_excel的差異?
- 10. 類型的差異
- 11. 應用程序與System.FormatException異常(不正確的輸入類型?)
- 12. 調用與正確的派生類型
- 13. 差異與 '-keep類A·B ** {}'
- 14. 類型差異
- 15. 類型差異
- 16. Windows與Linux的差異 - 差異
- 17. 我如何正確設置爲* .txt文件的文件類型TXT在vim
- 18. 與文件類型
- 19. SVN ubuntu查看文件差異歷史
- 20. 視覺差異軟件與svn 1.7兼容mac osx
- 21. 差異與XXD
- 22. 差異與WEC7
- 23. 差異與flattrs_user_count
- 24. 差異與PROMT
- 25. 差異與[XmlInclude]
- 26. 差異與JavaScript
- 27. SQL與差異
- 28. 差異與attr_accessible
- 29. 差異與imsave
- 30. 的FreeBSD與Linux的差異
左側文件的文件類型是什麼?你能在vim.org找到它的語法文件嗎? – michaelmichael 2010-07-24 14:41:50
截圖?或者至少是文件名? – Dummy00001 2010-07-24 23:50:41
如: 就好像Vimdiff可以用下面的命令 方面Vimdiff的.svn /文基/ foo.php.svn基foo.php 所以你看調用,VIM沒有認識到LHS文件的文件類型因爲不同的擴展名。 – user400978 2010-07-25 14:57:42