簡體   English   中英

重新格式化Python文件以具有4個空格縮進

[英]Reformat a Python file to have 4 space indentations

我正在編輯一個Python文件,它使用兩個空格進行編程縮進 - 我更喜歡4個空格。 在我的.vimrc中,我有以下與縮進相關的設置:

set tabstop=4                     "Indentation levels every four columns
set expandtab                     "Convert all tabs typed to spaces
set shiftwidth=4                  "Indent/outdent by four columns
set softtabstop=4

如何讓Vim將所有現有的2個空格縮進轉換為4個空格縮進?

換一種說法:

if something:
  dothis()

if something:
    dothis()

當我嘗試gg = G.

def check():
  for a in list:
    for  b in list2:
      check(a, b)
      while (len > MAX) :
        poll()

  while(len(thelist) > 0) :
    poll()  

  return results

成為

def check():
    for a in list:
    for  b in list2:
    check(a, b)
    while (len > MAX) : 
        poll()

        while(len(thelist) > 0) :
            poll()

            return results

為了使每行開頭的空格數加倍(並且僅在開頭):

:%s/^\s*/&&/g

&替換模式是匹配模式。

可能它對您沒有任何副作用。

gg=G是重新縮進文件中所有內容的命令。 如果你有其他可以重新縮進的元素,vim也會縮進這些元素,這並不能總是產生預期的效果。 如果丑陋,你必須手動清理它們。

或者,您可以使用>命令縮進,並使用范圍手動有效地瀏覽文件。 例如, 99>k會將光標下方的99行縮進一級。

我發現重新編寫的腳本http://pypi.python.org/pypi/Reindent/0.1.0對我很有用。 不純粹的vim,但真的很容易!

安裝完成后,您可以在vim中使用它

:%! reindent

(即通過reindent程序管理整個緩沖區)並完成。

從命令行,它可用於重新加載多個文件(例如,目錄中的所有文件,甚至遞歸到目錄樹中)。

嘗試以下替換命令:

:%s/  /    /g

(澄清一下:第一個和第二個'/'之間有兩個空格,第二個和第三個'/'有四個空格。)

處理空白問題時,一個有用的命令也是set list命令,它將直觀地顯示所有空格。 使用set nolist取消設置。

重新格式化Python,修復許多其他問題以及使其符合PEP8的最佳方法是使用autopep8 看到這個相關的問題 所以在你在vim中安裝autopep8(例如pip install autopep8 )之后你會:

:%! autopep8 -

還有一個vim-autopep8插件,可以讓事情變得更簡單。

vim插件vim- autoformat 自動將格式化程序autopep8集成到vim中(如果已安裝)。 您可以使用單個按鍵格式化整個文件或可視選擇的零件。

更重要的是,vim-autoformat會將.vimrc的相關設置考慮在內,例如,如果有的話

set shiftwidth=4

.vimrc ,它會將此信息傳遞給autopep8。

你有沒有嘗試過?

:雷泰

我現在不在Vim的機器前面所以我無法驗證這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM