คุณจะเปลี่ยนแท็บเป็นช่องว่างในกลุ่มได้อย่างไร?

เวลาออก: 2022-09-24

มีสองสามวิธีในการทำเช่นนี้วิธีที่ง่ายที่สุดคือการใช้ตัวเลือกบรรทัดคำสั่ง :set tabstop=4การดำเนินการนี้จะเปลี่ยนแท็บทั้งหมดในเอกสารของคุณเป็นช่องว่าง อีกวิธีหนึ่งคือการใช้ตัวเลือกบรรทัดคำสั่ง :tabeditซึ่งจะเป็นการเปิดหน้าต่างแก้ไขแท็บซึ่งคุณสามารถพิมพ์จำนวนช่องว่างที่คุณต้องการแปลงแต่ละแท็บเป็น สุดท้าย คุณสามารถใช้ตัวเลือกบรรทัดคำสั่ง :set shiftwidth=4 ซึ่งจะเปลี่ยนแท็บทั้งหมดในเอกสารของคุณเป็นช่องว่างสี่ช่อง กว้าง นี่เป็นเพียงตัวอย่างบางส่วนเท่านั้น มีตัวเลือกอีกมากมายหากคุณต้องการ วิธีการทั้งหมดเหล่านี้ทำงานได้ดีพอๆ กันกับไฟล์ข้อความและโค้ด

ฉันจะทำให้ vim ใช้ช่องว่างแทนแท็บได้อย่างไร

มีสองสามวิธีในการทำเช่นนี้วิธีหนึ่งคือการใช้ตัวเลือกบรรทัดคำสั่ง :set tabstop=4การตั้งค่าแท็บหยุดเป็น 4 ช่องว่าง ซึ่งจะทำให้กลุ่มใช้สี่ช่องว่างแทนแท็บเมื่อคุณแทรกข้อความลงในเอกสารอีกวิธีหนึ่งคือการใช้ปลั๊กอินการเยื้องอัตโนมัติปลั๊กอินนี้จะเยื้องข้อความโดยอัตโนมัติตามบรรทัดที่อยู่รอบๆ ดังนั้นหากคุณตั้งค่าตัวแปรการเยื้องอัตโนมัติในไฟล์ .vimrc เป็น 1 กลุ่มจะใช้ช่องว่างหนึ่งช่องสำหรับอักขระแท็บแต่ละตัวเมื่อคุณแทรกข้อความลงในเอกสารสุดท้าย คุณยังสามารถกำหนดค่าแป้นพิมพ์ลัดของ Vim เพื่อให้ทำงานแตกต่างกันขึ้นอยู่กับว่าคุณกำลังใช้แท็บหรือช่องว่างตัวอย่างเช่น คุณสามารถกำหนดค่าทางลัด CTRL-T เพื่อให้แทรกอักขระแท็บแทนช่องว่างเมื่อใช้ในโหมดตัวแก้ไข Vim (เช่น เมื่อแก้ไขไฟล์) หากวิธีการเหล่านี้ไม่เหมาะกับคุณหรือหากคุณต้องการ วิธีที่ง่ายกว่าในการสลับระหว่างแท็บและช่องว่างโดยไม่ต้องจำคำสั่งหรือการกดแป้นใด ๆ จากนั้นคุณสามารถติดตั้งส่วนขยาย vim-tab ได้ส่วนขยายนี้มีคุณลักษณะที่มีประโยชน์หลายอย่างที่เกี่ยวข้องกับการสลับระหว่างแท็บและช่องว่างในโหมดตัวแก้ไข Vim รวมถึงคุณลักษณะการเยื้องอัตโนมัติและการสนับสนุนหลายภาษา

วิธีใดที่ดีที่สุดในการแปลงแท็บเป็นช่องว่างในกลุ่ม?

