如何在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$