我最近发现了 Ctrl + E 和 Ctrl + Y 的Vim快捷方式,分别向上移动了屏幕并且向下一步,而不移动光标。
你知道任何将光标留在原处但是移动屏幕以使光标成为第一行的命令吗? (拥有最后一行的命令将是一个很好的奖励)。
我可以通过手动按 Ctrl + E (或 Ctrl + Y )来实现此目的有时间,但有一个命令,不知何故直接这样做会很好。
有什么想法吗?
答案 0 :(得分:776)
vim
!) 答案 1 :(得分:550)
此外:
Ctrl - y 和 Ctrl - e 只有在光标移出屏幕时才会改变光标位置
答案 2 :(得分:33)
Vim要求光标始终位于当前屏幕中,但是,您可以将当前位置的书签滚动,然后返回到原来的位置。
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
答案 3 :(得分:11)
当您使用 Ctrl + D , Ctrl + F 时,将光标留在同一列中, Ctrl + B , Ctrl + U , G , H < / kbd>, M , L , g g
您应该定义以下选项:
:set nostartofline
答案 4 :(得分:11)
这是我在vimrc中的解决方案:
nnoremap k kzz
nnoremap j jzz
nnoremap p pzz
nnoremap P Pzz
nnoremap G Gzz
nnoremap x xzz
inoremap <ESC> <ESC>zz
nnoremap <ENTER> <ENTER>zz
inoremap <ENTER> <ENTER><ESC>zza
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
这样光标就会停留在屏幕中间,屏幕会向上或向下移动。
答案 5 :(得分:6)
我的滚动助记符...
添加到其他答案中还要注意ze
和zs
,这意味着:将屏幕移至光标的左/右(不移动光标)
+-------------------------------+
^ |
|c-e (keep cursor) |
|H(igh) zt (top) |
| ^ |
| ze | zs |
|M(iddle) zh/zH <--zz--> zl/zL |
| | |
| v |
|L(ow) zb (bottom) |
|c-y (keep cursor) |
v |
+-------------------------------+
还要查看h
和l
和t
和b
的位置,以及(使用qwertz键盘)c-e
和c-y
的位置(键盘上的“ y”也指向底部)以记住屏幕的移动位置。
答案 6 :(得分:5)
您可以使用数字为光标移动命令添加前缀,这将多次重复该命令
1 0 Ctrl + E 将执行 Ctrl + E 10次而不是1次。
答案 7 :(得分:4)
您可能会发现此问题的答案很有用:Scrolling Vim relative to cursor, custom mapping:您可以使用该问题中的ScrollToPercent(0)
来执行此操作。
答案 8 :(得分:4)
答案 9 :(得分:3)
z 输入完全符合此问题的要求。
它工作奇怪地 z z 不起作用(在Ubuntu 2016.04 LTS上vim 7.4.1689没有特殊的.vimrc)
答案 10 :(得分:2)
有时使用K和J键滚动文本很有用。 所以我有这个&#34;滚动模式&#34;我的.vimrc中的函数(也在zs上绑定)
答案 11 :(得分:2)
我过去曾经使用过这些快捷方式:
z + enter ->将当前行移动到屏幕顶部
z + 。->将当前行移动到屏幕中心
z + -->将当前行移到底部
如果不明显:
enter 表示 Return 或 Enter 键。
。表示DOT或“句号”键(.
)。
-表示HYPHEN键(-
)
对于它的值, z 。通过意外键入 Z Z 如果大写锁定已打开。
答案 12 :(得分:1)
我写了一个新的插件,它使您能够在不移动光标位置的情况下导航孔文件。它基于折叠您的位置和目标位置之间的线条,然后跳过折叠。或者中止它并且根本不动。
它也很容易在光标之间快速切换是第一行,光标是最后一行,光标在中间只需点击j,k或l(当你处于插件模式时)。 )
答案 13 :(得分:0)
输入vim并输入:
:help z
z 是用于重绘的vim命令,因此它将相对于您放置光标的位置重绘文件。您拥有的选项如下:
z + -使用光标在窗口的顶部和行的第一个非空白字符处重绘文件。
z--使用光标在窗口的底部和行的第一个非空白字符处重绘文件。
z。-使用光标在窗口的中心和行的第一个非空白字符处重绘文件。
zt -使用光标在窗口的顶部重绘文件。
zb -使用光标位于窗口底部的方式重绘文件。
zz -使用光标位于窗口中心的位置重绘文件。