như @flukus đã nói trong một nhận xét cho câu trả lời trước đó mà bạn có thể call feedkeys["lh"]
(nó di chuyển con trỏ sang phải và quay lại bên trái, điều này bình thường không gây hại khi xem tệp nhật ký)
Vì vậy, nếu bạn kết hợp phần còn lại của câu trả lời, bạn có một đường thẳng, bạn có thể chạy từ ex (whithin vim) khi cần:
:set autoread | au CursorHold * checktime | call feedkeys("lh")
(nếu bạn muốn chuyển (gần) đến cuối tệp, chỉ cần sử dụng "G" thay vì "lh" với phím nguồn cấp dữ liệu)
Giải thích:
- autoread : đọc tệp khi được thay đổi từ bên ngoài (nhưng nó không tự hoạt động, không có bộ đếm thời gian bên trong hoặc thứ gì đó tương tự. Nó sẽ chỉ đọc tệp khi vim thực hiện một hành động, như lệnh trong ex :!
- Thời gian kiểm tra CursorHold * : khi người dùng không di chuyển con trỏ trong thời gian được chỉ định trong 'thời gian cập nhật' (theo mặc định là 4000 mili giây), thời gian kiểm tra được thực thi, kiểm tra các thay đổi từ bên ngoài tệp
- hãy gọi feedkeys ("lh") : con trỏ được di chuyển một lần, sang phải và qua trái. và sau đó không có gì xảy ra (... có nghĩa là CursorHold được kích hoạt, có nghĩa là chúng ta có một vòng lặp )
Ngoài ra, bạn có thể :set syntax=logtalk
tô màu nhật ký
Để dừng cuộn khi sử dụng call feedkeys("G")
, hãy thực thi :set noautoread
- bây giờ vim sẽ cho biết, tệp đã bị thay đổi. Hãy hỏi xem người ta có muốn đọc các thay đổi hay không)
(Điều này có bất kỳ tác dụng phụ nào không?)
Chỉnh sửa: Tôi thấy một tác dụng phụ: nếu một người sử dụng phím nguồn cấp dữ liệu "G", nó sẽ cuộn xuống mọi vùng đệm hiện đang mở ?! Vì vậy, không thể làm việc trong bộ đệm bên trái của cửa sổ splittet trong khi bộ đệm bên phải tự động cuộn xuống tệp nhật ký