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