2009-11-09 30 views
3

這是很容易設置一個文本編輯器中使用空格或製表符與標籤每次按下鍵。但是,我正在處理由我公司的一個大型開發團隊維護的Python代碼,有些代碼使用空格和一些使用標籤。我不能簡單地讓他們都符合對方,因爲:1)它會打破git的怪,2)它會矇混git的差異,以及3)將在下一次其他編輯器擊中他們的tab鍵不可避免地打破建立在的一個文件。是否有文本編輯器會自動確定是否縮進空格或製表符?

相反,我想要一個文本編輯器,它自動確定文件是由空格還是製表符縮進,然後符合現有的佈局。有人知道這樣的事情是否存在?

+4

認真考慮設立一個公司範圍內的標準(空格只)。你正在設法解決問題。就像代碼不工作,這是很難排除故障,因爲突然有一些隨機的中頻塊突出....但看起來正確的眼睛和解析器。 – 2009-11-09 21:47:10

+0

我完全同意你的看法,這是我追求的。在此期間,我只需要一個解決方法。 – 2009-11-09 21:50:06

+0

我從來沒有學過Python,但我認爲這將是一個巨大的問題。 Haskell分享了Python有意義的空白的概念,並且如果你的代碼中有選項卡,它的編譯器就會像一個擱淺的鯨魚一樣抖動。 – rtperson 2009-11-09 22:04:33

回答

5

Sublime Text這樣做。

+0

現在就試試看,謝謝。 – 2009-11-09 21:43:28

+0

查看 - >縮進 - >從緩衝區猜測設置 – 2009-11-09 21:48:44

+0

這是迄今爲止我在Windows中使用的最好的文本編輯器。感謝您的建議! – 2009-11-09 21:55:14

0

TextMate爲Mac做到這一點。

我確定有vim和emacs的腳本。

+0

這對最新的2個版本仍然有效嗎?如果是這樣,它是如何完成的? – kainjow 2016-12-06 23:08:11

+0

我不知道不幸。我在7年前寫了這個答案,一個快速的谷歌搜索向我展示了一些結果,甚至可能表明我的答案是錯誤的,即TextMate不會自動檢測軟標籤。 – 2016-12-09 21:49:05

+1

我確實聯繫了TextMate支持,並且當前的2版本不可能。 – kainjow 2016-12-10 00:29:34

1

我認爲geany(http://www.geany.org/)在首選項中有這個選項,如果你使用linux的話。

+0

它確實有這個選項:http://www.geany.org/manual/current/index.html#indentation謝謝。我一直在爲我的Linux機器尋找一個體面的文本編輯器。 – rtperson 2009-11-09 21:53:33

+1

不錯,現在我們已經爲每個平臺找到了一位編輯。 :) – 2009-11-09 21:53:36

+0

它也有一個Windows安裝程序:http://www.geany.org/Download/Releases – rtperson 2009-11-09 21:56:54

0

你可以在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() 

就個人而言,我只想去周圍有兩個由四個,給使用選項卡的任何開發者頭上幾乎沒有什麼怪人。

0

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 
相關問題