`
0769
  • 浏览: 80402 次
  • 性别: 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使用进阶: 使用会话和viminfo 本文介绍如何使用vim的会话 (session) 和viminfo来恢复vim的使用环境。如果你需要经常恢复到相同工作环境,此功能非常有用,你不必一次次重新...

    VIM 编辑器使用介绍

    介绍VIM使用的资料,有心学习的同学可以看一看,内容比较多,比较细。

    VIM使用进阶 pdf格式

    VIM使用进阶 一篇介绍VIM高级使用技巧的文档,pdf格式

    vim使用进阶 使用vim提高你的文本编辑效率

     本系列文章介绍我自己使用vim的一些经验,主要包括vim使用技巧、vim配置、vim命令、vim 插件等内容。本篇是序言,务虚为主。  在使用vim进行软件开发之前,我使用的工具是Source Insight,相信大家并不陌 生。...

    VIM 官方使用手册

    包含 VIM 官方最新的用户手册和说明手册,详细介绍了 VIM 各个方面的使用,并详细介绍了 VIM 的各种命令和快捷键,适合新手和老手阅读。

    vim的wiki插件 vimwiki

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

    vim使用进阶

    介绍vim的进阶使用方法,提高使用vim的文本编辑效率

    Vim用户手册中文版73.pdf

    详细介绍VIM使用过程中的技巧,对于提高编程效率有很大的帮助。可当做VIM手册使用。注:Bram Moolenaar编写,赵如飞翻译。

    vim 从入门到精通

    vi/vim使用进阶: 使用taglist插件 本文介绍如何使用taglist插件(plugin)来查看程序中的标签(tag),并介绍了taglist插件的配置和用法。taglist插件利用Exuberant ctags程序生成标签文件,并提供像Source Insight那样...

    vim简介,讲解linux/unix下的开发工具vim的使用

    vim简介,讲解linux/unix下的开发工具vim的使用

    socket 的一些代码以及vim技术的一些介绍

    socket 的一些代码以及vim技术的一些介绍socket 的一些代码以及vim技术的一些介绍socket 的一些代码以及vim技术的一些介绍

    vim使用手册(最新)

    际使用中逐渐掌握了一些实用技术,在此介绍给大家。——本文并不企图对Vim作全面而系统的介绍,但 也绝非零星地点到即止;而是希望通过介绍一些重要特性和提供相关参考信息,引起大家的兴趣,去深 入挖掘其能力,...

    《Hacking Vim》[PDF]

    除了实现对VI的兼容性外,VIM还扩展了很多的功能,包括语法高亮,代码折迭,脚本扩展等等,Packt Publishing出版社出版的这本书《Hacking VIM》就对VIM使用的一些TIP作了介绍,介绍的内容包括定制篇,移动篇,效率篇...

    byte_of_vim_v051

    vim介绍vim介绍vim介绍vim介绍vim介绍vim介绍vim介绍vim介绍vim介绍vim介绍vim介绍

    Vim的auto-pairs插件

    其它的括号和引号的使用方法相同。 三、安装方法: 只需把文件夹中的auto-pairs.vim文件,拷贝到vim的plugin文件夹下就可以。重启vim就可以生效了。 四、在ubuntu16中,安装此插件的说明: 1、在ubuntu16中,把此插件...

    VIM 使用介绍.pdf

    国防科技大学关于vim工具的原版ppt课件(含标签),主要内容有 1.背景及必要性 2 高效文本编辑:高效文本编辑的 7 个习惯;高效文本编辑器;Vi 的优点及历史 3 配置及工作模式说明:配置环境;工作模式;命令模式...

    VIM中文手册完整版

    vim使用必备手册,详细介绍了vim的各种神奇功能,能大大地方便在linux平台下使用vim编辑各种文档。

    vim-notes, 在Vim中,轻松记下.zip

    vim-notes, 在Vim中,轻松记下 轻松笔记在Vim中Vim Vim插件的Vim注释使得你可以轻松地在Vim中管理便笺:开始新便笺的开始时间: 运行命令以创建新的缓冲区并加载适当的文件类型和语法你还可以使用诸如 :edit,:...

    VIM命令、快捷键使用介绍

    VIM详细快捷键使用说明、命令使用说明。

    vim user manual ---vim用户手册

    j01.3j 使用Vim教程 j01.4j 版权 jusr 02.txtj Vim第一步 j02.1j 首次运行Vim j02.2j 插入文本 9 10 第00章目录 j02.3j 移动光标 j02.4j 删除字符 j02.5j 撤消与重做 j02.6j 其它编辑命令 j02.7j 退出 j02.8j 求助 ...

Global site tag (gtag.js) - Google Analytics