textwidth = 0 dan wrapwidth = 0 dalam .vimrc.local tidak dihormati


11

Saya memiliki baris berikut di bagian bawah .vimrc.local saya:

set textwidth=0 
set wrapmargin=0

Namun, setiap kali saya membuka file baru, kedua nilai ini diatur ke default (masing-masing 72 dan 2) dan bukan pengaturan khusus saya. Pengaturan lain dalam file .vimrc.local saya tampaknya diatur (tab, dll) tetapi hanya dua ini yang terus diatur ulang. Jika saya masuk :source ~/.vimrc.localke pengaturan berubah dan bekerja dengan benar.

Apakah ada cara untuk melihat apa yang mengatur apa pun ketika vim dijalankan? Saya menduga bahwa beberapa plugin atau pengaturan yang menyertai MacVim atau Janus sedang mengatur opsi-opsi ini, tetapi saya tidak tahu bagaimana cara melihat setiap pengaturan sekaligus.


Saya belum pernah melihat ~/.vimrc.localsebelumnya. The versi Janus yang saya temukan sumber itu (jika ada) pada akhir nya vimrcberkas (yang merupakan tujuan dari ~/.vimrcsymlink bahwa menginstal, jika Anda menggunakan metode instalasi). Mungkin tidak semua versi Janus melakukan ini — banyak orang tampaknya menggabungkan yang saya temukan ke dalam garpu mereka, tetapi saya tidak tahu apakah ini yang "resmi" atau tidak. Hanya untuk memperjelas, di mana Anda mendapatkan Janus Anda? Jika itu berbasis Git, komit apa yang Anda gunakan?
Chris Johnsen

Layak dibaca ini formatoptions defaul
anishjp

Jawaban:


13

Untuk mengetahui di mana 'textwidth' dan 'wrapmargin' ditetapkan terakhir, jalankan

:verbose set tw? wm?

Untuk melihat file apa yang telah dipasok, jalankan

:scriptnames

Jika itu tidak cukup untuk menemukan masalah, Anda dapat menggunakan opsi -V ketika Vim memulai dan mencatat berbagai peristiwa startup ke file. Lihat

:help -V

Juga, nilai default untuk 'textwidth' dan 'wrapmargin' adalah 0, bukan 72 dan 2, jadi sudah ada sesuatu yang mengaturnya ke nilai-nilai non-default. Untuk nilai default, lihat

:help 'textwidth'
:help 'wrapmargin'

PS
Hal lain yang perlu diperiksa adalah kemungkinan plugin filetype melakukan pengaturan tersebut. The :verbose set ...perintah harus menunjukkan di mana pengaturan tersebut sedang dilakukan, tetapi Anda juga bisa mengeksekusi

:set filetype?

untuk melihat tipe file saat ini, kemudian buka $VIMRUNTIME/ftplugin/<filetype>.vim, di mana <filetype> adalah nilai dari opsi 'tipe file' yang ditemukan di atas, untuk melihat apakah pengaturan tersebut dibuat di sana. Anda dapat mengesampingkan pengaturan yang dibuat oleh plugin filetype dengan meletakkan pengaturan Anda dalam file yang Anda buat, bernama ~ / .vim / after / ftplugin / <filetype> .vim. Lihat

:help filetype-overrule

item # 3.


Ternyata masalah itu masuk ~/.vimrc, yang datang dari Janus. Saya berharap itu source ~/.vimrc.localmenjadi hal terakhir yang dieksekusi, tapi itu mengatur keduanya dengan auperintah. Sepertinya pengaturan dalam ~/.vimrcberisi banyak pilihan gaya orang-orang yang memelihara Janus. Terima kasih telah menulis jawaban yang akan membantu saya memecahkan masalah ini untuk diri saya sendiri di masa depan. :)
Ian Potter

1
Saya juga datang ke sini karena masalah ini di Janus. Tetapi perhatikan, dalam Janus terbaru ~/.vimrc.aftertidak berjalan terakhir, namun ada, misalnya, tindakan khusus python terjadi, jadi saya harus menggunakan au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=0daripada hanya set textwidth=0dalam file itu.
philfreo

8

Saya memecahkan masalah ini dengan menambahkan yang berikut ke file .vimrc.local saya :

" 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()

Ini harus menonaktifkan jeda baris otomatis yang tidak diinginkan untuk semua jenis file


1
Berfungsi di .vimrc.after saat menggunakan Janus
Eric Yang

1
Huzzah, terima kasih! Ini adalah satu-satunya hal yang berhasil untuk saya. Untuk beberapa alasan (saya tidak bisa bekerja) macvim mengesampingkan textwidth di vimrc saya untuk file .txt.
Matt burns

0

Ini akan membantu:

(Mungkin BufAdddan BufCreateberlebihan, tapi saya menambahkannya untuk berjaga-jaga)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.