2010-04-26 37 views
8

Tôi đang viết một tài liệu LaTeX trong vim và tôi có khó khăn ở 80 ký tự để dễ đọc hơn. Tuy nhiên, điều này gây ra vấn đề với việc theo dõi các thay đổi trong điều khiển phiên bản. Ví dụ, chèn "Lorem ipsum" ở phần đầu của văn bản này:Vim, LaTeX, gói từ và điều khiển phiên bản

1 Dolor sit amet, consectetur adipiscing elit. Phasellus bibendum lobortis lectus 
2 quis porta. Aenean vestibulum magna vel purus laoreet at molestie massa 
3 suscipit. Vestibulum vestibulum, mauris nec convallis ultrices, tellus sapien 
4 ullamcorper elit, dignissim consectetur justo tellus et nunc.

kết quả trong:

1 Lorum ipsum dolor sit amet, consectetur adipiscing elit. Phasellus bibendum 
2 lobortis lectus quis porta. Aenean vestibulum magna vel purus laoreet at 
3 molestie massa suscipit. Vestibulum vestibulum, mauris nec convallis ultrices, 
4 tellus sapien ullamcorper elit, dignissim consectetur justo tellus et nunc.

Khi tôi xem xét sự thay đổi này trong git, nó nói tôi rằng tất cả các dòng của đoạn văn đã thay đổi vì gói, mặc dù chỉ có một thay đổi ngữ nghĩa đã xảy ra. Một cách xung quanh vấn đề này là phải có mọi câu trên dòng riêng của nó. Điều này có vẻ giống nhau trong văn bản trả lại, nhưng nguồn gốc tại là khó khăn hơn để đọc, vì mỗi dòng có khá một dòng thời gian khác nhau:

1 Lorum ipsum dolor sit amet, consectetur adipiscing elit. 
2 Phasellus bibendum lobortis lectus quis porta. 
3 Aenean vestibulum magna vel purus laoreet at molestie massa suscipit. 
4 Vestibulum vestibulum, mauris nec convallis ultrices, tellus sapien ullamcorper elit, dignissim consectetur justo tellus et nunc.

(Nếu tôi mềm bọc tại 80, mọi thứ vẫn trông xấu, chỉ theo một cách khác.)

Có thể có văn bản trên đĩa với một dòng mới trên mỗi câu không, nhưng hiển thị và chỉnh sửa nó trong vim như thể văn bản của mỗi đoạn là một dòng dài, mềm bọc tại 80 ký tự? Tôi giả sử nó đòi hỏi một số vim-foo hơn là tinh chỉnh git hoặc LaTeX.

+0

Hmm, thấy vấn đề đó trước đây, tôi nghĩ bạn đoán về gói mềm như một giải pháp là đúng, nhưng không thể nhớ nơi để tìm "vim-foo" ... –

Trả lời

15

Không cần giới thiệu chính sách chỉnh sửa kỳ lạ: tính năng git bạn đang tìm đang sử dụng git diff --color-words để xem lại các thay đổi.

+2

Cảm ơn bạn! Đó là đơn giản hơn nhiều so với tôi đã mong đợi. – Bkkbrad

+3

Để làm rõ, git vẫn xem xét tất cả các dòng như đã thay đổi, nhưng nó làm nổi bật độc đáo chỉ những từ đã được thay đổi. – Bkkbrad

+1

@Bkkbrad: Phải, nó chỉ thay đổi cách 'diff' thể hiện sự thay đổi đối với bạn. BTW, cho git, CVS hoặc SVN bạn có thể sử dụng chế độ xem diff của 'vim' với plugin vcscommand (http://code.google.com/p/vcscommand/). Nó làm nổi bật các từ đã thay đổi ngoài các khối đã thay đổi. –

0

Tôi nghĩ một cách khác là để thay đổi chiều rộng của cửa sổ vim giống như những gì tôi đã làm thường:

  1. lúc đầu, đặt "thiết lập bọc" trong vimrc để kích hoạt "quấn" tính năng ;

  2. Để chạy vim trong thiết bị đầu cuối ảo, tôi luôn đặt chiều rộng cửa sổ của thiết bị đầu cuối là 80 ký tự (như "urxvt -geometry 80x38"). Vì vậy, bất cứ lúc nào tôi chỉnh sửa một tập tin trong vim trong thiết bị đầu cuối ảo, nó sẽ tự động quấn khi một dòng chứa hơn 80 ký tự.

  3. Nếu bạn thích gvim (gtk-vim, gnome-vim), bạn chỉ cần đặt kích thước của cửa sổ gvim bằng cách thêm một dòng trong .gvimrc, như "set lines = 38 columns = 80".

Hy vọng điều đó sẽ hữu ích. :-)

-1

Đây là cách tôi giải quyết vấn đề. Trước tiên, bạn có thể sử dụng lệnh vim (trong trạng thái bình thường) để tìm kiếm tệp tex của bạn cho các dòng dài hơn 80 ký tự:

/\%81v.\+/ 

bạn có thể xác định nó làm macro để không nhớ lệnh. Sau đó, bạn gõ vào trạng thái bình thường

nF a 

(có nghĩa là, một "n" ít, vốn "F", một không gian "", một chút "a", một "Enter", và một). Điều này giúp bạn phá vỡ dòng của bạn nhẹ nhàng sau khi một số từ.Bạn có thể ghi lại năm nét chính này dưới dạng macro (howto: trong trạng thái bình thường nhấn "qa" để bắt đầu quay và chỉ thực hiện các bước "nF a" rồi nhấn Esc và "q" để dừng. Khi phát, nhấn "@a "bởi vì chúng tôi đã lưu macro thành" a ". Để phát macro 100 lần (nó không bị tổn thương nếu bạn chơi quá nhiều lần, nó sẽ tự động dừng khi hoàn thành tất cả công việc) bằng cách nhấn" 100 @ a "trong bình thường trạng thái)

Điều này có giải quyết được sự cố của bạn không?

+0

Xin lỗi, điều đó có thể hữu ích với việc gói chữ trong vim, nhưng điều đó không thực sự giải quyết được câu hỏi của tôi về cách hiểu git hiểu rằng một từ đã thay đổi không ảnh hưởng đến toàn bộ đoạn văn khi có gói cứng. Cảm ơn bạn đã suy nghĩ về vấn đề này! – Bkkbrad

+0

Bằng cách nào đó tôi thích gói từ vì tôi nghĩ (mặc dù có lẽ bạn cảm thấy bị chèn đoạn văn khó đọc) nhưng không chỉ giải quyết được vấn đề của bạn mà còn tạo điều kiện cho công việc trong tương lai như mã gấp, và các bản vá email qua gmail (gmail kết thúc tốt đẹp) ở chế độ văn bản nếu nó quá dài, vì vậy nếu bạn gửi các bản vá lỗi của bạn có thể có vấn đề). Bên cạnh tất cả điều này, tôi nghĩ rằng hệ thống LaTeX khuyến khích mọi người quấn các đoạn dài, vì nó chỉ xử lý một ngắt dòng đơn lẻ như một khoảng trắng. Bạn nghĩ sao? –

Các vấn đề liên quan