วิธีการหยุดการแบ่งบรรทัดในกลุ่ม


257

ฉันชอบที่จะแสดงเส้นยาวมากกว่ามากกว่าหนึ่งบรรทัด terminal; ฉันไม่ชอบกลุ่มที่แทรกบรรทัดใหม่ในข้อความจริงของฉัน ส่วนไหนของ. vimrc ที่ฉันควรเปลี่ยน?


7
เพื่อความชัดเจน: คุณชอบที่จะแสดงเส้นยาวมากกว่าหนึ่งบรรทัดปลายทาง; คุณไม่ชอบเสียงดังกล่าวแทรกขึ้นบรรทัดใหม่ลงในข้อความจริงของคุณ? ถ้าเป็นเช่นนั้นก็:set nowrapจะตรงกันข้ามกับสิ่งที่คุณต้องการ: (
Andrew Aylett

@ แอนดรูว์: ใช่ข้อมูลสรุปของคุณเป็นสิ่งที่ฉันต้องการ
Haiyuan จาง

คำตอบ:


304

ใช้

:set wrap

เมื่อต้องการตัดบรรทัดด้วยสายตาคือบรรทัดนั้นยังคงเป็นหนึ่งบรรทัดของข้อความ แต่ Vim จะแสดงในหลายบรรทัด

ใช้

:set nowrap

ในการแสดงเส้นยาวเป็นเพียงหนึ่งบรรทัด (เช่นคุณต้องเลื่อนตามแนวนอนเพื่อดูทั้งบรรทัด)


3
ขอบคุณสำหรับเคล็ดลับพวกคุณ ฉันไปกับ: set nowrap และ: set textwidth = 0 ใช้งานได้ดี
Robert Beltran

5
เมื่อฉันพิมพ์ฉันยังต้องการเห็นคอลัมน์คอลัมน์ 80 "ภาพ" และฉันไม่ต้องการให้กลุ่มเพิ่มฟีดบรรทัดโดยอัตโนมัติเมื่อฉันพิมพ์หลังจากโคลอนที่ 80 ฉันจะทำอย่างไร
Olivier Pons

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

3
ตรงนี้เป็นคำตอบที่ฉันไม่ได้มองหาและไม่ใช่คำตอบสำหรับคำถามของ OP
peeol

นี่ไม่ใช่คำตอบสำหรับคำถาม

194

ฉันชอบที่จะแสดงเส้นยาวมากกว่าหนึ่งบรรทัดมินัล

การตัดบรรทัดแบบเสมือน / เสมือนนี้ใช้งานได้กับwrapตัวเลือกหน้าต่าง:

set wrap

ฉันไม่ชอบกลุ่มที่แทรกบรรทัดใหม่ในข้อความจริงของฉัน

ในการปิดการตัดเส้นทางกายภาพให้ล้างทั้งตัวเลือกtextwidthและwrapmarginบัฟเฟอร์:

set textwidth=0 wrapmargin=0

1
ขอบคุณ! set textwidth=0 wrapmargin=0ใช้งานได้ แต่ถ้าฉันใส่ลงไป.vimrcมันจะไม่มีผลเช่นไฟล์ข้อความธรรมดา ฉันจะค้นหาและกำจัดการเขียนทับได้อย่างไร
qubodup

7
@qubodup คุณสามารถทดสอบถ้าเป็นสิ่งที่เขียนทับการตั้งค่า .vimrc :verbose set textwidth? wrapmargin?ของคุณโดยการเปิดไฟล์ที่คุณเห็นปัญหาและเข้าที่ สิ่งนี้จะบอกค่าปัจจุบันและที่ตั้ง เป็นไปได้ว่าคุณมีปลั๊กอินที่แทนที่พวกเขา ในกรณีดังกล่าวคุณอาจถอนการติดตั้งปลั๊กอินนั้นหรือลองแทนที่การตั้งค่าปลั๊กอินในภายหลังใน runtimepath ของคุณ (เช่น:) ~/.vim/afterหรือกับ autocommand ของคุณเอง วิธีการที่เหมาะสมจะขึ้นอยู่กับตำแหน่ง / วิธีการรีเซ็ต
Laurence Gonsalves

set wrapและset linebreakเป็นสิ่งที่ทำเพื่อฉัน
Ilia Choly

36

ฉันไม่แน่ใจว่าฉันเข้าใจอย่างถ่องแท้ แต่คุณอาจกำลังมองหาการตั้งค่า 'formatoptions' :set formatoptions-=tลองสิ่งที่ต้องการ ตัวเลือกที่จะแทรกตัวแบ่งบรรทัดเพื่อให้ตัดข้อความที่ชุดความกว้างโดยt textwidthคุณสามารถใส่คำสั่งนี้ในของคุณ.vimrcเพียงแค่ลบเครื่องหมายโคลอน ( :)


3
นี่เป็นตัวเลือกที่ดีที่สุดสำหรับฉันในการตอบสนองความต้องการของ OP twผมชอบความจริงที่ว่าเป็นกลุ่มที่ยังคงแสดงให้เห็นเส้นแนวตั้งที่
mitchus

3
นี่เป็นคำตอบเดียวที่ตอบคำถามของ OP คนอื่น ๆ ส่วนใหญ่ทำตรงกันข้าม OP ยังต้องการให้มีการแสดงเส้นยาว ๆ ล้อมรอบ แต่สำหรับกลุ่มที่จะไม่แทรกตัวแบ่งบรรทัดโดยอัตโนมัติ
เซบาสเตียน

33

ใช้:set nowrap.. ทำงานเหมือนจับใจ!


10
ยกเว้นว่ามันตรงกันข้ามกับสิ่งที่ OP กำหนดไว้ตามพฤติกรรมที่ต้องการ ... : P
Morlock

5
@Morlock แต่ตอบคำถามที่ฉันมีและ Google นำผมมาที่นี่ :)
เบน Usman

