当我输入时,如何在vim中的每一个新行前面加一个常量前缀?

Ste*_*ini 5 vim

好的,这是一个相当复杂的愿望.它源于我的大多数fortran系列包含"呼叫"声明的事实,我厌倦了打电话,打电话,打电话,打电话......

我想要的是以下内容:

  • 每次按Enter键,下一行都会在前面自动添加一个"call"字符串.
  • 如果我按Tab键,则会字符串调用添加选项卡(这样我可以缩进)
  • 如果我在该行的开头,我按空格键一次,它会删除"呼叫"条目,但保留的选项卡.同样,如果我输入"if","do","enddo"以及所有相关信息,它会自动删除条目会很好

你知道这样的事情是否已经存在,是可能的,如果你有任何我可以提供的提示或类似的脚本,我将非常感激.

例如,在C风格的注释中,每次按Enter键时,都会在行的开头自动添加星号.这样做的代码在哪里(我假设它的插件功能,而不是在vim中硬编码)?

小智 3

我按照你关于 C 注释的提示,想出了这个:

:set formatoptions+=ro
:set comments+=s:call,m:call,e:call
Run Code Online (Sandbox Code Playgroud)

如果一行以“call”开头,则应自动在连续行前面添加相同的文本。仅当上一行包含“call”并且未删除您指定的关键字上的“call”时,它才有效。请随意使用这些选项,也许您会根据自己的喜好对其进行自定义。

用于>>在正常模式下缩进或在插入模式下使用Ctrl+ 。T要删除行开头的“call”,请使用Ctrl+W而不是Backspace

或者,您可以使用缩写来加快打字速度:

:iab ,, call
Run Code Online (Sandbox Code Playgroud)