捲動

Nvim :help 頁面,是使用 tree-sitter-vimdoc 解析器從 原始碼 產生


捲動
這些指令會移動視窗的內容。如果游標位置被移出視窗,游標會被移動到視窗內 (周圍有 'scrolloff' 設定的螢幕行數)。一頁指的是視窗中的行數減二。這些指令的助記符可能會有點令人困惑。請記住,這些指令指的是在緩衝區中向上或向下移動視窗(您所看到的緩衝區部分)。當視窗在緩衝區中向上移動時,視窗中的文字會在螢幕上向下移動。
請參閱使用者手冊的 03.7 節以取得介紹。

1. 向下捲動 scroll-down

以下指令會向下移動編輯視窗(您所看到的緩衝區部分)(這表示可以看到文字緩衝區中更多的下方行數)
CTRL-E
CTRL-E 將視窗在緩衝區中向下捲動 [count] 行。文字會在螢幕上向上移動。助記符:Extra lines(額外的行)。
CTRL-D
CTRL-D 將視窗在緩衝區中向下捲動。行數來自 'scroll' 選項(預設值:半個螢幕)。如果給定 [count],則先將 'scroll' 選項設定為 [count]。游標會在檔案中向下移動相同的行數(如果可以的話;當行換行時以及到達檔案結尾時,可能會有所不同)。當游標位於緩衝區的最後一行時,不會發生任何事情,並會發出嗶聲。另請參閱 'startofline' 選項。
<S-Down><S-Down> <kPageDown> <PageDown><PageDown> CTRL-F <S-CR><S-CR> <S-NL> <S-+>SHIFT-+ <S-Plus> CTRL-F 將視窗在緩衝區中向前(向下)捲動 [count] 頁。另請參閱 'startofline' 選項。當只有一個視窗時,可能會使用 'window' 選項。
z+
z+ 沒有 [count]:重新繪製,視窗頂部的行位於視窗的頂部。將游標放在該行,位於該行的第一個非空白處。有 [count]:就像 "z<CR>" 一樣。

2. 向上捲動 scroll-up

以下指令會向上移動編輯視窗(您所看到的緩衝區部分)(這表示可以看到文字緩衝區中更多的上方行數)
CTRL-Y
CTRL-Y 將視窗在緩衝區中向上捲動 [count] 行。文字會在螢幕上向下移動。注意: 當使用 MS-Windows 按鍵綁定時,CTRL-Y 會被重新對應為重做。
CTRL-U
CTRL-U 將視窗在緩衝區中向上捲動。行數來自 'scroll' 選項(預設值:半個螢幕)。如果給定 [count],則先將 'scroll' 選項設定為 [count]。游標會在檔案中向上移動相同的行數(如果可以的話;當行換行時以及到達檔案結尾時,可能會有所不同)。當游標位於緩衝區的第一行時,不會發生任何事情,並會發出嗶聲。另請參閱 'startofline' 選項。
<S-Up><S-Up> <kPageUp> <PageUp><PageUp> CTRL-B <S--><S-Minus> SHIFT-MINUS CTRL-B 將視窗在緩衝區中向後(向上)捲動 [count] 頁。另請參閱 'startofline' 選項。當只有一個視窗時,可能會使用 'window' 選項。
z^
z^ 沒有 [count]:重新繪製,視窗底部的行位於視窗的底部。將游標放在該行,位於該行的第一個非空白處。有 [count]:首先捲動文字,將 [count] 行放在視窗的底部,然後重新繪製,將現在位於視窗頂部的行放在視窗的底部。將游標放在該行,位於該行的第一個非空白處。

3. 相對於游標捲動 scroll-cursor

以下指令會重新定位編輯視窗(您所看到的緩衝區部分),同時保持游標在同一行上。請注意,'scrolloff' 選項可能會導致在游標上方和下方顯示上下文行。
z<CR>
z<CR> 重新繪製,將 [count] 行放在視窗頂部(預設游標行)。將游標放在該行的第一個非空白處。
zt
zt 就像 "z<CR>" 一樣,但將游標保留在同一欄。
zN<CR>
z{height}<CR> 重新繪製,使視窗高度為 {height} 行。這在螢幕更新非常慢時,使行數變少很有用。無法使高度超過實際螢幕高度。
z.
z. 重新繪製,將 [count] 行放在視窗中心(預設游標行)。將游標放在該行的第一個非空白處。
zz
zz 就像 "z." 一樣,但將游標保留在同一欄。小心:如果大寫鎖定鍵開啟,此指令會變成 "ZZ":寫入緩衝區並退出!
z-
z- 重新繪製,將 [count] 行放在視窗底部(預設游標行)。將游標放在該行的第一個非空白處。
zb
zb 就像 "z-" 一樣,但將游標保留在同一欄。

4. 水平捲動 scroll-horizontal

