我现在经常使用VIM,但我从不使用点(.)命令重复上一个动作.我一直在阅读它是多么棒的但是我从来没有看到任何对我有意义的真实世界的例子以及我在VIM中编码的方式.什么是现实世界的例子,显示点(.)命令是多么棒?
Ben*_*oit 37
以下是使用dot命令执行的一些操作:
:%s/\<word\>/replacement/gc的*字上,然后cereplacement<esc>再重复n..如果您的单词出现两次或三次,这很好.如果您有几个要替换的单词,请转到下一个单词,*再次单击n.<Ctrl-V>jjj<.....或在前面插入空格:<ctrl-v>jjjI<space><esc>....dd或之后dw,dot命令将删除另一行/单词dot命令发生的神奇之处在于,如果它重复使用编号寄存器的命令,它将使用下一个编号的寄存器(请参阅参考资料:help redo-register).
说明:如果您dd在9行上执行操作并希望按照删除它们的顺序还原它们,请执行以下操作:"1P.........请注意,寄存器1到9是Vim的删除环."1P将在光标前插入最后删除的文本,"2P然后插入前一个删除的文本,依此类推.
Mar*_*ins 13
我dw....经常使用删除一系列单词而不需要先思考它们.在那个例子中,5dw字符较少,但我认为使用dot命令只需重复delete word计算它们大约3ms .
编辑我刚刚做了一些编辑,并意识到还有另一种情况,我使用dot命令相当数量.我想在Vim中有一种更简单的方法来处理这种类型的东西,但是dot命令可以帮助解决以下和类似情况.以下基本上是" 我曾经做过一次,现在我想重复几次. "我正在编写一个新的测试(在C中)并且需要在其中嵌入一个代表SQL脚本的字符串常量从另一个地方复制.原始的多行(7行)脚本没有用双引号括起来,所以我这样做了:
do_something();
do_another();
third_option();
Run Code Online (Sandbox Code Playgroud)
现在,将光标放在第一行:A<bs><cr>{<cr><cr>}<cr><esc>.现在打j.j.和
do_something()
{
}
do_another()
{
}
third_option()
{
}
Run Code Online (Sandbox Code Playgroud)
所有其他答案都提供了很好的示例,我只想补充一点,这dot很棒,因为在某种程度上,它是您最后一个组合键的自动宏,只有一个键之遥。
虽然宏很棒,但使用起来有点麻烦,而宏dot始终可用,即使功能较弱。
| 归档时间: |
|
| 查看次数: |
13235 次 |
| 最近记录: |