如何在Vim中移动屏幕而不移动光标?
我最近发现了Vim的Ctrl+E和Ctrl+Y快捷键,它们分别以一行步长上下移动屏幕,而不移动光标 您知道有什么命令会将光标留在原来的位置,但会移动屏幕,使光标所在的行成为第一行吗?(在最后一行有一个命令将是一个不错的奖励) 我可以通过手动按Ctrl+E(或Ctrl+Y)正确的次数来实现这一点,但是有一个直接执行此操作的命令会更好如何在Vim中移动屏幕而不移动光标?,vim,scroll,cursor-position,Vim,Scroll,Cursor Position,我最近发现了Vim的Ctrl+E和Ctrl+Y快捷键,它们分别以一行步长上下移动屏幕,而不移动光标 您知道有什么命令会将光标留在原来的位置,但会移动屏幕,使光标所在的行成为第一行吗?(在最后一行有一个命令将是一个不错的奖励) 我可以通过手动按Ctrl+E(或Ctrl+Y)正确的次数来实现这一点,但是有一个直接执行此操作的命令会更好 有什么想法吗?Vim要求光标始终在当前屏幕上,但是,您可以将当前位置标记为书签并滚动,然后返回到您所在的位置 mg # This book marks the cu
有什么想法吗?Vim要求光标始终在当前屏幕上,但是,您可以将当前位置标记为书签并滚动,然后返回到您所在的位置
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
mg#本书将当前位置标记为g(可以是任何字母)
`g#返回g
您可能会发现对“”的回答很有用
您可以使用该问题中的滚动百分比(0)来执行此操作。- zz-将当前行移到中间
在屏幕上的位置
(小心zz,如果您碰巧意外地将Caps锁定,您将保存并退出
!)vim
- zt-移动当前线路 在屏幕的顶部
- zb-移动 将当前行添加到 屏风
- Ctrl-y将屏幕上移一行
- Ctrl-e将屏幕向下移动一行
- Ctrl-u将光标和屏幕向上移动½页
- Ctrl-d将光标和屏幕向下移动½页
- Ctrl-b将屏幕上移一页,光标移到最后一行
- Ctrl-f将屏幕向下移动一页,光标移到第一行
由于有时使用K键和J键滚动文本很有用,因此我在.vimrc(也绑定到zs)中有这个“滚动模式”功能
请参见。使用Ctrl+D、Ctrl+F、Ctrl+B、Ctrl+U、G、H、M、L、gg时,将光标保留在同一列中 您应该定义以下选项:
:set nostartofline
您可以在光标移动命令的前面加上一个数字,这将重复该命令很多次
10Ctrl+E将执行Ctrl+E 10次而不是一次。以下是我在vimrc中的解决方案:
"keep cursor in the middle all the time :)
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>zzi
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
<代码>“始终保持光标在中间:”
nnoremap k kzz
nnoremap j jzz
NNOREPZZ
NNOREPZZ
nnoremap G Gzz
nnoremap x xzz
inoremap zz
nnoremap zz
Inoremapzzi
诺雷奥奥扎地图
诺雷奥奥扎地图
阿扎地图
使光标停留在屏幕的中间,屏幕将向上或向下移动。
ZEnter确实执行了这个问题所要求的。
奇怪的是,zz不起作用(Ubuntu2016.04 LTS上的vim 7.4.1689没有特殊的.vimrc)我写了一篇文章,让我可以在不移动光标位置的情况下导航文件。它基于在你的位置和目标位置之间折线,然后跳过折线,或者中止它,完全不移动 当你处于插件模式时,在第一行、最后一行和中间的光标之间快速切换也是很容易的。我想这将是一个不错的选择。 < P>我惊讶的是没有人使用光标停留在页面中间的选项。 尝试以下方法:
:set so=999
这是Vim wiki上第一个推荐的方法,效果很好。我过去使用过这些快捷方式(注意:单独的按键,即点击z,放手,点击后续按键): z回车-->将当前行移到屏幕顶部 z。-->将当前行移动到屏幕中心 z--->将当前行移动到底部 如果不明显: 回车表示回车键或回车键 .表示点或“完全停止”键(
)
-表示连字符键(-
)
值得一提的是,z.避免了在caps lock打开时意外键入ZZ以保存和关闭Vi的危险。输入vim并键入:
:帮助z
z是用于重画的vim命令,因此它将相对于光标的位置重画文件。您有以下选项:
z+-用光标在窗口的顶部重新绘制文件,并在行的第一个非空白字符处
z--用光标在窗口底部和行的第一个非空字符处重新绘制文件
z、 -用光标在窗口的中心和行的第一个非空白字符处重新绘制文件
zt-用光标在窗口顶部重新绘制文件
zb-用光标在窗口底部重新绘制文件
zz-用光标在窗口的中心重新绘制文件。我的滚动助记符 除了其他答案之外,还要注意
ze
和zs
,意思是:将屏幕移到光标的左/右(不移动光标)
+-------------------------------+
^ |
|c-e(保持光标)|
|H(igh)zt(顶部)|
| ^ |
|泽| zs|
|M(iddle)zh/zh-zl/zl|
| | |
|五|
|L(ow)zb(底部)|
|c-y(保持光标)|
五|
+-------------------------------+
同时查看
h
和l
和t
和b
和(使用qwertz键盘)的位置c-e
和c-y
(同时“y”不知何故指向底部)请注意,如果您只关心进入书签行,您可以使用“g”Vim要求光标始终位于当前屏幕上“Vim用户喜欢夸耀一切
+-------------------------------+
^ |
|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 |
+-------------------------------+