服务器 频道

vim快乐入门

  【IT168 服务器学院】这段时间看了经典的Vim-ViImproved(作者:SteveOualline)这本书的前几章,感觉是入门vim非常好的教材。顺便整理了一下,方便其他想学习vim的朋友!

  快乐入门Vim定位是对Vim的初学者(例如我就是),同时又希望快乐的学习vim(废话啊!谁不想快乐的学习呢?),学习的目的是掌握vim的基本使用方法,就像使用EditPlus那样的文本编辑器来进行日常的简单工作(不包括程序员,写程序用Vim,本文就不适合了,需要更加深入的学习)。学习的内容也非常简单,包括基本的输入,修改,拷贝、粘贴等常用的编辑命令。

  声明:本文的的内容全部参考经典的Vim-ViImproved这本书,如果与其他文章相同,实属巧合。

  本文系gogo_u原创,笔名小牛。我的邮件liuyong_ems@126.com。欢迎讨论!

  OK!GO!开始快乐的学习吧!

  Vim几句话介绍

  Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也有移植的版本,方便了Windows上的用户。Vim的文本编辑功能非常强大,强大的有些让人吃惊!并且非常稳定,你的文档不用经常存盘,它不会出现类似于“***程序内部错误!”等等现象,***程序曾经让我欲哭无泪啊!

  开始使用Vim吧!

  启动:在命令提示符后输入vim,然后回车,就启动了vim,然后进入vim的界面。如果在命令提示符后输入vim###并回车,则表示希望编辑###这个文件,例如vim.xinitrc,则编辑.xinitrc这个文件,如果这个文件不存在,则表示新建这个文件并编辑。好了,你赶快试试吧,然后我将告诉你如何输入一些文本。

  vim的工作模式

  别着急,要想输入文本,要先熟悉一下Vim的工作模式。(我第一次就是在输入了vim后,就开始劈里啪啦的输入,可是怎么没反映啊!?)
  vim的工作模式有三种,分别是正常(Normal)模式、插入(insert)模式和可视(visual)模式。这就是说Vim在不同的模式下工作的表现形式是不同的。在进入vim后,默认的模式是Normal模式,这时可以输入一些命令,不过别急,咱们先输入一些文本看看。在Normal模式下,单击i或者a,则进入insert模式,这时你可以输入了。为了后面的学习,你多输入些内容。输入结束后,单击Esc键,回到Normal模式,然后输入:wfilename,如果你启动vim时已经包含文件名,输入:w(注意包括冒号),则将文件存盘。

  OK,恭喜你!你现在已经能够启动vim,输入内容并存盘了。

  下面我们我们简单介绍一下模式的内容。

  前面说过,vim在不同的模式下有不同的工作方式,例如输入文本内容在insert模式下,其他进行修改、删除、拷贝、粘贴等在Normal模式下。因此当你发现输入错误想修改时必须切换到Normal模式下进行,是不是很麻烦啊!我当初也是这样认为的,但是你一旦习惯后,你就会觉得它的好处了!切换到Normal模式就是单击Esc键,vim的屏幕下面有当前工作模式的提示。进入输入文本的insert模式是输入i或者a。i和a这俩个指令的区别就是i代表在光标前插入字符,a代表在光标后插入字符,就是这么简单,OK,如何用就看你的了!

  编辑文本
  进行文本编辑,应该是Unix初学者最开始碰到的问题。Unix下的默认配置文件经常要修改的啊!所以掌握编辑方法是非常重要的。并且本文的目的就是让初学者掌握简单而又实用的编辑、修改命令。至于其他的高级使用方法,可以参考其他书籍!

  OK,咱们就开始学习吧!

  移动光标是最基本的,下面都是移动光标的命令,看看那个好记,就记住吧。

  在Noraml模式下,键盘上的h、j、k、l分别代表左、下、上、右移动光标。OK,在你刚才编辑的文档中试试移动光标,爽吧!再也不用移动手指到那4个方向键了!

  什么?你说这4个键一次只能移动一个字符和一行,太慢了!OK,下面几个快速移动光标的方法你有精力就记住吧!

  一次移动一个字(word)

  w和b指令一次分别向后/向前移动一个字。

  注:(1)可以用数字来进行移动多个Word,例如3w,2b就是分别向右(向后)移动3个word,和2个word。

  (2)中文因为是连在一起的,所以如果没有空格或者数字、英文标点的话,将视为一个word。

  移动到一行的头和尾

  ^:行头$:行尾

  注:行尾$,可以用3$移动到下面第3行尾,行首^不支持数字。

  如何跳到指定行?

  nG

  注:(1)n表示第n行,例如10G,则跳到第10行,且光标在行首。

  (2)如果没有n,只有G,则跳到最后一行,且光标在行首。

  我想用G命令,但是如何知道第几行?OK,在Normal模式下输入:setnumber就可以显示行号了,如果想关闭行号,则输入:setnonumber。

  好了,移来移去,来点别的吧,例如如何修改,复制。OK,GO!

  先来看看如何进行修改吧。Word和其他的一些文本编辑器都是编辑和输入混杂在一起的,输入的同时就可以修改。而Vim的这些编辑指令必须在Normal模式下,切记!

  修改命令

  删除:

  在word等编辑器下,如果输入错了,我们可以用Delete和Backspace键删除,然后再重新输入,vim也可以这样,x就是删除光标所在处的字符(char),dw就是删除一个字(word),然后在输入i或者a进行新内容的输入。

  删除整行如何操作?dd就可以删除光标所在行。

  那删除光标所在处到本行的结尾呢?D或者d$就可以了。还记得$吗?代表什么来着?

  删除结束还要在输入i或者a才能输入真麻烦!有没有删除后就进入inster模式的指令呢?当然有,就是关于c的指令,cw是删除一个Word,cc删除整行,c$和C都是删除光标所在处到本行的结尾。你可能已经明白了,其实c的指令是修改指令。

  好了,你是否已经把内容删干净了,没有可以编辑的内容了呢?呵呵,没关系,u指令可以让你恢复删除的内容。在Normal模式下,输入u,就恢复了,重复输入u就把整个内容都恢复了,u就是其他文本编辑器里的Undo的指令,对应的Redo指令就是[Ctrl]r。需要注意的是在不同模式下,u的含义是不同的。如果在instert模式下输入然后在Normal模式下执行u,则会删除上一次输入的所有内容。如果是在Normal模式下执行其他的指令例如x,然后再执行u,就恢复一次Normal下的指令。Redo也一样。

  OK,让我们来学习更加重要的功能吧!

  剪切、复制、粘贴等相关

  剪切、复制等这些指令都是同块(block)相关的操作,因此无论如何都要先了解一下块的基本知识。vim里用mark来定义一个标记,然后用y指令把指定的内容进行复制到缓存中,然后用p来粘贴。!@#¥%^&,天啊,太复杂了。没关系,咱们用个例子来说明吧,很简单的!

  例如下面的文本:
  thisisthefirstline

  thisis2ndline

  我们可以先把光标移动到第一行的行首,然后切换到Normal模式(还记得如何切换吗?),输入ma(表示标记a),然后移动光标到第2行的2nd处,输入y`a(表示把标记a到光标所在处复制到缓存中),然后移动光标到你希望粘贴的地方输入p(表示粘贴)。OK你已经完成了最基本的复制、粘贴功能。

  
  下面我们看看这几个命令(m,y,p)的情况。

  m指令。m指令非常简单,他就是做标记,你可以做从a到z的26个标记例如ma,mb,mc等。他在很多指令中会用到,例如删除,这本入门就不介绍了,你可以参考其他书籍。

  y指令表示yank,其实就是拷贝。不过他有其他的指令形式,例如yy复制整行。

  p指令就是粘贴。例如上面的例子。

  OK,既然你知道了yy指令,那希望复制一行并粘贴的话,我想你应该知道如何操作了吧(yy,p)。

  也许你用m做标记感觉不是很舒服,OK,我们来个可视的块的选择方法。那就是v指令。

  记得在其他的文本编辑器里我们可以用鼠标选择一些文本,然后copy,paste,在vim里一样可以,当然希望用鼠标最好用gvim。现在来试试v的指令吧。

  在Normal模式下,输入v(看到屏幕下面的visual模式提示了吗?),然后移动光标,看到被选择的内容了吧:)。选择好了,你可以输入d把他们删除,也可以输入y将他们复制到缓存中,然后用p来粘贴到你希望的地方。什么多次粘贴,多按几次p就可以了,也可以输入#p,#代表连续粘贴的次数,例如粘贴100次,就输入100p。

  OK,我想你一定喜欢上v命令了,还有V和[CTRL]v呢!V(大写)是表示可视行,就是代表你移动光标时,选择的范围是行,不像小写的v是一个字符。另外[CTRL]v是选择方块,你可以试试,就清楚了!

  好了,基本的东西就这些了,当然还有几个也不错的命令东东,很简单,它能高效的配合你上面的基本工作,那还犹豫什么!开始吧!

  连接行

  你在编辑的时候,一定会碰见希望把两行或者多行合并成一行的情况。好,vim已经给你设计好了,就是J指令,注意是大写(j是什么?)。J表示将光标所在行和下一行合并成一行,如何合并多行,可以输入#J,#代表希望合并的行数,例如3J。

  插入新行

  怎么插入新行?用o或者O指令(不是零)。o是在当前行下插入新行,大写O是在当前行上插入新行。真是简单,而且直接进入instert模式,不错,设计的很贴心。

  如何在一行内查找一个字符(或者一个中文单字)?

  使用fx,Fx,tx,Tx指令。其中x代表欲查询的字符。他们的区别是:fx(向右)查x,且光标停在x上,Fx(向左)查x,且光标停在x上,tx(向右)查x,且光标停在x前,Tx(向左)查x,且光标停在x后。

  如何查找字符串?

  使用/xxxxx。其中×××××为需查找的内容。当查到多个内容时,可以输入n来将光标定位到下一个位置。此外查找命令有历史记录功能,可以输入/,然后用光标上、下键来切换已经查过的内容。要注意的是几个特殊的字符必须在前面加\。这几个字符为:.*[]^%/\?~$。如果想往回查找,则输入?,改变查找顺序,再输入n来进行定位。当然也可以用N来反向查找。

  如何翻页(半页)?

  使用[ctrl]u和[ctrl]d。其中^u为向上翻半页,^d为向下翻半页。

  如何插入一些特殊的字符,例如:∮等?

  使用:digraphs来显示特殊字符的列表,然后输入CTRL+K+显示出来的2个字符来输入特殊字符,例如输入CTRL+K+I+o,则为∮。

  哦!忘记了告诉你如何退出vim!

  在Normal模式下,输入ZZ就可以保存文档并退出。

  在Noraml模式下,输入:q!可以强制退出,就是不保留修改退出。

  好了,享受Vim吧!

  如果本文不至于让你看得头大,并对你有所帮助,我将感到很高兴!

   

0
相关文章