มีสองสามวิธีในการทำเช่นนี้ แต่วิธีที่ง่ายที่สุดคือการใช้คำสั่ง :set tabstop=4การดำเนินการนี้จะตั้งค่าแท็บหยุดเป็น 4 ช่องว่าง ซึ่งจะแปลงแท็บทั้งหมดในไฟล์ของคุณให้เป็นช่องว่าง หากคุณต้องการแปลงเฉพาะบางส่วนของไฟล์เป็นช่องว่าง คุณสามารถใช้คำสั่ง :setlocal tabstop=nการดำเนินการนี้จะตั้งค่าแท็บหยุดสำหรับบรรทัดที่ตรงกับรูปแบบที่กำหนดเป็น n ช่องว่าง ซึ่งจะมีผลกับบรรทัดเหล่านั้นเท่านั้น ตัวอย่างเช่น: :setlocal tabstop=2 หากคุณต้องการให้แท็บทั้งหมดในไฟล์ของคุณแปลงเป็นช่องว่าง โดยไม่คำนึงถึงตำแหน่งบน หน้าจอ คุณสามารถใช้ตัวเลือก :settabสิ่งนี้จะตั้งค่าการทำงานเริ่มต้นสำหรับไฟล์ทั้งหมดที่เปิดเป็นกลุ่ม และจะแปลงแท็บทั้งหมดเป็น space.:settab คุณยังสามารถเปลี่ยนจำนวน Spaces ต่อแท็บ Vim ที่ใช้โดยการตั้งค่าตัวแปรสภาพแวดล้อม 'stty'ตัวอย่างเช่น: export STTY='utf8' จากนั้นเมื่อ Vim เริ่มทำงาน มันจะใช้ 8 Spaces ต่อ Tab แทน

มีสองสามวิธีในการทำเช่นนี้ แต่

ง่ายที่สุดคือ

ใช้

:set tabstop=4 คำสั่งนี่จะเป็นการตั้งค่าแท็บของคุณหยุด

ถึง 4 ช่อง ซึ่ง

จะแปลงแท็บทั้งหมดในไฟล์ของคุณให้เป็นช่องว่าง

หากคุณต้องการแปลงเฉพาะบางส่วนของไฟล์ของคุณ

ไปยังช่องว่าง คุณสามารถใช้

คำสั่ง :setlocal tabstop=nสิ่งนี้จะตั้งค่าแท็บหยุดสำหรับบรรทัดที่ตรงกัน

รูปแบบที่กำหนดให้กับ n space s ซึ่งจะมีผลกับเส้นเหล่านั้นเท่านั้น

ตัวอย่างเช่น: :setlocal tabstop=2 หากคุณต้องการให้แท็บทั้งหมดในไฟล์ของคุณแปลงเป็น space s โดยไม่คำนึงถึงตำแหน่งบนหน้าจอ คุณสามารถใช้ e th :se ttab option ได้ สิ่งนี้จะกำหนดลักษณะการทำงานเริ่มต้นสำหรับไฟล์ al l ที่เป็นกลุ่มเปิด s และมันจะแปลงแท็บทั้งหมดเป็นช่องว่าง s.: se ttab คุณยังสามารถเปลี่ยนจำนวน Space s ต่อ Tab Vim ที่ใช้โดยการตั้งค่า th e 'st ty' ตัวแปร ent สิ่งแวดล้อม ตัวอย่างเช่น: export STTY='utf8' จากนั้นเมื่อ en Vim เริ่มทำงาน เราจะใช้ e 8 Space ต่อ Tab แทน

  1. : stty -T utf8 หากต้องการปิดการแปลงทั้งหมด (เพื่อให้ทุกอักขระถือเป็นโทเค็นของตัวเอง) ให้เพิ่ม ":notab" ที่ส่วนท้ายของไฟล์ .vimrc ของคุณ: notab
  2. :: stty -T utf8 หากต้องการปิดการแปลงทั้งหมด (ดังนั้น ทุกตัวอักษรจึงถือว่าเป็น ed เป็นโทเค็นของตัวเอง) ให้เพิ่ม ":notab" ที่จุดสิ้นสุดของเรา

