VIM怎樣讓編輯行自動位於屏幕中間?
寫代碼時,經常寫著寫著就到低端了。
vim怎樣設置,可以在這種情況下,讓游標所在行自動處於屏幕中間呢
一般是按「zz」調的中間。
如果你是希望固定,那麼可以設置scrolloff:
"scrolloff" "so" 數值型 (預設為 0)
全局
{Vi 無此功能}
游標上下兩側最少保留的屏幕行數。這使你工作時總有一些可見的上下文。
如果你設置此選項為很大的值 (比如 999),游標所在的行將總定位在窗口的中
間位置 (除非你非常靠近文件開始或者結束的地方,或者有長行迴繞)。
水平滾動見 "sidescrolloff"。
注意: 如果置位 "compatible",該選項被設為 0。
然後設一下就好了:
下面總有3行:se so=3
總在中間
:se so=999
nnoremap j jzz
nnoremap k kzz
當然你還可以用第二種方法:
auto insertleave,cursormoved * normal! zz
不過,第二種方法雖然看起來更簡單,但會影響滑鼠選中操作。
第三種方法是,設置scrolloff(上下滾動保留的行數)為一個很大的值:set scrolloff=999
雖然第三種方法看起來更像是標準方法,但沒有被我使用,因為移動到文件末尾的時候並不能居中(可能Vim是考慮到應該總是顯示盡量多的內容才這樣設計吧),而寫代碼的時候大多數時間都停留在文件末尾,我們總不能一直盯著屏幕的底邊碼代碼吧。。。
綜上,還是第一種方法的效果比較理想,不過映射j和k鍵僅僅是作為一個演示,實際使用的話,我還會映射更多的鍵:nnoremap &
noremap j gjzz
noremap k gkzz
noremap n nzz
noremap &
noremap * *zz
noremap # #zz
noremap &
noremap &
無論普通模式還是編輯模式,視線始終保持在屏幕中央。(??????) ?不用謝,叫我雷鋒。GitHub - ashfinal/vimrc-config: re-vim config
普通模式下,按zz即可,另外zt和zb分別定位到屏幕頂部和底部。
如果是在編輯模式下的,可以先按ctrl+o,再按zz,可以定位之後立即回到編輯模式繼續編寫。
fun! CTRL_L()
let l = line(".")
let wl = winline()
let wh = winheight(0)
let b = wh - so
let t = so + 1
" l in [TOP, MIDDLE]
return wl * 2 &<= wh + 1 ?
wl &<= t ? "zb" : "zt"
: "zz" " l in (MIDDLE, BOTTOM)
endf
nnoremap &
imap &
推薦閱讀:
※如何評價 vim 8.0?
※為什麼markdown不支持字型大小和字體顏色?
※怎麼在自己的網頁上使用MarkDown編輯器呢?
※Sublime Text 2 與 TextMate 2 相比有哪些優缺點?
※notepad++里的++用英文怎麼發音?