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会丢失一个字符,但如果是空格则很好。@AndyStewartr
会丢失一个字符,这很糟糕。我不知道为什么这个答案有50多票。被接受的答案是唯一正确的答案。你也可以做a
,这取决于你是想在某物之后还是之前打断。r
很好,因为它与J
相反,后者增加了一个空格。这有帮助吗?不,我真的很想看看是否有一些我忽略了或找不到的基地指挥部,这里的其他人可能知道。这太棒了!通常不小心按下K
对我来说是灾难性的,因为man
页面功能很愚蠢,但是现在我可以用一些实际有用的东西来替换它。这是一个很好的重新定义,但是K
的默认行为不应该被认为仅仅是man
。许多插件重新定义K
,以便在上下文语言中查找文档。例如,在PHP中,K
会带我去看PHP.net文档……我重新映射了,因为对我来说,这是最好的答案:)或者仅仅是:kut(as cut)^_^