Auto indenting, formatting your code
將你的程式碼自動縮排/美化。
手動縮排程式碼是一個好習慣,但是程式碼一變長,或是一次性刪減很多不同的地方,甚至是幫別人 debug 沒編排好的 code 時,自動縮排快捷鍵就會變得非常方便。以下介紹一些 C/C++ 比較常用的 IDE 中如何使用自動縮排。
如果有自己愛用的 IDE 沒有被列在下面也歡迎告知我們。
Code::Blocks
Settings > Editor... > Keyboard shortcuts > Plugins > Source code formatter (AStyle)
點擊 New shortcut
下面的文字方塊,並按下 Ctrl+Alt+F
當作快捷鍵,之後按 Add
和 OK
.
之後只要按 Ctrl+Alt+F
就可以自動縮排了。
如果你喜歡前大括號不單獨成行,請設定如下:
Settings > Editor... > Source formatter > Style > Bracket style > Java
Dev-C++
按 Ctrl+Shift+A
.
但是因為 Dev-C++ 設計上的 BUG 會讓自動縮排無法順利進行。
所以我們得把 Dev-C++ 設定成用管理者權限執行,設定方法如下
C:\Program Files (x86)\Dev-Cpp
(或 C:\Program Files\Dev-Cpp
) 在 devcpp.exe
上面點右鍵,按 Properties (內容) > Compatibility (相容性) > Run this program as an administrator (以系統管理員的身分執行此程式)
確認打勾後重開 Dev-C++ ,之後快捷鍵就會生效了。
不過這樣做的副作用就是之後開啟 Dev-C++ 時都會跳出一個要求系統管理員權限的視窗,會比較麻煩一點。
如果你喜歡前大括號不單獨成行,請設定如下:
AStyle > Formatting Options... > Options > Bracket style > Java
Atom
全選檔案內容後按 Edit > Lines > Auto Indent
.
設定快捷鍵
在 keymap file (keymap.cson
) 中加入下面幾行。
for Windows:
'atom-text-editor':
'ctrl-alt-l': 'editor:auto-indent'
for Mac:
'atom-text-editor':
'cmd-alt-l': 'editor:auto-indent'
Windows 全選檔案內容後按 Ctrl + Alt + L
.
Mac 全選檔案內容後按 Cmd + Option + L
.
Xcode
全選檔案內容後按 Ctrl + I
.
Visual Studio
在編輯檔案時按 Ctrl + K
後接著按 Ctrl + D
.
Visual Studio Code
on Windows: Shift + Alt + F
.
on Mac: Shift + Option + F
.
on Ubuntu: Ctrl + Shift + I
.
Eclipse
on Windows : Ctrl + Shift + F
on Mac : Cmd + Shift + F
Vim
在 Normal Mode 下打 gg=G
設定快捷鍵
開啟你的 vimrc file (可以用這個指令::e $MYVIMRC
)
在最下面加上以下設定:
nnoremap <F7> mzgg=G`z
之後在 Normal Mode 按 F7
就可以自動縮排了。
進階美化
- 安裝 AStyle
Windows: 下載完把資料夾加進 PATH 環境變數。
Mac:
$ brew install astyle
Ubuntu:$ apt-get install astyle
開啟你的 vimrc file (可以用這個指令::e $MYVIMRC
)
在最下面加上以下設定:
" Need astyle installed
autocmd BufNewFile,BufRead *.c set formatprg=astyle\ -A1xjxVpSNYk1Hm0xwxWO
autocmd BufNewFile,BufRead *.cpp set formatprg=astyle\ -A1xjxVpSNYk1Hm0xwxWO
" Uses mz to mark in register z
nnoremap <F7> mzgggqG`z
如果你喜歡前大括號不單獨成行,就把 A1
改成 A2
.
之後只要開啟 .c
或 .cpp
檔,在 Normal Mode 按 F7
就可以自動縮排了。
有使用到的 AStyle 參數紀錄 (點擊展開)
[My AStyle arguments](https://intuitive-theory.com/notes/my-astyle-arguments/)Emacs
首先先進入 c mode 或 c++ mode.
M-X c-mode
or M-X c++-mode
C-X H
, 以選取整個檔案。
按 Ctrl + Meta + \
自動縮排。
註:Meta
通常代表 Alt
.
References
- AStyle | SourceForge
- Is there any shortcut for CodeBlocks to format the code? | Stack Overflow
- How to auto-indent code in the Atom editor? | Stack Overflow
- How to format code in Xcode? | Stack Overflow
- Default Keyboard Shortcuts in Visual Studio | Visual Studio Docs
- How do you format code in Visual Studio Code (VSCode) | Stack Overflow
- How to auto-format code in Eclipse? | Stack Overflow
- Fix indentation | Vim Tips Wiki
- Auto-formatting a source file in emacs | Stack Overflow