text thong = 0 và quấn băng thông = 0 trong .vimrc.local không được tôn trọng


11

Tôi có các dòng sau ở cuối .vimrc.local của tôi:

set textwidth=0 
set wrapmargin=0

Tuy nhiên, bất cứ khi nào tôi mở một tệp mới, cả hai giá trị này được đặt thành mặc định của chúng (tương ứng 72 và 2) và không phải là cài đặt tùy chỉnh của tôi. Các cài đặt khác trong tệp .vimrc.local của tôi dường như được đặt (các tab, v.v.) nhưng chỉ hai cài đặt này tiếp tục được đặt lại. Nếu tôi nhập :source ~/.vimrc.localcác thay đổi cài đặt và hoạt động chính xác.

Có cách nào để xem những gì đang thiết lập bất cứ điều gì khi vim khởi động không? Tôi nghi ngờ rằng một số plugin hoặc cài đặt đi kèm với MacVim hoặc Janus đang thiết lập các tùy chọn này, nhưng tôi không biết cách xem xét mọi cài đặt cùng một lúc.


Tôi chưa từng thấy ~/.vimrc.localtrước đây. Các phiên bản của Janus mà tôi tìm thấy nguồn nó (nếu nó tồn tại) ở phần cuối của nó vimrctập tin (mà là điểm đến của các ~/.vimrcliên kết tượng trưng mà nó cài đặt, nếu bạn sử dụng phương pháp cài đặt của nó). Có lẽ không phải tất cả các phiên bản của Janus đều làm điều này, nhiều người dường như hợp nhất cái tôi tìm thấy trên dĩa của họ, nhưng tôi không biết đây có phải là một bản chính thức hay không. Chỉ cần làm rõ, bạn đã lấy Janus của bạn ở đâu? Nếu nó là một dựa trên Git, bạn đang sử dụng cam kết nào?
Chris Johnsen

Câu trả lời:


13

Để tìm ra nơi 'độ rộng văn bản' và 'Wramargin' được đặt cuối cùng, hãy thực hiện

:verbose set tw? wm?

Để xem những tập tin nào có nguồn gốc, hãy thực thi

:scriptnames

Nếu những điều đó không đủ để tìm ra sự cố, bạn có thể sử dụng tùy chọn -V khi Vim khởi động và ghi nhật ký các sự kiện khởi động khác nhau vào một tệp. Xem

:help -V

Ngoài ra, các giá trị mặc định cho 'độ rộng văn bản' và 'Wramargin' đều là 0, không phải 72 và 2, do đó, đã có thứ gì đó đặt chúng thành các giá trị không mặc định. Để biết các giá trị mặc định, xem

:help 'textwidth'
:help 'wrapmargin'

PS
Một cái gì đó khác để kiểm tra là khả năng một plugin filetype đang thực hiện các cài đặt đó. Các :verbose set ...lệnh sẽ hiển thị nơi những thiết lập đang được thực hiện, nhưng bạn cũng có thể thực hiện

:set filetype?

để xem kiểu tệp hiện tại, sau đó mở $VIMRUNTIME/ftplugin/<filetype>.vim, trong đó <filetype> là giá trị của tùy chọn 'filetype' được tìm thấy ở trên, để xem các cài đặt đó có được thực hiện ở đó không. Bạn có thể ghi đè cài đặt được tạo bởi plugin filetype bằng cách đặt cài đặt của bạn vào tệp bạn tạo, có tên ~ / .vim / after / ftplugin / <filetype> .vim. Xem

:help filetype-overrule

mục số 3.


Hóa ra vấn đề là ở ~/.vimrc, mà đến từ Janus. Tôi dự đoán đây sẽ source ~/.vimrc.locallà điều cuối cùng được thực thi, nhưng nó đã thiết lập hai thứ đó bằng aulệnh. Có vẻ như các thiết lập trong đó ~/.vimrcchứa rất nhiều sự lựa chọn về phong cách của những người duy trì Janus. Cảm ơn bạn đã viết một câu trả lời sẽ giúp tôi khắc phục những vấn đề này cho chính tôi trong tương lai. :)
Ian Potter

1
Tôi cũng đến đây do vấn đề này ở Janus. Nhưng lưu ý, trong lần gần đây nhất Janus ~/.vimrc.afterđược chạy lần cuối, tuy nhiên, chẳng hạn, có một hành động cụ thể của con trăn xảy ra, vì vậy tôi phải sử dụng au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=0thay vì chỉ đơn giản set textwidth=0trong tập tin đó.
philfreo

8

Tôi đã giải quyết điều này bằng cách thêm phần sau vào tệp .vimrc.local của mình :

" Disable annoying auto line break
fu! DisableBr()
    set wrap
    set linebreak
    set nolist  " list disables linebreak
    set textwidth=0
    set wrapmargin=0
    set fo-=t
endfu

" Disable line breaks for all file types
:au BufNewFile,BufRead *.* call DisableBr()

Điều này sẽ vô hiệu hóa ngắt dòng tự động không mong muốn cho tất cả các loại tệp


1
Hoạt động trong .vimrc. Sau khi sử dụng Janus
Eric Yang

1
Huzzah, cảm ơn! Đây là điều duy nhất làm việc cho tôi. Vì một số lý do (tôi không thể giải quyết được) macvim đã ghi đè băng thông trong vimrc của tôi cho các tệp .txt.
matt đốt cháy

0

Điều này sẽ giúp:

(Có thể BufAddBufCreatelà dư thừa, nhưng tôi đã thêm nó chỉ trong trường hợp)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.