Vim 分割线命令

Vim 分割线命令,vim,Vim,可能重复: 在vim中,J将下一行连接到当前行。是否有类似的一键(或相对较短)命令在给定光标位置拆分一行?我知道它可以用一个简单的宏来完成,但是如果J命令存在,那么应该有一个类似的函数。我试着搜索它,但似乎找不到答案。没有。我现在已经阅读了足够多的答案,得出结论,没有这样的命令 简单回答: 在插入时按“回车”即可;但你是对的,在命令模式下应该有一把钥匙。我也在想 因为每个人都有自己喜欢的解决方法,我将分享我的。假设我会尽一切努力避免接触Esc键 ylprX。。。其中“X”是插入的字符,甚至可以

可能重复:


在vim中,J将下一行连接到当前行。是否有类似的一键(或相对较短)命令在给定光标位置拆分一行?我知道它可以用一个简单的宏来完成,但是如果J命令存在,那么应该有一个类似的函数。我试着搜索它,但似乎找不到答案。

没有。我现在已经阅读了足够多的答案,得出结论,没有这样的命令

简单回答: 在插入时按“回车”即可;但你是对的,在命令模式下应该有一把钥匙。我也在想

因为每个人都有自己喜欢的解决方法,我将分享我的。假设我会尽一切努力避免接触Esc键

ylprX。。。其中“X”是插入的字符,甚至可以是换行符

因此,“yl”是在右边的char上拖动,“p”是粘贴char,“r”是替换char;然后您只需键入新字符。这就是我多么讨厌使用Escape


(这是“l”,如“向右移动”,顺便说一句)

我不认为这是一个单一的按键命令。使用stock vim可以做的最好的事情可能是我输入Esc。

使用空白的rEnter就可以了。这是两次击键。

如果可以为要添加拆分的位置创建正则表达式,则可以拆分行。例如,如果要在每个分号处拆分行,可以使用以下替换:

%s//^v^m/g


实际上,杰德的回答非常有用。我想补充一点,我需要“control-V-alternative”,即control-Q:
%s//^q^m/g

我的解决方案是重新映射K键,因为我从未使用默认操作(用“man”查找光标下的单词),我以前的编辑器分别使用Alt+j和Alt+K连接和拆分行

:nnoremap K i<CR><Esc>
:nnoremap K i
这将把这三个恼人的击键合并为一个


可能还有一种更复杂的方法可以消除任何尾随空格,但我更喜欢在写入时去掉所有尾随空格。

旧线程,但我不使用“K”进行手册页查找或其他任何神奇的操作。所以我在我的.vimrc中有这个映射:

map K i<Enter><Esc>
MAPKI

我想既然“J”是join,“K”可以是krack之类的

很近,但没有雪茄。我经常想在两个相邻的html标记之间拆分,中间没有空格。@dburke在这种情况下,将
s
映射放在
中。vimrc
并使用
I
Enter
将在两个相邻的html标记之间拆分行,中间没有空格@我要去申请一个功能。谁和我在一起?!再次“改进”vi?(咧嘴大笑)。我的猜测是,如果每个人都想要它,但它并不存在,那一定有原因。我真正想要的是一个“插入n个字符”cmd,它不在“插入模式”中。推荐:谢谢!向上投票@gbarry Wow-您是否考虑过重新映射CapsLock以执行Esc功能?“i”可能会更好:
r
。r会丢失一个字符,但如果是空格则很好。@AndyStewart
r
会丢失一个字符,这很糟糕。我不知道为什么这个答案有50多票。被接受的答案是唯一正确的答案。你也可以做
a
,这取决于你是想在某物之后还是之前打断。
r
很好,因为它与
J
相反,后者增加了一个空格。这有帮助吗?不,我真的很想看看是否有一些我忽略了或找不到的基地指挥部,这里的其他人可能知道。这太棒了!通常不小心按下
K
对我来说是灾难性的,因为
man
页面功能很愚蠢,但是现在我可以用一些实际有用的东西来替换它。这是一个很好的重新定义,但是
K
的默认行为不应该被认为仅仅是
man
。许多插件重新定义
K
,以便在上下文语言中查找文档。例如,在PHP中,
K
会带我去看PHP.net文档……我重新映射了,因为对我来说,这是最好的答案:)或者仅仅是:kut(as cut)^_^