ฉันสามารถปิดใช้งานการแสดงความคิดเห็นต่อเนื่องในบรรทัดถัดไปในกลุ่ม


65

ในกลุ่มถ้าฉันพิมพ์ความคิดเห็นในไฟล์รหัสและฉันกดEnterมันจะทำให้บรรทัดใหม่แสดงความคิดเห็นด้วย

ตัวอย่างเช่นในไฟล์ Ruby:

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

โดยทั่วไปนี่คือสิ่งที่ฉันต้องการ แต่ไม่เสมอไป ฉันจะปิดพฤติกรรมการแสดงความคิดเห็นอัตโนมัตินี้ชั่วคราวได้อย่างไร


ในการชั่วคราวคุณต้องการคำสั่ง aa ที่ใช้ครั้งเดียวหรือตั้งค่าตัวเลือกที่จะคงอยู่นานสองสามคำสั่งจนกว่าคุณจะเปิดมันอีกครั้ง? ซ้ำไซต์ที่เป็นไปได้: stackoverflow.com/questions/4896003/ …
Ciro Santilli 事件改造中心中心法轮功六四事件

คำตอบ:


86

ฉันคิดว่าคุณกำลังมองหา

:set formatoptions-=cro

จาก:help fo-table:

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

t       Auto-wrap text using textwidth
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.
...

13
ขอบคุณมาก! พฤติกรรมนี้รบกวนฉัน - ฉันมาจาก unix vi ถึง Linux vim สำหรับ googler: สำหรับการใช้งานถาวรให้ดูstackoverflow.com/questions/6076592/และป้อนบรรทัดนี้ใน / etc / vimrc:autocmd BufNewFile,BufRead * setlocal formatoptions-=cro
bgStack15

ไม่ช่วย การพิมพ์/**<ESC>oยังคงเพิ่มดาวในบรรทัดถัดไป
Qix

ใช้งานไม่ได้ z
felwithe

8

การตั้งค่าตัวเลือก 'วาง' ชั่วคราวอาจทำในสิ่งที่คุณต้องการ แต่ก็ปิดการใช้งานคุณสมบัติ Vim อื่น ๆ อีกมากมาย:

ใช้:set pasteเพื่อเปิดและ:set nopasteปิด หรือคุณสามารถใช้:set paste!เพื่อสลับ

ดูสิ่งนี้ด้วย:

:help 'paste'
:help 'pastetoggle'

(คำสั่งเหล่านั้นพิมพ์ด้วยเครื่องหมายคำพูดเดี่ยว)


4
:set pasteเพื่อเปิดและ:set nopasteปิด
ผู้ใช้

2
หรือคุณสามารถใช้:set paste!เพื่อสลับเป็น TRUE และ FALSE
Felipe Alvarez

3

<CR>ฉันใส่สายใหม่ที่ไม่ธรรมดากับการจัดรูปแบบ

เมื่อฉันต้องการพิมพ์บรรทัดถัดไปในบล็อกที่คอมเม้นต์ฉันก็ใช้Oปุ่มตามปกติ

ลองสิ่งนี้:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>

1
คุณหมายถึง<CR>อะไร คีย์เฉพาะ?
Peter Mortensen

1
CR ย่อมาจาก carriage return ในคอมพิวเตอร์ที่ฉันใช้มันถูกแมปไปยังปุ่ม Enter
เซบาสเตียน Jylanki

0

ฉันได้ลงเอยด้วยสิ่งนี้:

nnoremap <Leader>o o<Esc>^Da
nnoremap <Leader>O O<Esc>^Da

มันต่อท้ายบรรทัดใหม่ลบทุกอย่างที่แทรกไว้แล้วและปล่อยให้เคอร์เซอร์อยู่ในโหมดแทรกในคอลัมน์ที่เยื้องโดยไม่ต้องยุ่งกับตัวเลือกการจัดรูปแบบ


0

คำตอบนี้ใช้กับDebianและอนุพันธ์บางส่วน

ในการแจกแจงค่าเริ่มต้นของ Debian Vim นั้นไม่มีเหตุผล พวกเขาอยู่ใน/usr/share/vim/vim80/defaults.vimและนำไปใช้หลังจาก (!) /etc/vim/vimrcถูกเรียกใช้ วิธีเดียวที่จะบอกให้ Vim ไม่ใช้ค่าเริ่มต้นของมันคือให้แน่ใจว่า~/.vimrcมีอยู่แม้ว่าจะว่างเปล่า เสียงเรียกเข้าเมื่อเริ่มต้นพยายามอ่าน.vimrcแต่ถ้าไม่พบไฟล์จะใช้ค่าเริ่มต้นซึ่งทำให้เกิดพฤติกรรมที่ไม่พึงประสงค์เช่นการรวมเมาส์การคัดลอกวางข้อความแสดงความคิดเห็นตัดคำอัตโนมัติเป็นต้น

ใน Debian คุณสามารถแก้ไขทั้งหมดได้เพียงแค่เรียกใช้ touch ~/.vimrc

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