ในการลบช่องว่างต่อท้ายทั้งหมด (ในตอนท้ายของแต่ละบรรทัด) คุณสามารถใช้คำสั่ง:
:%s/ \+$//
หากต้องการรวมแท็บให้ใช้\s
แทนการเว้นวรรค
จากบรรทัดคำสั่ง:
$ ex +'%s/\s\+$//e' -cwq file.c
ไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน (ใช้ซ้ำ**/*.*
):
$ ex +'bufdo!%s/\s\+$//e' -cxa *.*
งูหลามวิธี:
:py import vim
:pydo vim.current.buffer[linenr - 1] = vim.current.buffer[linenr - 1].strip()
หรือ:
:py import vim
:py for i, l in enumerate(vim.current.buffer): vim.current.buffer[i] = l.rstrip()
ใช้lstrip()
สำหรับแถบซ้าย (ต่อท้าย) rstrip()
สำหรับแถบขวา (นำหน้า) หรือstrip()
เพื่อลบจากปลายทั้งสอง
นี่คือฟังก์ชั่นที่มีประโยชน์ซึ่งจะลบพื้นที่สีขาวที่ไม่จำเป็นออกจากท้ายบรรทัดซึ่งคุณสามารถเพิ่มลงใน.vimrc
:
" Removes superfluous white space from the end of a line
function! RemoveWhiteSpace()
:%s/\s*$//g
:'^
"`.
endfunction
นอกจากนี้ยังมีปลั๊กอินDeleteTrailingWhitespaceสำหรับสิ่งนั้น
ไฮไลต์ช่องว่างสีขาว
หากต้องการตรวจสอบอีกครั้งว่าช่องว่างต่อท้ายทั้งหมดหายไปให้ใช้:
พิมพ์/ $
เพื่อค้นหา หากมีบางกลุ่มจะเน้นพวกเขาสำหรับคุณ
ใช้สีเพื่อเน้นสี:
:highlight ws ctermbg=red guibg=red
:match ws /\s\+$/
ใช้อักขระที่มองเห็นได้ ( แหล่งที่มา ):
:set encoding=utf-8
:set listchars=trail:·
:set list
ดูเพิ่มเติม: เน้นช่องว่างที่ไม่ต้องการ
หากต้องการไฮไลต์ช่องว่างต่อท้ายตามค่าเริ่มต้นคุณสามารถกำหนดค่า.vimrc
ดังนี้:
highlight ws ctermbg=red guibg=red
match ws /\s\+$/
autocmd BufWinEnter * match ws / \+$/
การลบช่องว่างสีขาวเป็นค่าเริ่มต้น
หากคุณต้องการให้แน่ใจว่าช่องว่างต่อท้ายทั้งหมดในไฟล์ถูกลบโดยอัตโนมัติเมื่อบันทึกคุณอาจเพิ่มคำสั่งต่อไปนี้ใน.vimrc
:
autocmd BufWritePre *.c,*.php :%s/ \+$//ge
ซึ่งไม่แนะนำเนื่องจากจะตัดช่องว่างต่อท้ายออกจากทุกไฟล์ที่ผู้ใช้บันทึก (แม้จะต้องการช่องว่าง)
ดูสิ่งนี้ด้วย: