如何在Vim中移动到行尾
如何在Vim中移动到行尾
技术背景
Vim是一款强大的文本编辑器,在命令行环境下广泛使用。在编辑文本时,经常需要快速将光标移动到行尾。了解不同的移动方式,可以提高编辑效率。
实现步骤
移动到行尾
- 命令模式下:
- 按下
<kbd>$</kbd>
键,可将光标移动到行尾,且仍处于命令模式。例如在编辑代码时,想快速跳到当前行末尾添加内容,可使用此快捷键。 - 按下
<kbd>A</kbd>
键,会移动到行尾并切换到编辑模式(Append)。比如在写代码时,发现行尾少了个分号,按下<kbd>A</kbd>
就可以直接在行尾输入。 - 先按
<kbd>g</kbd>
再按<kbd>_</kbd>
,能将光标移动到行内最后一个非空白字符处。
- 按下
- 插入模式下:
- 若想在插入模式下快速到行尾,可以在
vimrc
文件中添加imap <C-l> <Esc>$a
。之后在插入模式按下Ctrl + l
,就相当于依次按下<kbd>Esc</kbd>
(进入命令模式)、<kbd>$</kbd>
(移动到行尾)、<kbd>a</kbd>
(进入插入模式)。 - 按下
<kbd>Ctrl</kbd> + <kbd>O</kbd>
后再按<kbd>$</kbd>
,也能在插入模式下将光标置于行的最后一个字符之后。
- 若想在插入模式下快速到行尾,可以在
移动到行首
- 命令模式下:
- 按下
<kbd>^</kbd>
,光标会移动到行内第一个非空白字符处,且保持在命令模式。 - 按下
<kbd>0</kbd>
(零),光标会移动到行首(包含空白字符)。 - 按下
<kbd>I</kbd>
(大写的i),会移动到行首并切换到插入模式。
- 按下
- 区分物理行和屏幕行:
<kbd>$</kbd>
和<kbd>0</kbd>
分别移动到物理行或段落的末尾或开头。<kbd>g</kbd><kbd>$</kbd>
和<kbd>g</kbd><kbd>0</kbd>
分别移动到屏幕行或段落的末尾或开头。若希望总是使用屏幕行的移动方式,可以在Vim中执行以下命令进行键映射:
1 |
|
其他相关操作
- 在命令行启动Vim时,可以使用
+$
参数,例如vi +$ any.txt
,会直接将光标定位到文件的最后一行。使用+30
则会将光标定位到第30行。
核心代码
映射Ctrl + l
到行尾插入模式
1 |
|
映射物理行和屏幕行移动键
1 |
|
.vimrc
中映射Ctrl + A
和Ctrl + D
到行首行尾
1 |
|
最佳实践
- 对于经常使用Vim进行编码的用户,建议将常用的光标移动快捷键配置到
vimrc
文件中,这样可以提高操作效率。 - 在编辑代码时,根据不同的场景选择合适的移动方式。如只是查看行尾内容,用
<kbd>$</kbd>
;若要在行尾添加内容,用<kbd>A</kbd>
。
常见问题
某些快捷键在Mac上无法使用怎么办?
在Mac上的标准终端使用Vim时,可以使用以下快捷键:
<kbd>fn</kbd> + <kbd> ← </kbd>
:移动到行首。<kbd>fn</kbd> + <kbd> → </kbd>
:移动到行尾。<kbd>fn</kbd> + <kbd> ↑ </kbd>
:向上翻一页。<kbd>fn</kbd> + <kbd> ↓ </kbd>
:向下翻一页。<kbd>fn</kbd> + <kbd> g </kbd>
:移动到文档开头。<kbd>fn</kbd> + <kbd> shift </kbd> + <kbd> g </kbd>
:移动到文档结尾。
$
和End
键有什么区别?
End
键在正常模式和插入模式都能使用,它可以直接将光标移动到行尾。$
只能在正常/命令模式下使用,但在经典的vi编辑器中也能使用,当没有Vim环境时它很有用。
如何在Vim中移动到行尾
https://119291.xyz/posts/how-to-move-to-end-of-line-in-vim/