我知道如何在命令模式下移动,特别是跳转到行等等。但是,跳到我当前所在行的末尾的命令是什么呢?


当前回答

在许多情况下,当我们在一个字符串中,我们用双引号括起来,或者在写语句时,我们不想按escape键,然后用箭头键到该行的末尾,然后按分号(;)来结束该行。在你的vimrc文件中写入以下代码行:

imap <C-l> <Esc>$a

这句台词说了什么?它将Ctrl+l映射到一系列命令。这相当于你同时按下Esc(命令模式),$(行尾),a(追加)。

其他回答

正如很多人所说:

$将使您到达队列的最后

但也:

^或_指向行中第一个非空格字符,和 0(0)到行开头,包括空格

$移动到行上的最后一个字符。 g_指向最后一个非空格字符。 G $转到屏幕行的末尾(当一个缓冲行被跨多个屏幕行换行时)

美元符号:$

还要注意线条(或者物理线条)和屏幕线条之间的区别。一行以行结束符("\n")结束。屏幕行是在终端或屏幕上显示为一行字符的任何东西。如果你的物理行比屏幕宽度长,这两者就会分开,这种情况在写电子邮件等时很常见。

这种区别也体现在行尾命令中。

$和0分别移动到物理行或段的末尾或开头: G $和g0分别移动到屏幕行或段落的末尾或开头。

如果你总是喜欢后一种行为,你可以像这样重新映射键:

:noremap 0 g0
:noremap $ g$

可能不相关,但是如果你想在当前行之后开始一个新的行,你可以在行中的任何地方使用o。