vim 技巧 快速使用

2024-10-30 09:17:29

1、 重复上一条 Ex 命令在 Vim 中有 3 种命令行模式提示:Ex 命令提示符::something查找提示符 Search prompt:/something表达式提示符 Expression prompt:(在插入模式下输入 <C-r>= ): =1+1<cr>假如我们从 Ex 命令提示符中运行一个 spec::!rspec spec/models/code_spec.rb我们可以通过在普通模式下输入 @: 来重复上一条 Ex 命令。

vim 技巧 快速使用

4、 在插入模式下粘贴文本假如处于插入模式中,并希望在不退出插入模式的情况下粘贴已复制的文本。可通过使用<C-r>0实现这个需求。如果复制的文本包含新的行字符,<C-r><C-p>0会处理缩进的问题。

vim 技巧 快速使用

6、 在某个范围内运行普通模式命令下面的 JavaScript 代码全都忘记加上 ; 分号了:var element = $(this)var tabName = element.data('tab')var report = element.data('report')我们可以选择全部三行代码,然后运行命令 :normal A;,它将为每行执行 A; (追加 ;)的命令。或者,我们可以在文件的整个内容上使用 :%normal A; 以达到相同的效果。

vim 技巧 快速使用

8、 在多个文件中进行替换操作Vim 中,在多个文件里面不能直接进行替换操作。要在多个文件中进行查找和替换,首先需要创建一个文件列表,我们将在其中执行一条命令。通过使用 :args 命令来实现这个需求。例如,加载所有以”ext”字符串开头的 JavaScript 文件::args app/assets/javascripts/ext*.js这样可以看到通过运行 :args 命令得到的参数列表加载的文件。准备好参数列表后,可以执行查找和替换操作::argdo %s/From/To/g一旦在文件中进行了更改,我们可以使用以下命令保存参数列表中所有的文件::argdo update

vim 技巧 快速使用

10、最后,这里有一个需要在文件运行查找和替换的例子::vimgrep /CurrencyNumberHelper/ app/models/*.rb:Qargs:argdo %s/CurrencyNumberHelper/CurrencyHelper/g:argdo update在评论中,buztard 提到一个更简单的方法是使用 ack-grep 来创建参数::args `ack-grep -l CurrencyNumberHelper`# or, if you're using Ack plugin, then just :Ack CurrencyNumberHelper:argdo %s/CurrencyNumberHelper/CurrencyHelper/g:argdo updateThiago A. 也在评论中提到,如果你使用较新的 Vim 版本,这将会更简单,可简单地使用 cdo 和 cfdo 来完成这个需求::Ack CurrencyNumberHelper:cfdo s/CurrencyNumberHelper/CurrencyHelper/g | update

vim 技巧 快速使用

12、 在多个文件中执行宏我们已经录制好了一个宏,并且希望在多个文件中运行它。首先我们需要使用文件构建一个参数列表,例如,从一个 Rails 应用中加载所有模型::args app/models/*.rb然后使用下面的命令运行宏(记录在寄存器 a 中)::argdo normal @a最后,使用下面的命令保存所有的缓冲::argdo update

13、 命令行中的 Vi 模式Bash shell 提供了两种模式用于命令行编辑:emacs 和 vi。默认情况下是 Emacs 编辑模式,可以使用以下方式将其更改为 vi 模式:set -o vi在命令行中,可以按下 ESC 键进入 vi 编辑模式,并使用 vi 的单行编辑功能。在命令行中的 vi 编辑模式下,可以通过按下 v 弹出编辑器,这样就可以编辑和保存将在命令行中执行的缓冲。如果需要回到emacs模式,输入:set -o emacs

vim 技巧 快速使用
猜你喜欢