在VIM中,使用。 (点)命令作为运算符?

时间:2017-04-04 20:34:45

标签: vim

在VIM中, -powerful - 命令(点命令)用于重复上一次操作..

但由于它实际上被定义为命令而不是运算符,因此无法将其与运动组合,因为只有运算符才能用于运动。 (参见http://www.viemu.com/vi-vim-cheat-sheet.gif进行复习)

是否可以实际使用 dot命令(如果可能)作为运算符?

这是一个小用例:我有一些行,我在第一个附加一个单词。然后我可以输入 j•来对下一行做同样的事情。如果我想在前十行做这个,我应该再重复8次......

如果我 8•j ,它将在同一行重复修改8次,然后向下一行..

如果我 8 j•它实际上会跳下8行然后再做一次。

事实上,这显然是预期的(和正确)行为,但有没有办法让表现得像运营商?

谢谢..

修改:我找到了一种基于 ephemient 答案实现该行为的方法。

总结一下,只需在['1:20150501', '123', '10', '20', '0', '0', "'xyz'"] [123.0, 10.0, 20.0, 0.0] ['2:20150501', '124', '0', '20.6', '90', '18.7', "'abc'"] [124.0, 0.0, 20.6, 90.0] ['3:20150501:replacement', '123', '10.9', '20.3', '0', '80', "'def'"] [123.0, 10.9, 20.3, 0.0] ['4:20150501', '134', '10', '20', '50.6', '0', "'ghi'"] [134.0, 10.0, 20.0, 50.6] ['5:20150501', '126', '10.7', '26.8', '0', '0', "'jkl'"] [126.0, 10.7, 26.8, 0.0] ['6:20150501', '123', '8.9', '20', '0', '', "'mno'"] [123.0, 8.9, 20.0, 0.0]

的命令模式下使用
  • 在第一行,按 Ctrl-V 进入可视区块选择。
  • 向下导航到最后一行( 8 j )。

此时,实际上并不需要 $ A ppend,因为它实际上是在'内部注册 命令。实际上,的必要性实际上是使用最后一次修改并避免重新键入它(如果它更复杂,如 ci“那么特别有用)

  • 进入命令模式,然后输入:norm

这似乎对我有用..

备注,当进入命令模式时,以下文字 norm . 已经存在,但我之后输入了以上内容,就像这样 :'<,'>

2 个答案:

答案 0 :(得分:2)

试试这个:

  • 在第一行,按 Ctrl-V 进入可视区块选择。
  • 向下导航到最后一行( 8j )。
  • $ 将光标移动到(所有)行的末尾。
  • A (大写A),键入以附加单词,然后 Esc 以保留可视块插入模式。
  • 该字现已附加到所有选定的行。

您可以在Vim wikia上找到其他建议。

答案 1 :(得分:1)

正如this thread on Super User所暗示的那样,很遗憾在香草Vim中不可能(简单的方法)。

如果您想使用.,可以使用repmo.vim插件。

否则,我会使用宏和@@重复使用的最后一个宏。