ฉันชอบที่จะแสดงเส้นยาวมากกว่ามากกว่าหนึ่งบรรทัด terminal; ฉันไม่ชอบกลุ่มที่แทรกบรรทัดใหม่ในข้อความจริงของฉัน ส่วนไหนของ. vimrc ที่ฉันควรเปลี่ยน?
ฉันชอบที่จะแสดงเส้นยาวมากกว่ามากกว่าหนึ่งบรรทัด terminal; ฉันไม่ชอบกลุ่มที่แทรกบรรทัดใหม่ในข้อความจริงของฉัน ส่วนไหนของ. vimrc ที่ฉันควรเปลี่ยน?
คำตอบ:
ใช้
:set wrap
เมื่อต้องการตัดบรรทัดด้วยสายตาคือบรรทัดนั้นยังคงเป็นหนึ่งบรรทัดของข้อความ แต่ Vim จะแสดงในหลายบรรทัด
ใช้
:set nowrap
ในการแสดงเส้นยาวเป็นเพียงหนึ่งบรรทัด (เช่นคุณต้องเลื่อนตามแนวนอนเพื่อดูทั้งบรรทัด)
ฉันชอบที่จะแสดงเส้นยาวมากกว่าหนึ่งบรรทัดมินัล
การตัดบรรทัดแบบเสมือน / เสมือนนี้ใช้งานได้กับwrap
ตัวเลือกหน้าต่าง:
set wrap
ฉันไม่ชอบกลุ่มที่แทรกบรรทัดใหม่ในข้อความจริงของฉัน
ในการปิดการตัดเส้นทางกายภาพให้ล้างทั้งตัวเลือกtextwidth
และwrapmargin
บัฟเฟอร์:
set textwidth=0 wrapmargin=0
set textwidth=0 wrapmargin=0
ใช้งานได้ แต่ถ้าฉันใส่ลงไป.vimrc
มันจะไม่มีผลเช่นไฟล์ข้อความธรรมดา ฉันจะค้นหาและกำจัดการเขียนทับได้อย่างไร
:verbose set textwidth? wrapmargin?
ของคุณโดยการเปิดไฟล์ที่คุณเห็นปัญหาและเข้าที่ สิ่งนี้จะบอกค่าปัจจุบันและที่ตั้ง เป็นไปได้ว่าคุณมีปลั๊กอินที่แทนที่พวกเขา ในกรณีดังกล่าวคุณอาจถอนการติดตั้งปลั๊กอินนั้นหรือลองแทนที่การตั้งค่าปลั๊กอินในภายหลังใน runtimepath ของคุณ (เช่น:) ~/.vim/after
หรือกับ autocommand ของคุณเอง วิธีการที่เหมาะสมจะขึ้นอยู่กับตำแหน่ง / วิธีการรีเซ็ต
set wrap
และset linebreak
เป็นสิ่งที่ทำเพื่อฉัน
ฉันไม่แน่ใจว่าฉันเข้าใจอย่างถ่องแท้ แต่คุณอาจกำลังมองหาการตั้งค่า 'formatoptions' :set formatoptions-=t
ลองสิ่งที่ต้องการ ตัวเลือกที่จะแทรกตัวแบ่งบรรทัดเพื่อให้ตัดข้อความที่ชุดความกว้างโดยt
textwidth
คุณสามารถใส่คำสั่งนี้ในของคุณ.vimrc
เพียงแค่ลบเครื่องหมายโคลอน ( :
)
tw
ผมชอบความจริงที่ว่าเป็นกลุ่มที่ยังคงแสดงให้เห็นเส้นแนวตั้งที่
ใช้:set nowrap
.. ทำงานเหมือนจับใจ!
:set tw=0
VIM จะไม่แทรกตัวแบ่งบรรทัดโดยอัตโนมัติ แต่จะทำการตัดบรรทัด
คุณอาจพบว่าset lbr
มีประโยชน์ ด้วยset wrap
สิ่งนี้จะห่อ แต่เพียงตัดเส้นในช่องว่างและไม่อยู่ตรงกลางของคำ
เช่น
without lbr the li
ne can be split on
a word
และ
with lbr on the
line will be
split on
whitespace only
set nolinebreak
แทนset lbr
set formatoptions-=t
เก็บความกว้างของข้อความ แต่ไม่เพิ่มบรรทัดใหม่ในโหมดแทรก
มันแปลกที่การตั้งค่าแบบง่าย ๆ เช่นนี้ต้องใช้ 'hocus-pocus' จำนวนนี้ในการทำงาน
เพื่อตอบคำถามของคุณตอนนี้สำหรับฉันมันดูเหมือนจะทำงานร่วมกับการรวมกันดังต่อไปนี้:
:set wrap linebreak nolist
(ดูเหมือนว่าจะป้องกันไม่ให้สายที่มีอยู่หมดเพียงแค่พันสาย)
และ
set formatoptions=l
(สิ่งนี้จะป้องกันไม่ให้บรรทัดใหม่ / แก้ไขถูกตัดขณะที่ + = ไม่ได้ทำเพื่อฉันเนื่องจากการตั้งค่า / ปลั๊กอินอื่น ๆ ดูเหมือนจะหาพื้นที่และเพิ่มตัวเลือกของตัวเองซึ่งจะแทนที่เหมืองของฉัน)
หากเช่นฉันคุณกำลังเรียกใช้ gVim บน Windows ไฟล์. vimrcของคุณอาจหาไฟล์ Vimscript อีก 'ตัวอย่าง' อีกไฟล์หนึ่งซึ่งจะตั้งค่าtextwidth
(ในกรณีของฉันเป็น78
) ให้เป็นไฟล์ข้อความโดยอัตโนมัติ
คำตอบของฉันสำหรับคำถามที่คล้ายกันเช่นเดียวกับวิธีการหยุดการตัดข้อความ gVim ที่คอลัมน์ 80 - บนไซต์แลกเปลี่ยน Vi และ Vim Stack :
ในกรณีของฉันความคิดเห็นของ Vitorแนะนำให้ฉันเรียกใช้สิ่งต่อไปนี้:
:verbose set tw?
การทำเช่นนั้นให้ผลลัพธ์ต่อไปนี้แก่ฉัน:
textwidth=78 Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim
ในvimrc_example.vimฉันพบบรรทัดที่เกี่ยวข้อง:
" Only do this part when compiled with support for autocommands. if has("autocmd") ... " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 ...
และฉันพบว่า. vimrcของฉันกำลังทำการจัดหาไฟล์นั้น:
source $VIMRUNTIME/vimrc_example.vim
ในกรณีของฉันฉันไม่ต้องการที่
textwidth
จะได้รับการตั้งค่าสำหรับไฟล์ใด ๆ ดังนั้นผมแค่ออกความเห็นบรรทัดที่เกี่ยวข้องในvimrc_example.vim
autocmd FileType text setlocal textwidth=0
ไปยังไฟล์ vimrc และที่แก้ไขปัญหาเมื่อโซลูชันที่เสนออื่นไม่ทำงาน
ถูกต้องที่ชุด nowrapจะอนุญาตให้คุณวางในบรรทัดที่ยาวโดยไม่ต้องเพิ่ม vi / vim ขึ้นบรรทัดใหม่ แต่จากนั้นบรรทัดจะไม่ถูกห่อหุ้มด้วยสายตาเพื่อให้อ่านง่าย มันเป็นเพียงแค่หนึ่งบรรทัดยาวที่คุณต้องเลื่อนผ่าน
จะมีเส้นสายตาห่อ แต่ไม่ได้มีตัวอักษรขึ้นบรรทัดใหม่ใส่เข้าไปในมันมีชุดห่อ (ซึ่งอาจจะเริ่มต้นจึงไม่จำเป็นในการตั้งค่า) และชุด textwidth = 0
ในบางระบบการตั้งค่าtextwidth = 0เป็นค่าเริ่มต้น หากคุณไม่พบกรณีดังกล่าวให้เพิ่มset textwidth = 0ในไฟล์. exrcของคุณเพื่อให้เป็นค่าเริ่มต้นของผู้ใช้สำหรับเซสชัน vi / vim ทั้งหมด
:set nowrap
จะตรงกันข้ามกับสิ่งที่คุณต้องการ: (