如何在Vim中移至行尾?

时间:2020-03-06 14:27:55  来源:igfitidea点击:

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

解决方案

美元符号:$

只是" $"(美元符号)键。我们可以使用A移至行尾并切换至编辑模式(添加)。

顺便说一句," A"的反面是" I"(在行首插入模式)。

从行尾开始按A进入编辑模式。

还是有一个显而易见的答案:使用End键转到行尾。

"结束"键的优点是它可以在普通模式和插入模式下工作。

'$'仅在普通/命令模式下起作用,但在经典的vi编辑器中也起作用(不知道什么时候vim不可用)。

正如许多人所说:

  • $将我们带到行尾

但是也:

  • ^或者_将我们带到该行的第一个非空白字符,并且
  • " 0"(零)可让我们到达行首,包括。空格

如果当前行环绕可见屏幕并转到下一行,则可以使用g $到达屏幕行的末尾。

可能不相关,但是如果要在当前行之后开始新行,则可以在行中的任何位置使用o。

  • $将移动到该行的最后一个字符。
  • g _转到最后一个非空白字符。
  • g到屏幕行的末尾(当一条缓冲线包裹在多条屏幕行上时)

在许多情况下,当我们在字符串中时,我们会用双引号将其括起来,或者在编写语句时,我们不想按Escape键并使用箭头键转到该行的末尾并按分号(;)只是为了结束这一行。在vimrc文件中写以下行:

imap <C-l> <Esc>$a

该行怎么说?它将Ctrl + l映射到一系列命令。等效于我们同时按下Esc(命令模式),$(行尾),a(追加)。

还要注意线(或者物理线)和屏蔽线之间的区别。行以行尾字符(" \ n")结尾。屏幕行是指在终端或者屏幕上显示为一行字符的任何内容。如果物理线长于屏幕宽度,则两者会分开,这在编写电子邮件等时很常见。

区别也显示在行尾命令中。

  • " $"和" 0"分别移至物理行或者段落的末尾或者开头:
  • " g" $和" g" 0分别移至屏幕行或者段落的末尾。

如果我们始终喜欢后一种行为,则可以像这样重新映射键:

:noremap 0 g0
:noremap $ g$