Cách tắt cuộn ngang
Tôi đã viết một giải pháp vô hiệu hóa cuộn ngang, (bằng cách bỏ qua đề xuất của @ Ярос mặc dù là đề xuất ), nhưng tôi không nghĩ bạn sẽ thích nó:
augroup NoScrollPlease
autocmd!
autocmd CursorMoved * norm!99zH
augroup END
Điều này ngăn việc cuộn sang phải bằng phương pháp cực kỳ chính xác chỉ cần cuộn lại lần nữa. *
* Vì tôi không biết bạn đã cuộn sang bên phải bao xa hoặc các dòng của bạn dài bao nhiêu, tôi đang cuộn một lượng tùy ý "xa" 99 độ rộng màn hình. Cũng lưu ý rằng tôi không bận tâm kiểm tra xem bạn có thực sự cuộn sang phải hay không trước khi cuộn "trở lại" sang trái. Nếu bạn thực sự có ý định sử dụng giải pháp này, bạn có thể muốn đánh bật thứ gì đó bằng cách so sánh các giá trị của getcurpos()
, 'sidescroll'
và 'columns'
.
Tại sao bạn không muốn làm như vậy
Lý do bạn sẽ không sử dụng điều này là vì vấn đề cuộn bên dưới là một vấn đề khác: Vim sẽ không cho phép bạn di chuyển con trỏ "tắt màn hình". Do đó, nếu bạn cuộn sang trái theo cách mà con trỏ sẽ tắt màn hình sau khi cuộn, Vim sẽ đưa con trỏ đi cùng với nó và di chuyển nó sang bên trái một cách hữu ích.
Nhưng vì tính toán mà nó sử dụng cho việc con trỏ có ở trên màn hình giống với cách tính toán mà con trỏ đang sử dụng để quyết định có cuộn trong vấn đề ban đầu hay không, hiệu ứng ròng là với "giải pháp" này, nếu bạn cố gắng di chuyển con trỏ sang phải trong tình huống thường gây ra cuộn sang một bên, bây giờ con trỏ từ chối di chuyển. **
** Để chính xác hơn một chút, tùy thuộc vào vị trí hiện tại và chuyển động, con trỏ có thể di chuyển sang phải; nó sẽ không di chuyển qua vị trí thường xảy ra cuộn.
Sự lựa chọn khác?
Vì vậy, tôi sợ cách giải quyết theo kế hoạch của bạn sẽ không được triển khai. Nếu bạn muốn một giải pháp khả thi cho vấn đề chung, thì nó sẽ cần được triển khai trong mã nguồn Vim.
Như bạn đã lưu ý , điều này khó có thể đến sớm bất cứ lúc nào, vì vậy tôi sợ rằng cách tốt nhất của bạn là giải quyết cho trường hợp cụ thể của vấn đề được hiển thị trong gif của bạn là yêu cầu tác giả plugin ngừng sử dụng conceal
hoàn toàn và thay vào đó loại bỏ hoàn toàn văn bản ẩn khỏi bộ đệm.
Dựa trên đầu ra không được giải thích và đề cập đến vim-plugin-AnsiEsc
trong tài liệu, đây có thể là điều mà họ có thể thực hiện, nhưng thật khó để nói chắc chắn nếu không có kiến thức về cách thức hoạt động của plugin.
:set wrap