這是很容易設置一個文本編輯器中使用空格或製表符與標籤每次按下鍵。但是,我正在處理由我公司的一個大型開發團隊維護的Python代碼,有些代碼使用空格和一些使用標籤。我不能簡單地讓他們都符合對方,因爲:1)它會打破git的怪,2)它會矇混git的差異,以及3)將在下一次其他編輯器擊中他們的tab鍵不可避免地打破建立在的一個文件。是否有文本編輯器會自動確定是否縮進空格或製表符?
相反,我想要一個文本編輯器,它自動確定文件是由空格還是製表符縮進,然後符合現有的佈局。有人知道這樣的事情是否存在?
這是很容易設置一個文本編輯器中使用空格或製表符與標籤每次按下鍵。但是,我正在處理由我公司的一個大型開發團隊維護的Python代碼,有些代碼使用空格和一些使用標籤。我不能簡單地讓他們都符合對方,因爲:1)它會打破git的怪,2)它會矇混git的差異,以及3)將在下一次其他編輯器擊中他們的tab鍵不可避免地打破建立在的一個文件。是否有文本編輯器會自動確定是否縮進空格或製表符?
相反,我想要一個文本編輯器,它自動確定文件是由空格還是製表符縮進,然後符合現有的佈局。有人知道這樣的事情是否存在?
Sublime Text這樣做。
現在就試試看,謝謝。 – 2009-11-09 21:43:28
查看 - >縮進 - >從緩衝區猜測設置 – 2009-11-09 21:48:44
這是迄今爲止我在Windows中使用的最好的文本編輯器。感謝您的建議! – 2009-11-09 21:55:14
我認爲geany(http://www.geany.org/)在首選項中有這個選項,如果你使用linux的話。
你可以在Vim做到這一點。這從codeblog功能展示瞭如何檢測流行格式的文件,並設置您的默認值匹配:
function Kees_settabs()
if len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^\\t"')) > len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^ "'))
set noet ts=8 sw=8
endif
endfunction
autocmd BufReadPost * call Kees_settabs()
就個人而言,我只想去周圍有兩個由四個,給使用選項卡的任何開發者頭上幾乎沒有什麼怪人。
vim可以做你想做的。 vim幾乎可以做任何事情。
下面是VIM定製的Python的一大祕方:http://henry.precheur.org/2008/4/18/Indenting_Python_with_VIM.html
編輯:其實,我只是這個發揮各地,這裏是一個簡單的方法來做到這一點。將這兩行添加到您的vim設置文件中:
filetype on
autocmd FileType python set smarttab expandtab
對於Emacs,有guess-style。
認真考慮設立一個公司範圍內的標準(空格只)。你正在設法解決問題。就像代碼不工作,這是很難排除故障,因爲突然有一些隨機的中頻塊突出....但看起來正確的眼睛和解析器。 – 2009-11-09 21:47:10
我完全同意你的看法,這是我追求的。在此期間,我只需要一個解決方法。 – 2009-11-09 21:50:06
我從來沒有學過Python,但我認爲這將是一個巨大的問題。 Haskell分享了Python有意義的空白的概念,並且如果你的代碼中有選項卡,它的編譯器就會像一個擱淺的鯨魚一樣抖動。 – rtperson 2009-11-09 22:04:33