深入浅出vi(vim)编辑器篇章zero——初始vi(vim)

来源:互联网 发布:淘宝二手市场网 编辑:程序博客网 时间:2024/06/15 11:55

序言:

这是一个系列的博客,主要记录如何成长为一个常用的vim党。当然,这个系列的博客不会让你成为vim的专家。只是为了让你如何从一个小白成长为一个vim党。

文本编辑器是Linux操作系统中的最重要的工具,其中,vi是使用最多的文本编辑器之一,可以在任何shell中使用。vi是“visual editor”的缩写。作为系列博客的第一篇,本篇博客将带你走进vim,包括最为基本的vim的工作。当然并不会让你成为vim的专家。我也不是专家,作为最常见的vim党,一般需要了解不是很多的指令就可以完成正常的vim最为常见的工作。


vi(vim)编辑器概述

vim是从vi发展出来的一个文本编辑器,代码补完、编译及其错误跳转等方便编程的功能特别丰富。尤其是搞笑的代码读写率、高效的移动性。使其在程序员中被广泛的使用,vim和emacs并列成为UNIX/Linux系统最喜欢的编辑器。
编辑器也称为文本编辑器,用于处理文本处理的程序。而vi是一种屏幕编辑器,即一次可以看到整个屏幕的文本,可以在屏幕中随意移动的光标并选择文本的一个部分,也可以向上或者向下移动数据视图,当启动vi编辑器后,vi将指定的内容复制到缓冲区的内存空间以供用户编辑。如果没有指定打开的文件,则创建一个空的缓冲区。

注意:缓冲区只是文件在内存中的临时存放处,启动vi的时候,vi将要编辑的文件从磁盘从读入缓冲区,在回话的过程中,vi将所做的修改保存在缓存区而不实时修改,因此在退出vi前如果不保存文件,对文件所做的修改将不复存在。所以在修改文件中一定要注意存盘之后在退出。

启动vim

启动vim可以直接运行vi或者vim命令。然后按下回车建,即可以出现下面的界面。

    vim 

这里写图片描述

注意,如果没有安装在debian中,需要使用下面的shell语法进行安装。

    aptitude install vim

退出vi(vim)

退出vim先按下Esc键,然后输入下面的指令,退出vi(vim)后会立刻返回到shell提示符。

    :q                            #退出vim    :q!                           #强行退出vim(不提示此次编辑的任何修改)    :wq                           #保存退出    :w myfilename                 #保存为指定的文件名退出

命令模式

用户可以输入命令,通过命令实现移动光标、删除、或者改动部分文档以及如赋值、粘贴、退出等操作。命令一经过输入就会被立即执行,不需要按下回车键。通过下面的命令可以将vi(vim)由命令模式切换到插入模式。当用户启动vi(vim)的时候,vi(vim)默认处于命令模式下。且不管在什么模式的下,用户只要按下Esc键,就会切换到命令模式下。

切换到插入模式的命令:

    i                     #在当前字符之前插入文本    I                     #在当前行的行首插入文本    a                     #在当前字符之后追加文本        A                     #在当前行的行尾追加文本    o                     #在当前行的下面添加一新行    O                     #在当前行的上面添加一新行

vi(vim)中常用的命令

vim中命令很多。但是常用的命令出现的频率就是那几个,我们需要的就是熟练记忆那几个命令。

光标移动命令

光标移动命令只有在命令模式下才有效。

    0                    #移动光标到当前行的行首    $                    #移动光标到当前行的行尾      H                    #将光标移动屏幕顶部的第一行的最左端    M                    #将光标移动屏幕中间    L                    #将光标移动到屏幕的尾部

突发奇想:vim对“单行”的长度是没有限制的,仅仅受限于可用的内存容量。而文件的的总长度受限于可用的磁盘和内存空间。

字符与块删除命令

在命令模式下,删除的命令分2种,一种是字符删除命令,一种是块删除命令。
删除字符使用x/X字符。

    x                        #删除当前字符    X                        #删除当前光标左侧字符    D                        #删除到行的末尾    dd                       #删除一行    3dd                      #删除当前行开始的3行

复制文本、粘贴文本命令

复制命令实际上把指定的文本内容复制到通用的缓冲区,复制命令包含y、Y命令。都是需要在命令模式下使用。
命令yy可以复制一行,默认为当前行,如果需要赋值多行,可以在命令yy前指定行数,

    3yy                       #复制当前行开始的3行文本    5Y                        #复制当前行开始的5行文本

粘贴命令实际上是把通用缓冲区的内容复制到当前的位置 ,粘贴命令包括p、P命令。都是需要在命令模式下使用。

    p                          # 将通用缓冲区的内容粘贴到当前字符之后    P                          #将通用缓冲区的内容粘贴到当前字符之前

vi(vim)中的字符与文件操作

vi(vim)可以在整个缓冲区查找与正则表达式相匹配的字符串,在命令模式下,键入斜杠(/)后跟带查找的字符串(称为搜索字符串),按下回车键,vi(vim)即可开始搜索。当然,搜索成功,光标就是停留在首次匹配该字符窜的第一个字符处。如果向后搜索到文件的末尾仍然没有搜索成功,则这回到缓冲区的开始继续搜索。同样,在向前搜索的文件头仍然没有找到搜索的字符串,则返回到缓冲区的末尾继续搜索。按下n键可以向后重复上一次搜索,按下N建可以向前重复上次搜索。

替换指定的字符串

在末行模式(在命令模式下加上:)的替换命令具有查找与修改双重功能。替换命令首先查找某个字符串(匹配搜索字符串的字符串),然后修改字符串。末行模式下的替换命令s语言如下:

    :[g] [address]  s/search/replacement [/option]    #g 表示在所有行中进行查找和替换。address表示查找的范围,默认为当前行。
    #address应用示例    3                                #第三行    22100                          #从22行到100    5,.                              #从第5行到当前行    5,$                              #从第5行到末尾    %                                #整个缓冲区    g/pattern/                       #包括字符串pattern的所有行    /pattern                         #搜索到的首次包含字符串pattern的行    .,. +20                          #从当前行开始向后的连续20行    .,. -10                          #从当前行开始向前的连续10行
    #查找与替换命令说明    :s /string1/string2              #将当前行第一次搜索到的字符串string1替换为string2    :1,.s/string1/string2/g          #将当前行之前的所有行中的字符串string2替换为string2    :1,$s/string1/string2/g          #将所有行中出现的字符串string1替换为strin2    :/string/s/string1/striing2/g    #将首次出现字符串string的行中字符串string1替换为string2

更改大小写命令

在命令模式下,(~)可以更改字母的大小写。可以将小写字符改为大写。

显示状态信息命令

显示文件的状态信息通常有2种方式,在命令模式下,按下Ctrl + G 组合键和在末行模式下使用命令:f
通常情况下:会显示文件的状态信息,包括文件名、行数、当前行号等等。


小结:

vim是一个自由软件,但是程序的开发者建议用户在使用这写自由软件的同时,为乌干达的孩子捐一点款,通过使用命令:help uganda 可以看到有关捐助。
同时,vim中最为强大的部分我还木有讲到,因为在Linux哲学思维中有这样的一条:只做一件事情。
正是因为这样,所以vim才做的非常好。我们现在掌握了最为基本的vim知识,下系列的博客我会深入的记录vim 中如何搭建编译器?或者说vim的众多的插件功能等等!当然。这些基本都是以这篇博客为基础。

原创粉丝点击