對於以下四個指令,游標會跟隨螢幕。如果游標所在的字元被移出螢幕,游標會被移動到螢幕上最接近的字元。不會使用 'sidescroll' 的值。
z<Right> 或 zl z<Right> zl 將文字上的視圖向右移動 [count] 個字元,因此將文字向左捲動 [count] 個字元。這僅在 'wrap' 關閉時有效。
z<Left> 或 zh z<Left> zh 將文字上的視圖向左移動 [count] 個字元,因此將文字向右捲動 [count] 個字元。這僅在 'wrap' 關閉時有效。
zL
zL 將文字上的視圖向右移動半個螢幕寬度,因此將文字向左捲動半個螢幕寬度。這僅在 'wrap' 關閉時有效。
zH
zH 將文字上的視圖向左移動半個螢幕寬度,因此將文字向右捲動半個螢幕寬度。這僅在 'wrap' 關閉時有效。
對於以下兩個指令,游標不會在文字中移動,只有文字會在螢幕上捲動。
zs
zs 水平捲動文字,將游標定位在螢幕的開頭(左側)。這僅在 'wrap' 關閉時有效。
ze
ze 水平捲動文字,將游標定位在螢幕的結尾(右側)。這僅在 'wrap' 關閉時有效。

5. 同步捲動 scroll-binding

有時,需要將兩個或多個視窗綁定在一起,以便當一個視窗捲動時,其他視窗也會捲動。在 Vim 中,可以透過設定(視窗特定的)'scrollbind' 選項來為視窗提供此行為。當設定了 'scrollbind' 的視窗捲動時,所有其他 'scrollbind' 視窗也會盡可能捲動相同的量。'scrollbind' 的行為可以透過 'scrollopt' 選項修改。
當使用捲軸或滑鼠滾輪時,只有在捲動具有焦點(游標所在位置)的視窗時才會發生綁定。您可以使用此方法來避免暫時捲動綁定,而無需重置選項。
當視窗也設定了 'diff' 選項時,捲動綁定會使用兩個緩衝區之間的差異來精確同步位置。否則,會使用以下方法。
scrollbind-relative
每個 'scrollbind' 視窗都會追蹤其「相對偏移」,可以將其視為目前視窗的垂直捲動位置與另一個視窗的垂直捲動位置之間的差異。當要求其中一個 'scrollbind' 視窗垂直捲動超過其文字的開頭或結尾限制時,該視窗將不再捲動,而是會記住它希望超過限制多少。視窗會保留此資訊,以便它可以保持相同的相對偏移,無論是否要求其捲動超過緩衝區的限制。
但是,如果具有超出緩衝區限制的相對偏移的 'scrollbind' 視窗被給予游標焦點,則其他 'scrollbind' 視窗必須跳到目前視窗的相對偏移有效的位置。可以透過清除 'scrollopt' 選項中的「jump」旗標來變更此行為。
syncbind :syncbind :sync :syncbind 強制所有 'scrollbind' 視窗具有相同的相對偏移。也就是說,當任何一個 'scrollbind' 視窗捲動到其緩衝區的頂部時,所有 'scrollbind' 視窗也會位於其緩衝區的頂部。
scrollbind-quickadj
當使用鍵盤指令垂直捲動視窗時,'scrollbind' 旗標有意義,當在具有游標焦點的視窗中使用垂直捲軸或滑鼠滾輪時,也有意義。但是,當在沒有游標焦點的視窗中使用垂直捲軸或滑鼠滾輪時,會忽略 'scrollbind'。這允許快速調整 'scrollbind' 視窗的相對偏移。

6. 使用滑鼠滾輪捲動 scroll-mouse-wheel

當您的滑鼠有滾輪時,它應該可以在 GUI 和任何具有滑鼠支援的終端機中與 Nvim 搭配使用。預設情況下,僅支援垂直滾輪,但某些 GUI 也支援水平滾輪。
請注意,水平捲動僅在設定了 'nowrap' 時才有效。此外,除非設定了 'guioptions' 中的 "h" 旗標,否則如果游標行即將捲動出螢幕,游標會移動到最長的可見行(與水平捲軸的工作方式類似)。
您可以使用 'mousescroll' 選項來控制要捲動的行數/欄數。您也可以透過對應按鍵來修改預設行為。例如,要在一般模式下一次捲動一頁
:map <ScrollWheelUp> <C-B>
:map <ScrollWheelDown> <C-F>
捲動按鍵也可以與 Shift、Ctrl 和 Alt 等修飾鍵組合使用。
當使用滑鼠滾動時,游標目前所在的視窗會被滾動。這允許您滾動非作用中的視窗。請注意,當滾動按鍵被重新映射到鍵盤按鍵時,無論目前游標的位置在哪裡,作用中的視窗都會受到影響。
主頁
指令索引
快速參考