แป้นพิมพ์ลัดนี้มีอะไรบ้าง?
Pini Cheyni

@PiniCheyni เพิ่มไฟล์. vimrc ของคุณ: nnoremap <Cw>: set invwrap <CR> จากนั้นคุณสามารถใช้ Ctrl + W เพื่อสลับการตัดข้อความ
reas0n

30

:set tw=0

VIM จะไม่แทรกตัวแบ่งบรรทัดโดยอัตโนมัติ แต่จะทำการตัดบรรทัด


3
ฉันต้องการสิ่งที่ตรงกันข้าม ... เมื่อฉันพิมพ์ฉันยังต้องการเห็นข้อ จำกัด 80 คอลัมน์ "ภาพ" และฉันไม่ต้องการให้กลุ่มเพิ่มฟีดบรรทัดโดยอัตโนมัติเมื่อฉันพิมพ์หลังจากคอลัมน์โคลอนที่ 80 ฉันจะทำอย่างไร
Olivier Pons

16

คุณอาจพบว่า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
SergioAraujo


4

มันแปลกที่การตั้งค่าแบบง่าย ๆ เช่นนี้ต้องใช้ 'hocus-pocus' จำนวนนี้ในการทำงาน

เพื่อตอบคำถามของคุณตอนนี้สำหรับฉันมันดูเหมือนจะทำงานร่วมกับการรวมกันดังต่อไปนี้:

:set wrap linebreak nolist

(ดูเหมือนว่าจะป้องกันไม่ให้สายที่มีอยู่หมดเพียงแค่พันสาย)

และ

set formatoptions=l

(สิ่งนี้จะป้องกันไม่ให้บรรทัดใหม่ / แก้ไขถูกตัดขณะที่ + = ไม่ได้ทำเพื่อฉันเนื่องจากการตั้งค่า / ปลั๊กอินอื่น ๆ ดูเหมือนจะหาพื้นที่และเพิ่มตัวเลือกของตัวเองซึ่งจะแทนที่เหมืองของฉัน)


4

หากเช่นฉันคุณกำลังเรียกใช้ 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


1
แทนที่จะแก้ไขไฟล์ vimrc_example.vim ฉันเพิ่งเพิ่มautocmd FileType text setlocal textwidth=0ไปยังไฟล์ vimrc และที่แก้ไขปัญหาเมื่อโซลูชันที่เสนออื่นไม่ทำงาน
GrandAdmiral

3

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

จะมีเส้นสายตาห่อ แต่ไม่ได้มีตัวอักษรขึ้นบรรทัดใหม่ใส่เข้าไปในมันมีชุดห่อ (ซึ่งอาจจะเริ่มต้นจึงไม่จำเป็นในการตั้งค่า) และชุด textwidth = 0

ในบางระบบการตั้งค่าtextwidth = 0เป็นค่าเริ่มต้น หากคุณไม่พบกรณีดังกล่าวให้เพิ่มset textwidth = 0ในไฟล์. exrcของคุณเพื่อให้เป็นค่าเริ่มต้นของผู้ใช้สำหรับเซสชัน vi / vim ทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.