我知道如何在命令模式下移动,特别是跳转到行等等。但是,跳到我当前所在行的末尾的命令是什么呢?
只有$(美元符号)键。您可以使用A移动到行尾并切换到编辑模式(追加)。要跳过最后一个非空白字符,可以按g键然后按_键。
A的反面是I(在行开始处插入模式),作为旁白。只按^将把光标放在该行的第一个非空白字符上。
在许多情况下,当我们在一个字符串中,我们用双引号括起来,或者在写语句时,我们不想按escape键,然后用箭头键到该行的末尾,然后按分号(;)来结束该行。在你的vimrc文件中写入以下代码行:
imap <C-l> <Esc>$a
这句台词说了什么?它将Ctrl+l映射到一系列命令。这相当于你同时按下Esc(命令模式),$(行尾),a(追加)。
还要注意线条(或者物理线条)和屏幕线条之间的区别。一行以行结束符("\n")结束。屏幕行是在终端或屏幕上显示为一行字符的任何东西。如果你的物理行比屏幕宽度长,这两者就会分开,这种情况在写电子邮件等时很常见。
这种区别也体现在行尾命令中。
$和0分别移动到物理行或段的末尾或开头: G $和g0分别移动到屏幕行或段落的末尾或开头。
如果你总是喜欢后一种行为,你可以像这样重新映射键:
:noremap 0 g0
:noremap $ g$
我习惯了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-,但这不能很好地粘贴到像这样的地方。
主要的问题是,结束了
$转到行尾,保持在命令模式
A走到行尾,切换到插入模式
相反,行开始(技术上是第一个非空白字符)
^转到行首,保持在命令模式
I(大写I)转到行首,切换到插入模式
Further -行开始(技术上是第一列,不考虑空格)
0(0)转到行首,保持在命令模式
0i(0后面跟着小写i)作为行开始,切换到插入模式
对于那些开始学习vi的人来说,这里是一个很好的vi介绍,并排列出了典型的Windows GUI编辑器的光标移动和快捷键的vi命令。
Windows用户使用vi编辑器
在标准终端中使用vim时,我看不到macbook的热键。希望它能帮助到一些人。 macOS用户(在macbook pro 2018上测试):
Fn +←-移动到起始线 Fn +→-移动到结束线 Fn +↑-向上移动页面 Fn +↓-向下移动页面 Fn + g -移动光标到文档的开头 Fn + shift + g -移动光标到文档的末尾
对于最后两个命令,有时需要点击两次。
推荐文章
- Vim:在可视模式下快速选择文本块的方法
- 是否有vim命令来重新定位一个选项卡?
- MacVim和普通Vim有什么区别?
- 如何使Sublime Text成为Git的默认编辑器?
- 有什么方法可以在Vim中查看当前映射的键吗?
- 同一行上有多个命令
- 如何将所有文本转换为小写在Vim
- 使用vimdiff查看所有' git diff '
- 如何重新启动VScode编辑扩展的配置?
- 禁止在vim中创建交换文件
- NERDTree重载新文件
- 在Vim中,我想返回一个词。w的反义词
- 在tmux模式中丢失vim配色方案
- 在VIM中删除光标后面或周围的单词
- 在Visual Studio中是否有标准的快捷键来构建当前项目?