我知道如何在命令模式下移动,特别是跳到行等,但是跳到我当前所在行的末尾的命令是什么?
美元符号:$
只需$(美元符号)键。您可以使用一个移动到行尾并切换到编辑模式(附加)。要跳转最后一个非空白字符,您可以按g然后按_键。
一个的反面是我(在行首插入模式),作为旁白。仅按^将把光标放在该行的第一个非空白字符上。
按一个进入编辑模式,从行尾开始。
或者有一个显而易见的答案:使用结束键到行的末尾。
“结束”键的优点是它可以在正常和插入模式下工作。
'$'仅适用于正常/命令模式,但它也适用于经典的vi编辑器(很高兴知道vim何时不可用)。
正如很多人所说:
但也:
如果您的当前行环绕可见屏幕到下一行,您可以使用g$到达屏幕行的末尾。
可能不相关,但如果您想在当前行之后开始新行,您可以在行中的任何位置使用o。
g_转到最后一个非空白字符。
g$转到屏幕行的末尾(当缓冲区行跨多个屏幕行包装时)
在许多情况下,当我们在字符串中时,我们会被双引号包围,或者在编写语句时,我们不想按转义并使用箭头键转到该行的末尾并按分号(;)以结束该行。在vimrc文件中写入以下行:
;
imap <C-l> <Esc>$a
该行说了什么?它将Ctrl+l映射到一系列命令。它相当于您一次按下Esc(命令模式)、$(行尾)、一个(追加)。
还要注意线(或者物理行)和屏幕线之间的区别。一行以行尾字符(“\n”)结束。屏幕行是碰巧在终端或屏幕中显示为一行字符的任何内容。如果您的物理行长于屏幕宽度,这两者会分开,这在编写电子邮件等时很常见。
这种区别也出现在行尾命令中。
如果你总是喜欢后一种行为,你可以像这样重新映射键:
:noremap 0 g0:noremap $ g$
最简单的选择是键入$。如果您正在处理文本块,您可能会喜欢命令{和},以便分别向后和向前移动段落。
我习惯了Home/End让我在插入模式下开始和结束行(在Windows中使用,我认为Linux),Mac不支持。这特别烦人,因为当我在远程系统上使用vim时,我也不能轻易做到这一点。经过一些痛苦的尝试和错误,我想出了这些.vimrc行,它们做同样的事情,但绑定到Ctrl-A作为行的开始,Ctrl-D作为行的结束。(出于某种原因,我想Ctrl-E是保留的,或者至少我找不到绑定它的方法。)享受。
.vimrc
:imap <Char-1> <Char-15>:normal 0<Char-13>:imap <Char-4> <Char-15>:normal $<Char-13>
这里有一个很好的图表,用于ASCII控制字符代码,也用于其他代码:
您也可以执行Ctrl-V+Ctrl-,但这并不能粘贴到这样的地方。
主要问题-行的末尾
$到行的末尾,保持在命令模式
一个到行尾,切换到插入模式
相反-行的开始(技术上是第一个非空白字符)
^到行的开始,保持在命令模式
我(大写i)进入行的开头,切换到插入模式
进一步-行的开始(技术上与空白无关的第一列)
(零)进入行的开头,保持在命令模式
0i(零后跟小写i)从第一行开始,切换到插入模式
对于那些开始学习vi的人来说,这里是一个很好的vi介绍,通过并列列出典型的Windows GUI编辑器光标移动和快捷键的vi命令。
用于Windows用户的vi编辑器
我看不到标准终端中使用vim的macbook热键。希望它能帮助某人。对于macOS用户(在macbook pro 2018上测试):
fn+ ← -移动到开始行 fn+ → -移动到结束行 fn+ ↑ -向上移动页面 fn+ ️ -向下移动页面 fn+ g -将光标移动到文档的开头 fn+ 转变 + g -将光标移动到文档末尾
fn+ ← -移动到开始行
fn+ → -移动到结束行
fn+ ↑ -向上移动页面
fn+ ️ -向下移动页面
fn+ g -将光标移动到文档的开头
fn+ 转变 + g -将光标移动到文档末尾
对于最后两个命令,有时需要点击两次。