星期一, 八月 31, 2009

VIM学习笔记 编辑多个文件(Edit Multiple Files)

如果需要同时打开并编辑多个文件,可以使用以下几种方法:

  • 在启动vim时,可以指定多个文件做为参数(Argument)以同时打开多个文件;
  • 在Vim中,新建窗口(Window)用于打开文件;
  • 在Vim中,在任一窗口(Window)内,都可以新建多个缓冲区(Buffer)用于编辑不同的文件。

以下表格,简单列举了参数、窗口和缓冲区命令的对照关系:

参数和缓冲区命令对照
: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]

在不同文件之间拷贝文本

使用标记,在不同文件之间拷贝文本:

  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+Wp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 执行命令V进入可视化模式
  6. 移动到将要复制文本的最后一行,被选中的文本将会被高亮显示
  7. 执行命令y复制选中的文本
  8. 使用命令ctrl+Wp回到将要放置文本的文件
  9. 使用命令P将复制的文本粘贴到文件中

使用寄存器,在不同文件之间拷贝文本:

  1. 编辑第一文件
  2. 执行命令:split second_file打开另一个窗口并开始编辑第二个文件
  3. 使用命令ctrl+Wp回到含有原始文件的前一个窗口
  4. 将光标移动到要拷贝文本的第一行
  5. 执行命令"a3yy将需要复制的行放入寄存器
  6. 使用命令ctrl+Wp回到将要放置文本的文件
  7. 使用命令"ap将复制的文本粘贴到文件中

读入文件

使用:read filename(可简写为:r)命令,可读进一个文件并将内容插在当前行的后面。我们也可以在命令中,指明读取内容放置在文件中的特定位置。例如:0r filename命令,将读取内容放置在文件开头;而:$r filename命令,则会将读取内容放置在文件末尾。

写入文件

命令:write(可简写为:w)用来写入文件(也就是保存当前文件)。

使用以下命令将保存文本到文件collect.txt中:

:write collect.txt

如果这个文件已经存在,那么就会显示错误信息。如果要强行保存,那么需要使用!选项:

:write! collect.txt

我们也可以向已有文件中追加内容。使用以下命令将正编辑的文件内容追加到collect.txt中:

:write >> collect.txt

使用以下命令,将正编辑的文件的部分内容(第100行到文件末尾)追加到collect.txt中:

:100,$write >> collect.txt

如果这个文件不存在,那么就会显示错误信息。可以使用!选项,强行创建并保存新文件:

:write! >> collect.txt

我们还可以导出文件中的部分内容到其它文件中,以达到分拆文件的目的。以下命令将第10行到文件末尾的内容保存到collect.txt中:

:10,$write collect.txt

以下命令则会将当前行到第100行的内容保存到collect.txt中:

:.,100write collect.txt

在可视化模式下,选择内容,然后使用以下命令也可以写入其它文件:

:'<,'> write collect.txt

使用写入命令不仅可以保存文件,而且还可以将文件重定向到其他程序。在Linux系统中,我们可以使用以下命令将文件发送到打印机:

:write !lpr

注意:命令:write! lpr:write !lpr是不同的,前者是强行保存文件,而后者则是将文件发送到打印机。

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

退出文件

:quit可以退出当前文件。而:qall命令,则可以退出所有打开的文件。

如果文件已修改但没有保存,则会在窗口底部显示警告信息并禁止退出。可以使用以下命令,配置Vinm在此类情况下显示确认对话框:

:set confirm

set_confirm

如果想要放弃所做的修改并强行退出,可以使用:qall!命令。

使用命令:wqall组合,可以保存所有文件并退出。

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

没有评论:

发表评论