ฉันจะหยุดกลุ่มไม่ให้ใช้แท็บและใช้ช่องว่างแทนได้อย่างไร

นี่เป็นคำถามที่ถูกถามหลายครั้งและมีหลายวิธีที่จะทำนี่คือสี่วิธี:

:set tabstop=4

ให้ g:TabStop = 4

:set softtabstop=4

  1. ใช้ตัวเลือกบรรทัดคำสั่ง :set tabstop=4 ตั้งค่าตัวแปร 'tabstop' ในไฟล์ .vimrc ของคุณ ใช้ตัวเลือกบรรทัดคำสั่ง :set softtabstop=4 ใช้คำสั่ง setlocal softtabstop สองวิธีแรกทำงานกับการตั้งค่าเริ่มต้นของ Vim ในขณะที่วิธีที่สามต้องใช้ คุณสามารถเพิ่มบรรทัดในไฟล์ .vimrc ของคุณวิธีที่สี่ใช้การตั้งค่าท้องถิ่นของ Vim สำหรับ 'softtabstop' นี่คือตัวอย่างวิธีการใช้แต่ละวิธี: หากต้องการใช้ตัวเลือกบรรทัดคำสั่ง :set tabstop=4 ให้พิมพ์:
  2. ในการตั้งค่าตัวแปร 'tabstop' ในไฟล์ .vimrc ของคุณ ให้พิมพ์:
  3. ในการใช้อ็อพชันบรรทัดคำสั่ง :set softtabstop=4 ให้พิมพ์:

มีวิธีบังคับให้ vim ใช้ช่องว่างแทนแท็บหรือไม่?

มีวิธีบังคับให้กลุ่มใช้ช่องว่างแทนแท็บ แต่ไม่เป็นมิตรกับผู้ใช้มากนักในการดำเนินการนี้ คุณจะต้องตั้งค่าตัวเลือก 'tabstop' และ 'softtabstop' ในไฟล์ .vimrc ของคุณตัวเลือก tabstop กำหนดจำนวนช่องว่างที่จะแทรกหลังจากอักขระแท็บแต่ละตัว ในขณะที่ตัวเลือก softtabstop กำหนดจำนวนช่องว่างที่จะแทรกก่อนอักขระที่ไม่ใช่ช่องว่างแต่ละตัว ในการตั้งค่าตัวเลือก tabstop:

มีวิธีบังคับให้ vim ใช้ช่องว่างแทนแท็บหรือไม่?

มีวิธีบังคับให้ vimto ใช้อักขระรองแทนแท็บแต่ไม่เป็นมิตรกับผู้ใช้มาก

  1. เปิดไฟล์ .vimrc ของคุณ เพิ่มบรรทัดต่อไปนี้:set tabstop=4 บันทึกการเปลี่ยนแปลงของคุณเพื่อตั้งค่าตัวเลือก softtabstop: เปิดไฟล์ .vimrc ของคุณ เพิ่มบรรทัดต่อไปนี้:set softtabstop=4 บันทึกการเปลี่ยนแปลงของคุณ หากคุณใช้ Vim 7 หรือใหม่กว่า คุณสามารถทำได้ ยังใช้คำสั่ง "setlocal softtabstop" เพื่อตั้งค่าทั้งสองตัวเลือกพร้อมกัน: หากคุณใช้ Vim 6 หรือเก่ากว่า คุณจะต้องเพิ่มบรรทัดแยกต่างหากสำหรับแต่ละการตั้งค่า: คุณยังสามารถใช้หนึ่งในคำสั่งเหล่านี้เพื่อเปลี่ยน แท็บลงในช่องว่างโดยอัตโนมัติเมื่อคุณพิมพ์ใน: autocmd BufNewFile * :setlocal shiftwidth=4 autocmd FileType c :setlocal shiftwidth=4 ปิดและเปิดไฟล์ .vimrc ของคุณใหม่ หากคุณต้องการเปลี่ยนกลับไปใช้แท็บ ให้ลบบรรทัดใดบรรทัดหนึ่งออก จากไฟล์ .vimrc ของคุณ: หากคุณไม่ต้องการเปลี่ยนแท็บเป็นช่องว่างโดยอัตโนมัติเมื่อพิมพ์ แต่ควรปรับความกว้างด้วยตนเองเมื่อจำเป็น คุณสามารถใช้หนึ่งในคำสั่งเหล่านี้แทน:autocmd BufNewFile * :setlocal shiftwidth= 0 autocmd FileType c :setlocal softtab stop = 0 สนุก!
  2. .Openyour'.vircfile'

