<CR>
,我不得不多次按退格键(取决于缩进)才能回到原来的位置。例如
<div>
<p> This is some text []</p>
</div>
光标是
[]
,我按了<CR>
:<div>
<p> This is some text
[]</p>
</div>
现在我必须按两次退格键回到上一行(这种情况还不错,但缩进量不大)。
您知道更好的方法吗?
#1 楼
怎么样:inoremap <C-\> <C-o>:left 0<Cr><BS>
<C-o>
将执行普通模式命令(:left 0
),该命令将删除所有缩进,这还将把光标放在行首。 <BS>
将带您回到最后一行。这有点像“向后
J
”。不幸的是,映射Shift + Enter或Ctrl + Enter并没有似乎有可能,所以我选择
<C-\>
,因为它位于“ enter enter”附近。评论
“输入附近”取决于您的键盘:英国的键盘在左移旁边有``:-)
– TripeHound
15年7月7日在15:58
为什么不使用
–詹姆斯
2015年9月1日下午16:14
@jamessan用作“向后J”:因此foo
–马丁·图尔诺伊(Martin Tournoij)
2015年9月1日于17:09
是的,但我要说的是
–詹姆斯
2015年9月1日于17:13
@jamessan好吧,这取决于光标的位置。键入foo
–马丁·图尔诺伊(Martin Tournoij)
2015年9月1日17:32
#2 楼
我在vimrc
中有此内容,第二部分与此相关: ,开始新的更改”(请参阅Enter
)。这意味着,如果您误按了h: i_CTRL-G_u
,则现在可以撤消更改而无需删除先前插入的行,无论是使用Enter
还是使用Statox提议的ESC u a
。基本上,每一行都可以单独撤消。具有类似的效果。评论
现在我很好奇第一部分以及
– 8bittree
15年7月7日在13:16
请参阅以下答案:vi.stackexchange.com/a/3844/1800。在插入模式下,按Ctrl-y将完成当前的弹出选择,并且上面的映射也将使Enter也能完成。
– VanLaser
15年7月7日在13:19
好招但是,我可能会用&paste替换最后一部分“
–lcd047
15年7月7日在14:51
...和说明:粘贴时,禁用插入模式映射(根据Vim的帮助)
– VanLaser
15年7月31日在18:34
我更喜欢此解决方案,因为依赖于Backspace选项的设置方式,依赖于Backspace,Ctrl-W和Ctrl-U的其他解决方案可能无法工作。
– doubleDown
2015年11月1日在10:50
#3 楼
我这样做的方式是Ctrl-wBackspace。Ctrl-w删除最后一个单词(我忘记了这是否是标准的vim),因为它只是空格,所以将我带回到行的开头。然后,Backspace将带我回到上一行。
评论
亲爱的,我不知道插入模式下的Ctrl-wuse。但是“地毯吸烟者”♦仍然要快一些。因此,默认绑定Ctrl- \似乎没什么用。
– nobe4
15年7月8日在7:44
Ctrl + w是“标准Vim” ;-)参见::help i_CTRL-W。而且按两次似乎也可以解决问题?
–马丁·图尔诺伊(Martin Tournoij)
15年7月8日在7:44
我刚刚在帮助页面上看到
– nobe4
15年7月8日在7:46
#4 楼
我的解决方法是(从插入模式)UpCtrl-oJDel。可能不是最有效的组合,但这是我正在做的而无需考虑它。评论
另请参见:如何在不产生空格的情况下连接线?
–马丁·图尔诺伊(Martin Tournoij)
15年7月7日在11:49
评论
Ctrl + w两次似乎可以正常工作并且很容易