Tôi đã thực sự tự hỏi điều tương tự ngoại trừ thanh tab - cách ngăn chặn sự thay đổi phiền toái đó xảy ra khi thanh tab được hiển thị hoặc ẩn. Bạn đã xem xét một hàm bao hàm? Sau đây dường như làm việc cho các ví dụ ps (nó vẫn sẽ gây ra một sự thay đổi nếu cửa sổ xem trước sẽ che khuất con trỏ)
se splitbelow splitright
fun! PsWrapper(text)
let view=winsaveview()
exe 'ps' a:text
call winrestview(view)
endfun
Trong khi chúng tôi đang ở đây ... các trường hợp thanh tab dường như đòi hỏi một số ma thuật đen . Tức là, như ai đó đã chỉ ra, thanh tab sẽ làm cho văn bản cuộn xuống nếu con trỏ ở trên dòng giữa (??). Nhưng điều này dường như làm việc - để luôn luôn hiển thị một thanh tab:
let [view,g:stal]=[winsaveview(),&stal]
let [view.topline,&stal]=[view.topline+!g:stal,2]
call winrestview(view)
và để khôi phục lại các thiết lập
let [view.topline,&stal]=[view.topline-!g:stal,g:stal]
call winrestview(view)
Tôi đã những thiết lập như là tốt, tôi đang nói về phong trào xảy ra khi thanh tabbar gốc một cái: ': ps/something /', sau đó ': pclose'. –
Bạn nói đúng. Tuy nhiên, chuyển động đó chỉ xảy ra khi con trỏ ở dưới giữa cửa sổ. Có lẽ một cái gì đó như 'nnoremap ps zt: ps'? –
romainl
Tôi muốn ngăn chặn chuyển động mỗi khi cửa sổ mở ra, tôi thực sự không bao giờ sử dụng ': ps', nó chỉ là một ví dụ cho thấy vấn đề. –