ทำไมฉันถึงต้องการเปลี่ยนแท็บเป็นช่องว่างในกลุ่ม?

มีเหตุผลสองสามประการที่คุณอาจต้องการทำเช่นนี้เหตุผลหนึ่งก็คือมันสามารถทำให้การแก้ไขของคุณมีประสิทธิภาพมากขึ้นเมื่อคุณเปิดหลายแท็บเป็นกลุ่ม แต่ละแท็บจะถือว่าเป็นไฟล์แยกกันด้วยการเปลี่ยนแท็บเป็นช่องว่าง กลุ่มจะถือว่าข้อความทั้งหมดในแท็บเหล่านั้นเป็นไฟล์เดียว ซึ่งช่วยให้คุณประหยัดเวลาได้มากเมื่อแก้ไขไฟล์ขนาดใหญ่

อีกเหตุผลหนึ่งในการเปลี่ยนแท็บเป็นช่องว่างคือเพื่อความสม่ำเสมอหากโค้ดและซอร์สไฟล์ทั้งหมดของคุณเขียนเป็น intabs อาจสร้างความสับสนได้หากคุณเริ่มพิมพ์คำในบรรทัดเดียวแล้วกดปุ่ม tab เพื่อย้ายไปยังบรรทัดถัดไปและจบลงด้วยการกดแป้นเว้นวรรคแทนการเปลี่ยนแท็บเป็นช่องว่างจะช่วยแก้ปัญหานี้เพื่อให้ทุกคำอยู่ในบรรทัดเดียว

สุดท้าย การเปลี่ยนแท็บเป็นช่องว่างสามารถช่วยจัดระเบียบโค้ดของคุณได้เมื่อทุกอย่างอยู่ในบรรทัดเดียว จะง่ายกว่ามากที่จะเห็นว่าทุกอย่างลงตัวตรงไหน และทำให้ค้นหาโค้ดเฉพาะได้ง่ายขึ้นเมื่อคุณต้องการ

แท็บมีช่องว่างกี่ช่องในกลุ่ม?

