2009-02-10 8 views
5

Tôi muốn in một tài liệu văn bản đơn giản và đảm bảo các từ được bọc trên các ranh giới từ. Tôi đã thử cảLàm thế nào để bạn kích hoạt từ bọc trong vim khi in

set linebreak 

set wrap 

nhưng khi in, nó chỉ phá vỡ trên cột bên phải ở giữa các từ. Điều này có thể cho việc in ấn không?

+0

ghi chú hoạt động tốt, lưu ý rằng bản ghi đã thêm hỗ trợ word-wrap trong 1.6. – mattwright

Trả lời

6

Bạn đang tạo một file văn bản mà không cần bất kỳ linebreaks tích hợp sẵn nên mỗi đoạn là một "dòng" duy nhất, mặc dù với linebreak và bộ bọc, có vẻ như họ đang có nhiều dòng). Đây là lý do tại sao in ấn phá vỡ ở những nơi cố định. (Theo http://www.vim.org/htmldoc/various.html#printing nó không có vẻ như bạn có thể có vim tôn trọng linebreak/quấn trong in.)

Để tránh điều này, nếu bạn muốn văn bản để bọc trong khi bạn đang chỉnh sửa, làm

set textwidth=70 

để quấn ở cột thứ 70. Nếu bạn muốn tệp của mình có các dòng dài (ví dụ: để định dạng tốt khi được tải vào MS Word hoặc một cái gì đó), thì bạn sẽ phải xử lý trước phiên bản văn bản trước khi in. Vì vậy, ví dụ, bạn có thể thử:

fmt file.txt | lpr 

hoặc nếu bạn đã enscript cài đặt, bạn sẽ có thể thử:

enscript --word-wrap file.txt 

để in. Một tập tin hiện tại có thể được bọc bằng cách chạy trong vim:

gggqG 

nghĩa là, 'gg' để chuyển đến đầu tập tin và 'gqG' để định dạng lại 'GQ' từ vị trí hiện tại (ví dụ: dòng đầu tiên) để dòng cuối cùng (bằng cách vào 'G'). 'gq' sẽ tôn trọng cài đặt băng thông hiện tại của bạn.