星期一, 八月 31, 2009

VIM学习笔记 编辑多个文件

拷贝

使用传统的Vi风格命令在不同窗口之间拷贝文本,可以使用如下方法:

  1. 编辑第一文件
  2. 执行命令:split second_file打开另一个窗口并开始编辑第二个文件
  3. 使用命令ctrl+Wp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 用命令ma标记这一行
  6. 移动到要拷贝文本的最后一行
  7. 执行命令y'a来复制当前光标位置到所做标记之间的文本
  8. 使用命令ctrl+Wp回到将要放置文本的文件
  9. 将光标移到将要插入文本的地方
  10. 使用命令P将复制的文本粘贴到文件中

使用可视化方式在不同窗口之间拷贝文本,可以使用如下方法:

  1. 编辑第一文件
  2. 执行命令:split second_file打开另一个窗口并开始编辑第二个文件
  3. 使用命令ctrl+Wpp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 执行命令V进入可视化模式
  6. 移动到将要复制文本的最后一行,被选中的文本将会被高亮显示
  7. 执行命令y复制选中的文本
  8. 使用命令ctrl+Wp回到将要放置文本的文件
  9. 使用命令P将复制的文本粘贴到文件中

读取

使用:read filename命令,可读进一个文件并将内容插在当前行的后面。

写入

命令:write用来写入文件,可以保存当前文件。我们也可以用命令:write newfile将当前的文件内容写入一个新的文件。一般情况下:write命令并不会覆盖已经存在的文件。我们可以用强制操作(!)选项,来覆盖已经存在的文件。而这个命令对于分拆文件也很有用。可以用可视化模式选定一个范围,然后将这个选定的范围写入新的文件,从而实现分拆文件的目的。

命令:write >> logfile将文本写入到目标文件的末尾。这样实现了文件添加功能,免去了拷贝,编辑的过程。

命令:wall可以保存所有已经修改过的文件(包括隐藏缓冲区中的文件)。

退出

:quit可以退出当前文件。如果同时打开了多个窗口,可以用:qall命令退出所有文件。如果文件进行了修改但是没有保存,在执行这个命令时会给出警告信息。如果想要放弃所做的修改而强行退出,可以使用:qall!命令。我们还可以将这个两个命令进行组合,实现对所有文件的保存并退出的命令:wqall

参数/缓冲区/窗口 命令对照

参数和缓冲区命令对照
:next切换到下一文件:bnext
:previous切换到上一文件:bprevious
:Next:bNext
:first切换到第一个文件:bfirst
:last切换到最后一个文件:blast
:args显示正在编辑的文件名:buffers
:argument [N]切换至第N号文件:buffer [N]

缓冲区和窗口命令对照
:snext分割并切换到下一文件:sbnext
:sprevious分割并切换到上一文件:sbprevious
:sNext:sbNext
:sfirst切换到第一个文件:sbfirst
:slast分割并切换到最后一个文件:sblast
:sall分割并显示所有文件:sball
:sargument [N]分割并切换至第N号文件:sbuffer [N]

Technorati Tags: ,,

没有评论:

发表评论