เมื่อคุณกดปุ่มแท็บเป็นกลุ่ม มันจะแทรกช่องว่างจำนวนเท่ากับจำนวนแท็บที่ระบุโดยตัวเลือก :set tabstopตัวอย่างเช่น หากคุณตั้งค่า tabstop เป็น 8 ช่องว่าง การกดปุ่ม tab จะแทรก 8 ช่องว่างในข้อความของคุณหากคุณไม่ได้ตั้งค่าการหยุดแท็บใด ๆ กลุ่มจะใช้ค่าใดก็ตามที่กำหนดไว้สำหรับ 'tabstop' ในไฟล์การกำหนดค่าผู้ใช้ของคุณ (โดยปกติคือ

หากคุณต้องการเปลี่ยนจำนวนช่องว่างที่จะแทรกเมื่อกดปุ่ม Tab คุณสามารถทำได้โดยเปลี่ยนค่าของ :set tabstop การตั้งค่าเริ่มต้นคือ 8 ช่องว่างคุณยังสามารถระบุจำนวนช่องว่างที่แตกต่างกันโดยใช้จุดทศนิยม: เป็นที่น่าสังเกตว่าการตั้งค่านี้มีผลกับการจัดการแท็บในกลุ่มเท่านั้น ไม่มีผลใดๆ กับโปรแกรมอื่นที่อาจใช้การขึ้นบรรทัดใหม่แบบ Windows (r) เช่น Notepad หรือ Wordpadในกรณีเหล่านั้น ทุกครั้งที่คุณกด Enter หรือ Return หลังจากพิมพ์ข้อความในกลุ่มและก่อนที่จะกด Tab Vim จะเพิ่ม r พิเศษที่ท้ายข้อความของคุณ ไม่ว่าคุณจะตั้งค่าแท็บหยุดไว้หรือไม่ก็ตาม!

นอกจากนี้ยังมีอาร์กิวเมนต์ที่สามที่เป็นตัวเลือกซึ่งช่วยให้เราสามารถแทนที่อักขระที่ใช้เป็นตัวยึดตำแหน่งสำหรับ Spaces เมื่อเรากด TAB: โดยค่าเริ่มต้นนี่คือ ' ' แต่เราสามารถเปลี่ยนได้โดยใช้ :set tabstops=.

  1. . ดังนั้นหากคุณต้องการพิมพ์หนึ่งช่องว่างแทนที่จะเป็นแท็บ ให้กด Space bar
  2. 5 สำหรับครึ่งพื้นที่ 1 สำหรับหนึ่งพื้นที่และอื่นๆ

ฉันสามารถเปลี่ยนจำนวนอักขระเว้นวรรคที่แท็บแสดงเป็นกลุ่มได้หรือไม่

ใช่.ในการดำเนินการดังกล่าว ให้เปิดไฟล์ 'แท็บ' ในไดเร็กทอรีการกำหนดค่า vim ของคุณ ( ~/.

การเปลี่ยนแท็บเป็นอักขระเว้นวรรคในกลุ่มจะส่งผลต่อการเยื้องโค้ดของฉันหรือไม่

ไม่มันจะไม่แท็บเป็นเพียงช่องว่างที่มีอักขระต่างกันหลังจากเว้นวรรคนี่คือเหตุผลที่คุณยังคงเห็นอักขระแท็บแม้ว่าคุณจะเปลี่ยนให้เป็นอักขระเว้นวรรคแล้วก็ตามอย่างไรก็ตาม หากคุณต้องการให้การเยื้องโค้ดของคุณสอดคล้องกัน คุณควรใช้ช่องว่างสองช่องแทนแท็บเดียวและอีกหนึ่งช่องว่างสำหรับการเยื้องทุกระดับ

ปัญหาที่อาจเกิดขึ้นกับการแปลงแท็บเป็นช่องว่างในกลุ่มคืออะไร

  1. แท็บสามารถแยกแยะข้อความได้ง่ายกว่าการเว้นวรรค
  2. เมื่อรวมหลายแท็บเข้าด้วยกัน อาจเป็นเรื่องยากที่จะบอกได้ว่าควรแปลงแท็บใดเป็นช่องว่าง และแท็บใดควรคงไว้เป็นแท็บ
  3. หากคุณใช้ปลั๊กอินหรือสคริปต์บางตัวที่ต้องอาศัยแท็บ การแปลงให้เป็นช่องว่างอาจทำให้เกิดปัญหาได้
  4. หากคุณมีไฟล์จำนวนมากที่มีการตั้งค่าแท็บต่างกัน การแปลงไฟล์ทั้งหมดเป็นช่องว่างอาจส่งผลให้เวิร์กสเตชันของคุณไม่สอดคล้องกัน
  5. บางโปรแกรม (เช่น Sublime Text) จะแปลงแท็บเป็นช่องว่างโดยอัตโนมัติเมื่อคุณบันทึกไฟล์ ดังนั้นหากคุณไม่ต้องการให้สิ่งนี้เกิดขึ้น ตรวจสอบให้แน่ใจว่าการกำหนดค่า vim ของคุณไม่มีตัวเลือก "tabstop"