`
0769
  • 浏览: 84062 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

介绍VIM 使用

阅读更多

VIM 使用

收集整理:Wilbur Lang

VIM 简介
    VIM 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体。熟悉 DOS 下的文书处理後,也许会感到 VIM 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外的软体。所以,学习 VIM 的基本操作还是有好处,让你在各个不同的机器上得心应手。
VIM 基本观念
    Unix 提供一系列的 ex 编辑器,包括 ex, edit 和 VIM 。相对於全萤幕编辑器,现在可能很难想像如何使用 ex, edit 这种行列编辑器(有人用过 DOS 3.3 版以前所附的 EDLIN 吗?)。 VIM 的原意是 "Vi IMproved",它是一个所见所得的编辑程式,也就是说可以立刻看到操作结果。

    也由於 VIM 是全萤幕编辑器,所以它必须控制整个终端屏幕哪里该显示些什麽。而终端的种类有许多种,特性又不尽相同,所以 VIM 有必要知道现在所使用的是哪一种终端。这是由 TERM 这个环境变数来设定,设定环境变数方面请查看所使用 shell 的说明。(除非执行 VIM 的时候回应 unknow terminal type ,否则可以不用设定。)

    只要简单的执行 VIM 就可以进入 VIM 的编辑环境。在实际操作之前先对它有个概略的了解会比较好。VIM 有两种模式,输入模式以及指令模式。输入模式即是用来输入文字资料,而指令模式则是用来下达一些编排文件、存档、以及离开 VIM 等等的操作指令。当执行 VIM 後,会先进入指令模式,此时输入的任何字元都视为指令。
进入与离开
    要进入 VIM 可以直接在系统提示下键入 VIM <档案名称>,VIM 可以自动帮你载入所要编辑的文件或是开启一个新文件。进入 VIM 后屏幕左方会出现波浪符号,凡是行首有该符号就代表此列目前是空的。要离开 VIM 可以在指令模式下键入 :q, :wq 指令则是存档後再离开(注意冒号)。要切换到指令模式下则是用 [ESC] 键,如果不晓得现在是处於什麽模式, 可以多按几次 [ESC],系统会发出哔哔声以确定进入指令模式。
VIM 输入模式
    要如何输入资料呢?有好几个指令可以进入输入模式:
    新增 (append)
      a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。
      A 从光标所在列最后面的地方开始新增资料。

    插入 (insert)
      i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。
      I 从光标所在列的第一个非空白字元前面开始插入资料。

    开始 (open)
      o 在光标所在列下新增一列并进入输入模式。
      O 在光标所在列上方新增一列并进入输入模式。
    也许文字叙述看起来有点繁杂,但是只要实际操作一下马上可以了解这些操作方式。实务很重要,尤其是电脑方面的东西随时可以尝试及验证结果。极力建议实际去使用它而不要只是猛 K 文件,才有事半功倍的效用。(注:此段为废话。)
VIM 基本编辑
    配合一般键盘上的功能键,像是方向键、[Insert] 、[Delete] 等等,现在你应该已经可以利用 VIM 来处理文字资料了。当然 VIM 还提供其他许许多多功能让文字的处理更形方便,有兴趣的看倌请继续。

    在继续下去之前先来点 BCC 吧。电脑有许多厂牌,不同的硬体及作业系统。PC 也不是仅仅只有 IBM PC 及其相容品而已。事实上,包括键盘,终端机等等往往都有不同的规格。这代表什麽?

    在文书编辑软体上会遇这样的问题,某些电脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系统上也一样,几乎各大电脑厂商都有自己的 Unix 系统,而 VIM 的操作方法也会随之有点出入。我们固然可以用 PC 的键盘来说明 VIM 的操作,但是还是得提一下这个问题。

    删除与修改
      何谓编辑?在这里我们认为是文字的新增修改以及删除,甚至包括文字区块的搬移、复制等等。这里先介绍 VIM 的如何做删除与修改。(注意:在 VIM 的原始观念里,输入跟编辑是两码子事。编辑是在指令模式下操作的,先利用指令移动光标来定位要进行编辑的地方,然后才下指令做编辑。)

      x 删除光标所在字元。
      dd 删除光标所在的列。
      r 修改光标所在字元,r 后接著要修正的字元。
      R 进入取代状态,新增资料会覆盖原先资料,直到按 [ESC] 回到指令模式下为止。
      s 删除光标所在字元,并进入输入模式。
      S 删除光标所在的列,并进入输入模式。
    其实呢,在 PC 上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元,直接按 [Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能用,而不是仅仅在 PC 上。

    在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键就可以了,而且无论在指令模式或输入模式下都可以。多容易不是。
    当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的资料,而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功能相同。
VIM 进阶应用
    相信现在对於 VIM 应该已经有相当的认识。处理文字也不会有什麽麻烦才对。如果有兴趣善用 VIM 的其它功能进一步简化操作过程,不妨继续看下去。

    移动光标
      由於许多编辑工作是藉由光标来定位,所以 VIM 提供许多移动光标的方式,这个我们列几张简表来说明(这些当然是指令模式下的指令):

      指令 说明 功能键
      0 移动到光标所在列的最前面 HOME
      $ 移动到光标所在列的最后面 END
      ^d 向下半页
      ^f 向下一页 PageDown
      ^u 向上半页
      ^b 向上一页 PageUp
      指令 说明
      H 移动到视窗的第一列
      M 移动到视窗的中间列
      L 移动到视窗的最后列
      b 移动到下个字的第一个字母
      w 移动到上个字的第一个字母
      e 移动到下个字的最后一个字母
      ^ 移动到光标所在列的第一个非空白字元
      指令 说明
      n- 减号移动到上一列的第一个非空白字元
      n+ 加号移动到下一列的第一个非空白字元
      nG 直接用数字 n 加上大写 G 移动到第 n 列
      指令 说明
      fx 往右移动到 x 字元上
      Fx 往左移动到 x 字元上
      tx 往右移动到 x 字元前
      Tx 往左移动到 x 字元前
      ; 配合 f&t 使用,重复一次
      , 配合 f&t 使用,反方向重复一次
      /string 往右移动到有 string 的地方
      ?string 往左移动到有 string 的地方
      n 配合 /&? 使用,重复一次
      N 配合 /&? 使用,反方向重复一次
      指令 说明 备注
      n( 左括号移动到句子的最前面,前面加上数字可以指定往前移动 n 个句子 句子是以 ! . ? 三种符号来界定
      n) 右括号移动到下个句子的最前面,前面加上数字可以指定往后移动 n 个句子
      n{ 左括弧移动到段落的最前面 ,前面加上数字可以指定往前移动 n 个段落 段落是以,段落间的空白列界定
      n} 右括弧移动到下个段落的最前面,前面加上数字可以指定往后移动 n 个段落

      不要尝试背诵这些指令,否则后果自行负责。它们看起来又多又杂乱,事实上这是文字叙述本身的障碍。再强调一次,实际去使用它只要几次就可以不经大脑直接下达这些奇奇怪怪的指令,远比死记活背搞得模模糊糊强多了。(注:若真的不经大脑而误删资料与我无关。另,此段为废话。)

    进阶编辑指令

    这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。

    指令列表如下:
      d 删除(delete)
      y 复制(yank)
      p 放置(put)
      c 修改(change)
    范围可以是下列几个:
      e 光标所在位置到该字的最后一个字母
      w 光标所在位置到下个字的第一个字母
      b 光标所在位置到上个字的第一个字母
      $ 光标所在位置到该列的最后一个字母
      0 光标所在位置到该列的第一个字母
      ) 光标所在位置到下个句子的第一个字母
      ( 光标所在位置到该句子的第一个字母
      } 光标所在位置到该段落的最后一个字母
      { 光标所在位置到该段落的第一个字母
    说实在的,组合这些指令来编辑文件有一点点艺术气息。不管怎麽样,它们提供更多编辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然后就可以用指令 p 贴到其它地方去,这是 VIM 用来处理区段拷贝与搬移的办法。

    某些 VIM 版本,例如 Linux 所用的 elVIMs 可以大幅简化这一坨指令。如果稍微观察一下这些编辑指令就会发现问题其实是定范围的方式有点杂,实际上只有四个指令罢了。指令 v 非常好用,只要按下 v 键,光标所在的位置就会反白,然后就可以移动光标来设定范围,接著再直接下指令进行编辑即可。

    对於整列操作, VIM 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令 dd 就是其中一个;cc 可以修改整列文字;而 yy 则是复制整列文字;指令 D 则可以删除光标到该列结束为止所有的文字。

    档案指令

    档案指令多以 : 开头,跟编辑指令有点区别。例如前面提到结束编辑的指令就是 :q。现在就简单说明一下作为本篇故事的结尾:
      :q 结束编辑(quit)
      如果不想存档而要放弃编辑过的档案则用 :q! 强制离开。
      :w 存档(write)
      其后可加所要存档的档名。
      可以将档案指令合在一起,例如 :wq 即存档后离开。
      zz 功能与 :wq 相同。
    另外值得一提的是 VIM 的部份存档功能。可以用 :n,mw filename 将第 n 行到第 m 行的文字存放的所指定的 filename 里去哩。时代在变,世界在变, VIM 也在变,不过大致上就这样。好了,但愿从此以后王子跟公主过著幸福快乐的生活。
:wq

 

 

分享到:
评论

相关推荐

    vim使用进阶

    根据上述文件信息,我将详细介绍vim使用进阶的相关知识点。 首先,文章的标题为“vim使用进阶”,这表明文章的主体内容是关于如何提高在使用vim这一文本编辑器时的效率,具体涉及了配置、命令和插件的使用。 文档...

    vim使用进阶:vim使用技巧、配置、命令和插件

    【vim使用进阶】系列教程深入探讨了vim编辑器的高级使用技巧,涵盖了vim的配置、命令、插件以及各种实用功能。以下是对各部分主要内容的详细解释: 1. **序言**:作者分享了使用vim的心得体会,对初学者提出了一些...

    Vim使用指南

    ### Vim使用指南及基础知识 #### 一、简介 Vim是一款功能强大的文本编辑器,它在程序员和技术人员中非常受欢迎。Vim具有高度可定制性,并且提供了丰富的功能集,如代码高亮、语法检查、多级撤销机制、宏记录等。本...

    vim用户手册和vim使用进阶

    **vim用户手册与vim使用进阶** vim,全名Vi Improved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。它的高效性和灵活性使得熟练掌握vim成为提升文本编辑效率的重要手段。本篇将深入探讨vim的基础知识及...

    VIM使用指南_推荐

    ### VIM使用指南知识点 #### 1. 引言与目标 VIM,全称Vi IMproved,是一种功能强大且广泛使用的文本编辑器,尤其在Linux/UNIX平台中备受推崇。该指南旨在通过一种独特的“清单式学习”方法,帮助读者在短时间内掌握...

    VIM 官方使用手册

    "VIM官方使用手册"包含了最新版本1.9.0的用户手册和参考手册,旨在帮助新手快速上手,同时为经验丰富的用户提供了深入的指南。 用户手册主要分为以下几个部分: 1. **入门**:介绍如何启动VIM,以及基本的编辑模式...

    VIM 编辑器使用介绍

    本文将介绍Vim的使用方法和一些基础知识。 VIM的基本功能和使用方法可以分为几个部分来了解: 1. 文件操作:VIM提供了丰富的命令来管理文件。用户可以新建、打开、保存和关闭文件。例如,“:w”命令用于保存当前...

    最好的vim使用参考手册

    ### 最好的vim使用参考手册 #### 一、Vim简介与基本操作 ##### 1. Vim是什么? Vim是一款功能强大的源代码编辑器,最初基于Vi进行开发,并在此基础上进行了大量的改进和增强。Vim支持多种操作系统平台,包括Unix...

    VIM使用技巧之特殊字符的输入

    ### VIM使用技巧之特殊字符的输入 在Linux环境下,VIM是一款非常强大的文本编辑器,它支持多种功能,包括但不限于文件编辑、脚本编写等。对于程序员和系统管理员来说,掌握VIM的一些高级特性是必不可少的。本文将...

    centos7解决无法使用vim命令.docx

    ### CentOS 7 无法使用 Vim 命令问题解析及解决方案 #### 一、问题背景与概述 在 CentOS 7 系统中,用户可能会遇到无法使用 Vim 编辑器的情况。具体表现为当用户尝试使用 `vim` 命令时,系统提示 `-bash: vim: ...

    vim使用宝典

    以上内容仅是Vim使用宝典的冰山一角,具体操作、进阶技巧以及解决常见问题的方法都需要通过系统的学习和实践来掌握。对于已经对Vim有一定了解的用户,可以跳过基础介绍,直接进入具体操作的学习。而对于希望通过Vim...

    vim插件-linux使用

    本篇将详细介绍 Vim 插件在Linux环境下的使用,以及如何管理和配置这些插件。 首先,`.viminfo` 文件是Vim的会话信息存储文件,它记录了用户在Vim中的各种操作历史,如打开过的文件、光标位置、搜索历史等。当你...

    ubuntu-ubuntu升级vim-安装指定版本vim.pdf

    在Ubuntu系统中,默认安装的Vim版本可能无法满足某些用户的特定需求,比如需要使用最新版本的功能或者对某个特定版本有依赖关系。本文将详细介绍如何在Ubuntu环境下升级或安装指定版本的Vim,并提供具体的步骤和注意...

    vim.zip vim安装包 解压可用

    一、Vim的基本介绍 Vim是Bill Joy的Vi编辑器的增强版本,它在保留了Vi原有的强大功能的基础上,增加了许多新的特性,如语法高亮、自动缩进、宏录制和播放、多窗口编辑、插件支持等。Vim以其高效、轻量级和高度可定制...

    Vim7使用手册

    本手册详细介绍了Vim7的各项功能,旨在帮助用户充分利用其强大功能。 在Vim7中,有以下几个关键知识点: 1. **启动与退出**:学习如何启动Vim以及在编辑模式、命令模式和插入模式之间切换。例如,使用`:q`退出编辑...

    vim的wiki插件 vimwiki

    vimwiki 在 vim官网所有插件中 好评排第三。 此包中含有五个文件: vimwiki1.2 包 vimwiki2.0 最新包,刚刚...介绍及文档 Vimwiki1.1.1QR.pdf Vimwiki syntax markup.html vimwiki_Description.txt 感谢vimwiki创作者

Global site tag (gtag.js) - Google Analytics