Tôi thích rằng các dòng dài được hiển thị trên nhiều dòng thiết bị đầu cuối; Tôi không thích rằng vim chèn dòng mới vào văn bản thực tế của tôi. Tôi nên thay đổi phần nào của .vimrc?
Tôi thích rằng các dòng dài được hiển thị trên nhiều dòng thiết bị đầu cuối; Tôi không thích rằng vim chèn dòng mới vào văn bản thực tế của tôi. Tôi nên thay đổi phần nào của .vimrc?
Câu trả lời:
Sử dụng
:set wrap
Để bọc các dòng một cách trực quan, tức là dòng vẫn là một dòng văn bản, nhưng Vim hiển thị nó trên nhiều dòng.
Sử dụng
:set nowrap
Để hiển thị các dòng dài chỉ là một dòng (tức là bạn phải cuộn theo chiều ngang để xem toàn bộ dòng).
Tôi thích rằng các dòng dài được hiển thị trên nhiều dòng thiết bị đầu cuối
Kiểu gói trực quan / ảo này được bật với wrap
tùy chọn cửa sổ:
set wrap
Tôi không thích rằng vim chèn dòng mới vào văn bản thực tế của tôi.
Để tắt gói dòng vật lý, hãy xóa cả hai tùy chọn textwidth
và wrapmargin
bộ đệm:
set textwidth=0 wrapmargin=0
set textwidth=0 wrapmargin=0
hoạt động nhưng nếu tôi đặt nó vào .vimrc
, nó không có tác dụng gì đối với các tệp văn bản thuần túy. Làm thế nào để tôi tìm ra và loại bỏ ghi đè?
:verbose set textwidth? wrapmargin?
. Điều này sẽ cho bạn biết các giá trị hiện tại của chúng và cũng là nơi chúng được đặt. Có thể bạn có một plugin ghi đè chúng. Trong trường hợp đó, bạn có thể gỡ cài đặt plugin đó hoặc thử ghi đè cài đặt plugin sau trong runtimepath của bạn (ví dụ ~/.vim/after
:) hoặc bằng chế độ tự động của riêng bạn. Cách tiếp cận đúng sẽ phụ thuộc vào nơi / cách nó được thiết lập lại.
set wrap
và set linebreak
là những gì đã làm cho tôi.
Tôi không chắc là tôi hiểu hoàn toàn, nhưng bạn có thể đang tìm kiếm cài đặt cấu hình 'định dạng'. Hãy thử một cái gì đó như :set formatoptions-=t
. Các t
tùy chọn sẽ chèn ngắt dòng để làm cho bọc văn bản ở bộ chiều rộng bằng textwidth
. Bạn cũng có thể đặt lệnh này trong của bạn .vimrc
, chỉ cần loại bỏ dấu hai chấm ( :
).
tw
.
Sử dụng :set nowrap
.. hoạt động như một nét duyên dáng!
:set tw=0
VIM sẽ không tự động chèn ngắt dòng, nhưng sẽ tiếp tục ngắt dòng.
Bạn có thể thấy set lbr
hữu ích; với set wrap
điều này sẽ bao bọc nhưng chỉ cắt dòng trên khoảng trắng và không ở giữa một từ.
ví dụ
without lbr the li
ne can be split on
a word
và
with lbr on the
line will be
split on
whitespace only
set nolinebreak
thay vìset lbr
Thật kỳ lạ khi một thiết lập đơn giản như vậy sẽ đòi hỏi lượng 'h Focus-p Focus' này để hoạt động.
Để trả lời câu hỏi của bạn bây giờ, đối với tôi nó dường như hoạt động với sự kết hợp của các điều sau đây:
:set wrap linebreak nolist
(điều này dường như để ngăn chặn các dòng hiện có bị phá vỡ, chỉ cần bọc.)
VÀ
set formatoptions=l
(điều này ngăn các dòng mới / chỉnh sửa bị phá vỡ, trong khi + = không làm điều đó cho tôi vì các cài đặt / plugin khác dường như tìm thấy không gian và thêm các tùy chọn riêng của chúng ghi đè lên tôi.)
Nếu, giống như tôi, bạn đang chạy gVim trên Windows thì tệp .vimrc của bạn có thể tìm nguồn cung cấp tệp Vimscript 'ví dụ' khác tự động đặt textwidth
(trong trường hợp của tôi là 78
) cho các tệp văn bản.
Câu trả lời của tôi cho một câu hỏi tương tự như câu hỏi này - Cách dừng văn bản gói gVim ở cột 80 - trên trang web Vi và Vim Stack Exchange :
Trong trường hợp của tôi, bình luận của Vitor đề nghị tôi chạy như sau:
:verbose set tw?
Làm như vậy đã cho tôi đầu ra sau:
textwidth=78 Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim
Trong vimrc_example.vim , tôi đã tìm thấy các dòng có liên quan:
" 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 ...
Và tôi thấy rằng .vimrc của tôi đang tìm nguồn cung cấp tệp đó:
source $VIMRUNTIME/vimrc_example.vim
Trong trường hợp của tôi, tôi không muốn
textwidth
được đặt cho bất kỳ tệp nào, vì vậy tôi chỉ nhận xét dòng có liên quan trong vimrc_example.vim .
autocmd FileType text setlocal textwidth=0
tệp vimrc và điều đó đã khắc phục sự cố khi các giải pháp đề xuất khác không có.
Đúng là đặt ngay bây giờ sẽ cho phép bạn dán thành một dòng dài mà không cần vi / vim thêm dòng mới, nhưng sau đó dòng không được bọc trực quan để dễ đọc. Nó chỉ là một dòng dài mà bạn phải cuộn qua.
Để có dòng bao bọc trực quan nhưng không có ký tự dòng mới được chèn vào nó, hãy đặt bọc (có thể là mặc định để không cần thiết) và đặt text thong = 0 .
Trên một số hệ thống, cài đặt text thong = 0 là mặc định. Nếu bạn không thấy đó là trường hợp, hãy thêm set text thong = 0 vào tệp .exrc để nó trở thành mặc định của người dùng cho tất cả các phiên vi / vim.
:set nowrap
ngược lại với những gì bạn muốn :(.