`
ruby8
  • 浏览: 206426 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VIM编辑器实例讲解(经典内容)

阅读更多

 

介绍:3种模式,编辑模式,插入模式,命令模式

ViM 在初始启动后首先进入编辑模式
   1:编辑模式
      移动光标、删除文字、复制或粘贴文字等(这些按键均是普通的字符)
      例如 l 是向右移动光标,相当于向右箭头键,k 是向上移动光标,相当于向上箭头键
      在编辑模式下键入 i, a, o 等命令之后,可进入插入模式
      键入 : 可进入命名模式

    详细介绍如下:

 

1. 移动光标
    要对正文内容进行修改,首先必须把光标移动到指定位置。移动光标的最简单的方式是按键盘的上、下、左、右箭头键。除了这种最原始的方法之外,用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅速到达指定的行或列,实现定位。例如:
k、j、h、l      功能分别等同于上、下、左、右箭头键
Ctrl+b          在文件中向上移动一页(相当于 PageUp 键)
Ctrl+f          在文件中向下移动一页(相当于 PageDown 键)
H               将光标移到屏幕的最上行(Highest)
nH              将光标移到屏幕的第 n 行
2H              将光标移到屏幕的第 2 行
M               将光标移到屏幕的中间(Middle)
L               将光标移到屏幕的最下行(Lowest)
nL              将光标移到屏幕的倒数第 n 行
3L              将光标移到屏幕的倒数第 3 行
w               在指定行内右移光标,到下一个字的开头
e               在指定行内右移光标,到一个字的末尾
b               在指定行内左移光标,到前一个字的开头
0               数字0,左移光标,到本行的开头
$               右移光标,到本行的末尾
^               移动光标,到本行的第一个非空字符
2. 替换和删除
    将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符。例如:
rc              用 c 替换光标所指向的当前字符
nrc             用 c 替换光标所指向的前 n 个字符
5rc             用 c 替换光标所指向的前 5 个字符
x               删除光标所指向的当前字符
nx              删除光标所指向的前 n 个字符
3x              删除光标所指向的前 3 个字符
dw              删除光标右侧的字
ndw             删除光标右侧的 n 个字
3dw             删除光标右侧的 3 个字
db              删除光标左侧的字
ndb             删除光标左侧的 n 个字
5db             删除光标左侧的 5 个字
dd              删除光标所在行,并去除空隙
ndd             删除 n 行内容,并去除空隙
3dd             删除 3 行内容,并去除空隙
3. 粘贴和复制
     从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可将其粘贴到正文中的指定位置。完成这一操作的命令是:
p               小写字母 p,将缓冲区的内容粘贴到光标的后面
P               大写字母 P,将缓冲区的内容粘贴到光标的前面
如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前光标所在行的上一行或下一行。
注意上述两个命令中字母的大小写。vi 编辑器经常以一对大、小写字母(如 p 和 P)来提供一对相似的功能。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。
有时需要复制一段正文到新位置,同时保留原有位置的内容。这种情况下,首先应当把指定内容复制(而不是剪切)到内存缓冲区。完成这一操作的命令是:
yy              复制当前行到内存缓冲区
nyy             复制 n 行内容到内存缓冲区
5yy             复制 5 行内容到内存缓冲区
4. 搜索字符串
和 许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。要查找文件中指定字或短语出现的位置,可以用 vi 直接进行搜索,而不必以手工方式进行。搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。用字符 ? 取代 / ,可以实现反向搜索(朝文件开头方向)。例如:
/str1           正向搜索字符串 str1
n               继续搜索,找出 str1 字符串下次出现的位置
?str2           反向搜索字符串 str2
无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。
5. 撤销和重复
在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。另外,如果用户希望在新的光标位置重复前面执行过的编辑命令,可用重复命令。
u               撤消前一条命令的结果
.               重复最后一条修改正文的命令
6. 文本选中
vi 可进入到一种成为 Visual 的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再执行其他编辑操作,例如删除、复制等。 v 字符选中命令 V 行选中命令 
  

2:插入模式
        用户输入的,除 Esc 之外的任何字符均将被看成是插入到编辑缓冲区中的字符。按  Esc 之后,从插入模式切换到编辑模式。


3:命令模式
          ViM 将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个 :(冒号)。这时,可以键入一些命令。这些命令可用来保存文件、读

      取文件内容、执行 Shell 命令、设置 Vi 参数、以正则表达式的方式查找字符串或替换字符串等。

1. 退出命令
在编辑模式下可以用 ZZ 命令退出 vi 编辑程序,该命令保存对正文所作的修改,覆盖原始文件。如果只需要
退出编辑程序,而不打算保存编辑的内容,可用下面的命令:
: q             在未作修改的情况下退出
: q!            放弃所有修改,退出编辑程序

2. 行号与文件
编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:
: n              将光标移到第 n 行命令模式下,可以规定命令操作的行号范围。数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符
符“$”表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5 行。例如:
:345            将光标移到第 345 行
:345w file      将第 345 行写入 file 文件
:3,5w file      将第 3 行至第 5 行写入 file 文件
:1,.w file      将第 1 行至当前行写入 file 文件
:.,$w file      将当前行至最后一行写入 file 文件
:.,.+5w file    从当前行开始将 6 行内容写入 file 文件
:1,$w file      将所有内容写入 file 文件,相当于 :w file 命令
在命令模式下,允许从文件中读取正文,或将正文写入文件。例如:
:w              将编辑的内容写入原始文件,用来保存编辑的中间结果
:wq             将编辑的内容写入原始文件并退出编辑程序(相当于 ZZ 命令)
:w file         将编辑的内容写入 file 文件,保持原有文件的内容不变
:a,bw file      将第 a 行至第 b 行的内容写入 file 文件
:r file         读取 file 文件的内容,插入当前光标所在行的后面
:e file         编辑新文件 file 代替原有内容
:f file         将当前文件重命名为 file
:f              打印当前文件名称和状态,如文件的行数、光标所在的行号等
3. 字符串搜索
给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。例如:
:/str/                       正向搜索,将光标移到下一个包含字符串 str 的行
:?str?                       反向搜索,将光标移到上一个包含字符串 str 的行
:/str/w file                 正向搜索,并将第一个包含字符串 str 的行写入  file 文件
:/str1/,/str2/w file         正向搜索,并将包含字符串 str1 的行至包含字符串str2 的行写入 file 文件
4. 正文替换
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/       用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g      用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g  用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g  用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g   功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
5. 删除正文
在命令模式下,同样可以删除正文中的内容。例如:
:d                  删除光标所在行
:3d                 删除 3 行
:.,$d               删除当前行至正文的末尾
:/str1/,/str2/d     删除从字符串 str1 到 str2 的所有行
6. 恢复文件
vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。vi 在
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:
:recover           恢复文件
也可以在启动 vi 时利用 -r 选项。
#DEMO#
#DEMO#
1.5  选项设置
为控制不同的编辑功能,vi 提供了很多内部选项。利用 :set 命令可以设置选项。基本语法为:
:set option         设置选项 option
常见的功能选项包括:
autoindent          设置该选项,则正文自动缩进
ignorecase          设置该选项,则忽略规则表达式中大小写字母的区别
number              设置该选项,则显示正文行号
ruler               设置该选项,则在屏幕底部显示光标所在行、列的位置
tabstop              设置按 Tab 键跳过的空格数。例如 :set tabstop=n, n 默认值为 8
mk                   将选项保存在当前目录的 .exrc 文件中
1.6  shell 切换
在编辑正文时,利用 vi 命令模式下提供的 shell 切换命令,无须退出 vi 即可执行 Linux 命令,十分方便。语法格式为:
:! command          执行完 shell 命令 command 后回到 vi
另外,在编辑模式下,键入 K ,可命令 vi 查找光标所在单词的手册页,相当于运行 man命令。
1.7  vim 和 gvim 的高级特色
Vim 代表 Vi IMproved,如同其名称所暗示的那样,Vim 作为标准  UNIX 系统 vi 编辑器的提高版而存在。 Vim 除提供和 vi 编辑器一样强大的功能外,还提供有多级恢复、命令行历史以及命令及文件名补全等功能。
gvim 是 vi 的 X Window 版本,该版本支持鼠标选中,一些高级光标移动功能,并且带有菜单和工具按钮

分享到:
评论
3 楼 hanmiao 2012-10-23  
引用

yy              复制当前行到内存缓冲区
nyy             复制 n 行内容到内存缓冲区
5yy             复制 5 行内容到内存缓冲区

这个是在命令模式下完成的还是在插入模式下完成的?为什么我使用命令模式提示没有这个命令?
2 楼 hanmiao 2012-10-23  
这个比较好,看完之后马上可以用上了。
1 楼 wf2030 2010-12-02  
vim每次编辑文件时,除了生成隐藏的.swp文件,还会生成一个 原文件名+~ 的文件,退出vim后该文件不会自动删除,请问是干什么用的,有什么办法不让它自动删除或者不生成这个文件???

相关推荐

    VIM终极实例.rar

    这是一本用实例讲解VIM具体操作命令的教程,与其死记硬背命令,不如在实际运用中掌握。就算是新手也可以轻松上手。 h (左移) j (下行) k (上行) l (右移) 输入 dw 可以从光标处删除至一个单字/单词的末尾 输入...

    vi.and.Vim.Editors.Pocket.Reference.2nd.Edition).Arnold.Robbins.pdf

    《vi和Vim编辑器口袋参考手册(第二版)》是由Arnold Robbins撰写的,这本书是《学习vi和Vim编辑器》的...通过简明扼要的介绍和实例,它可以帮助用户快速掌握和应用vi和Vim编辑器的强大功能,提高编辑效率和工作质量。

    进程和Vim讲解

    ### 进程和Vim讲解 #### 进程概述 ...通过学习和掌握进程管理以及Vim编辑器的使用方法,可以帮助用户更高效地完成日常任务。无论是系统管理员还是开发者,理解和熟练运用这些工具都是十分必要的。

    Linux C程序基础与实例讲解

    在Linux中,C程序的开发通常涉及编辑器(如Vim、Emacs或Code::Blocks)、编译器(GCC)、链接器以及调试器(GDB)。这些工具的使用是C编程的基础,你需要知道如何安装它们,以及如何利用它们来创建、编译和调试C代码...

    vim中文参考手册

    《vim中文参考手册》是广大vim用户不可或缺的学习资源,它详尽地介绍了这款强大的文本编辑器的使用方法和技巧,被誉为vim的“葵花宝典”。vim,全称Vi Improved,是在传统Vi编辑器的基础上发展起来的一个强大且高度...

    Learning the vi and Vim Editors, Seventh Edition

    ### 学习vi和Vim编辑器第七版 #### 基础与高级vi **1. vi文本编辑器** - **简短的历史视角**(第5页):本章节首先介绍了vi编辑器的发展历史,从其起源到如何演变成现今的形式。 - **打开和关闭文件**(第6页):...

    Vim实用技巧:使用模式入门篇(第2版)

    Vim,全名Vi Improved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。它以其高效的操作方式和丰富的可扩展性著称。《Vim实用技巧:使用模式入门篇(第2版)》是一本专为初学者设计的指南,旨在帮助读者快速...

    vi_iMproved

    《vim_iMproved》是一本由vim编辑器的作者精心编写的书籍,旨在深入探讨和解析vim的使用技巧和高级功能。vim,全称Vi IMproved,是从经典的vi编辑器发展而来的强大学习工具,尤其在程序员和系统管理员中备受推崇。这...

    linux命令、编辑器和shell编程

    《Linux命令、编辑器和Shell编程》是一本深入讲解Linux操作系统使用、文本编辑与脚本编程的经典教程。这本书的第二版源代码包含了丰富的实例和练习,旨在帮助读者掌握Linux环境中的基本操作,高效使用文本编辑器,...

    ProVim英文版(Vim学习手册)

    《ProVim英文版》是一本深入探讨Vim编辑器的权威指南,它为用户提供了全面、详尽的Vim学习资料。Vim,全称Vi IMproved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱,因其高效的操作方式和高度可定制性而...

    practical vim

    《实用 Vim》是一本深受程序员和文本编辑器爱好者赞誉的书籍,主要针对 Vim 这款强大的文本编辑器进行深入浅出的讲解。作者 Drew Neil,以其在 Vimcasts 中的出色工作为基础,通过这本书将 Vim 的实用技巧和核心理念...

    vim用户中文手册72版

    1. **安装与启动**:讲解如何在不同的Linux发行版中安装Vim,以及如何启动编辑器,包括从命令行直接打开文件。 2. **基本操作**:介绍Vim的三种模式——命令模式、插入模式和可视模式。在命令模式下,你可以移动...

    vimbook:Livro sobre o编辑器vim [pt-br]

    《vimbook:Livro sobre o编辑器vim》是一本针对葡萄牙语用户编写的关于Vim编辑器的指南,旨在帮助初学者和有经验的用户更好地理解和掌握这一强大的文本编辑工具。Vim,全称为Vi IMproved,是Vi编辑器的一个高度可...

    LINUX命令、编辑器与SHELL编程PDF.part01

    本书全面介绍了Linux:为从文件系统到shell、从编辑器到工具以及从编程工具到正则表达式等方面提供了最清晰的讲解和最有用的知识。并且,当需要立即得到答案时,可以翻到本书的命令参考部分,这部分内容经过精心组织...

    LINUX命令、编辑器与SHELL编程PDF.part02.rar

    本书全面介绍了Linux:为从文件系统到shell、从编辑器到工具以及从编程工具到正则表达式等方面提供了最清晰的讲解和最有用的知识。并且,当需要立即得到答案时,可以翻到本书的命令参考部分,这部分内容经过精心组织...

    Vim 匹配相同的单词并高亮功能

    在程序员的日常工作中,文本编辑器Vim是一个不可或缺的工具,它的高效性和强大的自定义能力深受许多开发者的喜爱。本文将详细讲解如何在Vim中实现匹配并高亮相同单词的功能,这对于代码审查、查找重复内容或者理解...

    操作系统教程-Linux实例分析

    4. **文本编辑器**:介绍Vi/Vim和Nano等文本编辑器的使用,包括基本编辑、查找替换、保存退出等操作。 5. **软件安装与管理**:讲解使用`apt`、`yum`或`dnf`等包管理器来安装、更新和卸载软件。介绍编译源码安装...

Global site tag (gtag.js) - Google Analytics