我知道如何一般在命令模式中移动,特别是跳到线路等.但是跳到我目前所在线路末端的命令是什么?
只是$ (美元符号)键.您可以使用A移动到行尾并切换到编辑模式(附加).
与此相反的A是I(行开头的插入模式).
很多人都说:
$ 让你走到终点
但是也:
^或者_让你到达该行中的第一个非空白字符,并且
0(零)让你到行的开头,包括.空白
$ moves to the last character on the line.
g _ goes to the last non-whitespace character.
g $ goes to the end of the screen line (when a buffer line is wrapped across multiple screen lines)
主要问题 - 行尾
$ 到了行尾,仍处于命令模式
A 转到行尾,切换到插入模式
相反 - 行的开始(技术上是第一个非空白字符)
^ 进入行首,保持在命令模式
I (大写i)转到行首,切换到插入模式
进一步 - 开始行(技术上是第一列,不管空白)
0 (零)进入行的开头,保持在命令模式
0i (零后跟小写i)进入行的开头,切换到插入模式
对于那些开始学习vi的人来说,通过列出并排vi命令到典型的Windows GUI Editor光标移动和快捷键,可以很好地介绍vi.
适用于Windows用户的vi编辑器
如果当前行环绕可见屏幕到下一行,则可以使用g $到达屏幕行的末尾.
美元符号:$
'End'键的优点是它可以在普通和插入模式下工作.
'''仅在正常/命令模式下工作,但它也适用于经典的vi编辑器(很好地知道vim何时不可用).
在许多情况下,当我们在一个字符串里面时,我们被双引号括起来,或者在写一个语句时我们不想按下escape并用箭头键转到该行的末尾并按下分号(;
)结束这条线.在vimrc文件中写下以下行:
imap$a
这条线说什么?它将Ctrl + l映射到一系列命令.它相当于你一次按Esc(命令模式),$(行尾),a(追加).
还要注意线(或物理线)和屏线之间的区别.一行由行尾字符("\n")终止.屏幕线是指在终端或屏幕中显示为一行字符的任何内容.如果物理线长于屏幕宽度,则两者分开,这在写电子邮件等时非常常见.
这种区别也出现在行尾命令中.
$并分别0移动到物理行或段落的结尾或开头:
g$并分别g0移动到屏幕行或段落的结尾或开头.
如果您总是喜欢后一种行为,则可以重新映射这样的键:
:noremap 0 g0 :noremap $ g$
按此A键从行尾开始进入编辑模式.
或者有明显的答案:使用End密钥转到行尾.
可能不相关,但是如果你想在当前行之后开始一个新行,你可以在行中的任何地方使用o.