如何在输入字符之前在 Vim 的新行上插入制表符
How to insert tabs on new line in Vim before a character is typed
如果我在我的C程序中写一个if语句,按三下回车,然后写一个注释,下面是我的输出。注意条件和注释之间的两行完全是空的。
if(my_condition) {
<Tab>// My comment here
我的问题是 Vim 不会在行首和光标位置之间插入任何制表符 直到键入一个字符 。这对我来说很烦人,因为我喜欢经常在代码块中上下移动光标。由于两行上没有真正的制表符,如果我向上移动一行,我的光标将转到该行的开头,而不是停留在同一列上。我来自 Sublime Text 和其他编辑器,这从来都不是问题。
是否有插件或设置可以实现以下功能?
if(my_condition) {
<Tab>
<Tab>
<Tab>// My comment here
感谢所有帮助。我研究过使用可视模式,但一直启用它会产生不良副作用。当然有一种简单的方法可以在我换行时自动添加制表符?
This is very annoying for me, because I like to move my cursor up and down the block of code often.
嗯,您可能已经注意到,切换到 vim 意味着您需要更改自己的编辑行为。这可能是最困难的,比学习新命令还难,因为习惯很难改掉!
不过,我并不是说您应该停止以无用的方式在函数中滚动,而是说您应该停止在插入模式下使用 "cursor" 键来回移动。
当你在插入模式下进行移动时,它会产生副作用 "inconvenient",但它也会破坏 "repeat" 命令(.
).在插入模式下移动光标后,.
只会重复在该移动后键入的字符。
因此,您在编辑行为中应该考虑的是避免空行,避免尾随 spaces/tabs 并且永远不要在插入模式下四处移动。插入模式用于插入,普通模式用于移动和对文本进行操作。
在普通模式下有很多你可以滥用的移动命令(j
/k
, <C-e>
/<C-y>
, {
/}
, …).
话虽这么说,如果您遇到缩进的情况,您可能想继续编辑,而不关心缩进,一旦您回到正常模式,就会发出 =i{
将在语法文件(和您的缩进设置)之后缩进块中的所有内容。
如果我在我的C程序中写一个if语句,按三下回车,然后写一个注释,下面是我的输出。注意条件和注释之间的两行完全是空的。
if(my_condition) {
<Tab>// My comment here
我的问题是 Vim 不会在行首和光标位置之间插入任何制表符 直到键入一个字符 。这对我来说很烦人,因为我喜欢经常在代码块中上下移动光标。由于两行上没有真正的制表符,如果我向上移动一行,我的光标将转到该行的开头,而不是停留在同一列上。我来自 Sublime Text 和其他编辑器,这从来都不是问题。
是否有插件或设置可以实现以下功能?
if(my_condition) {
<Tab>
<Tab>
<Tab>// My comment here
感谢所有帮助。我研究过使用可视模式,但一直启用它会产生不良副作用。当然有一种简单的方法可以在我换行时自动添加制表符?
This is very annoying for me, because I like to move my cursor up and down the block of code often.
嗯,您可能已经注意到,切换到 vim 意味着您需要更改自己的编辑行为。这可能是最困难的,比学习新命令还难,因为习惯很难改掉!
不过,我并不是说您应该停止以无用的方式在函数中滚动,而是说您应该停止在插入模式下使用 "cursor" 键来回移动。
当你在插入模式下进行移动时,它会产生副作用 "inconvenient",但它也会破坏 "repeat" 命令(.
).在插入模式下移动光标后,.
只会重复在该移动后键入的字符。
因此,您在编辑行为中应该考虑的是避免空行,避免尾随 spaces/tabs 并且永远不要在插入模式下四处移动。插入模式用于插入,普通模式用于移动和对文本进行操作。
在普通模式下有很多你可以滥用的移动命令(j
/k
, <C-e>
/<C-y>
, {
/}
, …).
话虽这么说,如果您遇到缩进的情况,您可能想继续编辑,而不关心缩进,一旦您回到正常模式,就会发出 =i{
将在语法文件(和您的缩进设置)之后缩进块中的所有内容。