Reply to comment

How To: Set vim for space-tab and automatic indentation

วันนี้เฮี้ยนเกิดอยากเขียนโปรแกรมใน terminal ดูบ้าง จึงลองใช้ vim ดู และผมก็เป็นเช่นเดียวกับ Programmer ทุกคนนั่นคือ ต้องการการย่อหน้า code แบบอัตโนมัติ (Autoindent -- Automatic Indentation) และนอกจากนั้นผมยังต้องการให้แทนที่ tab ด้วย space เนื่องจากไม่ต้องการอ่าน code เด้งไปเด้งมาในกรณีที่ Editor ที่ใช้นั้น ตั้ง tab ไม่เหมือนกัน

และเนื่องจากไม่ได้ใช้กันเป็นประจำ ก็ลืมวิธีกันบ้าง ก็เลยต้องพึ่งพี่กูตามระเบียบ ซึ่งพี่กูก็ไม่ทำให้ผิดหวัง ได้คำตอบดังนี้

สร้าง file .vimrc ไว้ใน home ของตนเอง โดยให้มีเนื้อหาดังนี้

{syntaxhighlighter brush: bash; gutter: false;}
set ai
set expandtab
set shiftwidth=4
set tabstop=4
{/syntaxhighlighter}

โดยความหมายของแต่ละบรรทัดคือ
* set ai คือ Autoindent หรือการย่อหน้าอัตโนมัตินั่นเอง
* set expandtab คือ เปลี่ยน tab ให้เป็น space
* set shiftwidth=4 คือตั้งให้ย่อหน้า 4 space
* set tabstop=4 คือการตั้งความกว้าง tab 4 space (ในกรณีที่ไม่ได้อยู่ต้นบรรทัด -- อันนี้ไม่ชัวร์นะ)

จากนั้นการเรียกใช้ vim ครั้งต่อ ๆ ไปก็จะย่อหน้าและจัด tab ให้ตามความต้องการของผมแล้ว

References
* http://vim.wikia.com/wiki/Converting_tabs_to_spaces
* http://jmcpherson.org/vimrc.html

Reply

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.