概念:vi与vim的区别

vi是一款老式的文字处理软件,不过现在依然广泛使用,所有的UnixLike系统都会内置vi文本编辑器。

vim可以看出vi的升级版,不过vi更像是一个程序开发工具,功能也比vi多很多。

vim的使用

vim分三种模式:一般模式、编辑模式、命令行模式。

一般模式:可以完成复制、粘贴、删除等操作。

编辑模式:可以进行插入和替换,也就是直接编辑文件内容。

命令模式:可以进行替换、查找、显示行号等额外功能。

模式的切换:

在一般模式按i、o、a、r(大写也行)可以进入编辑模式。

在一般模式按?、:、/三个键可以进入命令行模式。

在编辑模式和命令模式按esc可以进入一般模式。

只用在命令模式和一般模式可以退出vim。

vim的操作特别丰富,下面博主只裁剪出博主常用的部分,其他功能大家可以自行百度或者man vim。

一般模式下:

移动类:

光标移动:←(h)、↓(j)、↑(k)、→(l),在移动前还可以输入数字,表示移动的步数。

下翻一页:ctrl+f。

上翻一页:ctrl+b。

回到这一行开头:Home

回到这一行结尾:End

到最后一行:G

到第一行:gg

向下移动n行:n+enter

删除复制粘贴类:

向后删除一个字符:x。

向前删除一个字符:X。(数字+x/X,数字代表删除的数目。)

删除当前行:dd。(数字+dd,数字代表想要删除的行数。)

复制当前行:yy。(数字+yy,数字代表想要复制的行数。)

在前一行进行粘贴:P(大写)。

在下一行进行粘贴:p(小写)。

合并当前行和下一行:J(大写)。

撤销上一个操作:u(小写)。

重做上一个操作:ctrl+r。(注:这个重做不是重复刚刚的操作。)

重复刚刚进行的哪一个操作:.(小数点)。

保存后退出vim:ZZ(大写)。

在一般模式按下进入编辑模式的键时的区别如下:

i:在当前光标出插入。

I:在当前光标所在行的第一个非空格字符处插入。

a:在当前光标的下一个位置插入。

A:在当前光标所在行的最后一个字符处开始插入。

o(小写):在光标所在行的下一行新插入一行。

O(大写):在光标所在行的上一行新插入一行。

r:替换当前光标所在位置的字符,只给你一次输入机会。输入完自动返回一般模式。

R:替换档期光标所在位置的字符,可一直输入,直到你按下esc。

从一般模式切到命令模式的时候的功能区别(很多情况下执行完毕后就自己回到一般模式了,没有自动退回的按esc可退回,因为":"在这里有特殊意义所以下面用空行来排版,":"一律视为输入)

/word  向下寻找word这个字符串。

?word  向上寻找word这个字符串。

注  查找后按n表示重复上一个查找操作,按N表示反向重复上一个查找操作。

:w  保存数据。

:w!  强制保存数据,当你有这个文件的所有修改权,而恰好文件又被设置成只读的时候可以用。(之后的强制都是类似的意思。)

:q  退出vim,如果你修改过文件可能就退出不了必须用下面的命令。

:q!  强制退出vim。

:wq  保存后退出vim。

:w  filename  另存为filename文件,但不会退出vim,退出也要再决定刚刚的修改要不要保存再原文件上。

:r  filename  将filename文件的内容读到这个文件中来。

:! command  暂时退出vim,用shell执行command命令。

:set nu  显示行号。

:set nonu  不显示行号。

注  从这里开始":"回到规范格式的行列,另外以上命令vi与vim通用。

vim的功能

块选择(相当好用的东西)

一般模式下:

按下v(小写):移动游标,经过的地方会连接起来反白。

按下V(大写):移动游标,经过的行都会反白。

按下ctrl+v(小写):移动游标会以四边形的方式反白文字。

之后可以按y复制反白的地方,或者按d删除反白的地方,p是粘贴,最后一个ctrl+v的反白与粘贴请务必实验下,非常方便。

多文件编辑

可以用vim同时打开多个文件一下命令可以用来控制。(下面三个":"是输入)

:n  编辑下一个文件。

:N  编辑上一个文件。

:files  列出这个vim打开的所有文件。

多窗口功能(下面两个":"是输入)

:sp  打开同一个文件的两个窗口。

:sp filename  打开filename文件分屏处理。

分屏移动的方法

先按下ctrl+w(一直按着可以看到游标在不同分屏里疯狂切换),然后松开w(ctrl可松可不),如果之后按w是移动到下一屏,也可以按↓/j,上一屏是↑/k。

vim的文件恢复机制

当你的文件被编辑的时候,会在同目录生成一个filename.swp文件,如果因为有人在你之前打开了这个文件或者你上次编辑这个文件的时候vim因为某种原因不正常退出了,在你打开的时候这个文件的时候vim就会检测到filename.swp这个文件的存在,就会出现警告信息,问你是怎么回事儿,是否需要恢复文件,或者叫你另外一个哥们儿把文件关了,你要改动了,或者你只是看看也可以用只读模式打开,等等。vim的提示很清楚可以自己看,如果不想再次看到这个警告信息,只有把filename.swp删了就行,不管是在提示下删除还是手动删除都行。

其他:

1,vim的环境配置文件是/etc/vimrc,每个用户的个性化设置文件是~/.vimrc。

2,vim会主动记录你的行为在~/.viminfo里面。

3,vim的使用请注意语言编码问题,需要考虑的问题有Linux本身支持的语系(/etc/sysconfig/i18n),终端支持的语系(LANG变量),文件的编码。

linux——(6)vim与vi的更多相关文章

  1. Linux的vim和vi编辑器

    vim和vi的基本介绍 所有的Linux 系统都会内建vi 文本编辑器. Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. 代码补完.编译及错 ...

  2. Linux中vim和vi编辑器的使用

    vim 和 vi 的关系: 可以将vim视作vi的高级版本,vim可以用颜色或下划线的方式来显示一些特殊信息.vim不止是文本处理软件,而可以说是一个程序开发工具.因为vim里面加入了很多额外功能,例 ...

  3. 小白学Linux(五)--VI/VIM编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...

  4. Linux学习笔记之VI(VIM)编辑器

    百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1   进入和退出vi 进入:在终端命令行输入 vi ...

  5. Linux - VIM(VI)编辑器

    VIM(VI)编辑器 简介: VI是一个命令行界面下的文本编辑工具,最早在1976年BILL Joy开发,当时的名字叫做ex.VI支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大. 1 ...

  6. Linux系统中的vi/vim指令【详解】

    vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称.几乎可以说任何一台Unix机器都会提供这套软件. 只要简单的在Shell下执行vi就可以进入 vi 的 ...

  7. 初识Linux(五)--VI/VIM编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...

  8. Linux学习之十三-vi和vim编辑器及其快捷键

    vi和vim编辑器及其快捷键 1.vi与vim区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方 ...

  9. linux vim,vi编辑器的基础

    在之前我也不知道为什么要学vim和vi编辑器,仅仅是听过别人说这个对与linux非常重要. 先说一下为什么要学习这个编辑器.个人的看书理解. 系统管理员的重要工作就是參与与设置某些重要软件的配置文件, ...

随机推荐

  1. HDU 2608 底数优化分块 暴力

    T(n) as the sum of all numbers which are positive integers can divied n. and S(n) = T(1) + T(2) + T( ...

  2. HTML入门(二)表格_字体_超链接_布局

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Web 开发者不可不知的15条编码原则

    HTML 已经走过了近20的发展历程.从HTML4到XHTML,再到最近十分火热的HTML5,它几乎见证了整个互联网的发展.但是,即便到现在,有很多基础的概念和原则依然需要开发者高度注意.下面,向大家 ...

  4. javascript操作对象的方法

    with 确定某个对象的作用区域,在with代码段内的次对象的属性或方法可以直接使用. 例: //比如stu中有name,age属性和walk方法 with(stu) { alert(name+&qu ...

  5. 【洛谷 P1501】 [国家集训队]Tree II(LCT)

    题目链接 Tree Ⅱ\(=\)[模板]LCT+[模板]线段树2.. 分别维护3个标记,乘的时候要把加法标记也乘上. 还有就是模数的平方刚好爆\(int\),所以开昂赛德\(int\)就可以了. 我把 ...

  6. Django之组合搜索组件(二)--另附simple_tag的创建使用方法

    这次的代码为Django之组合搜索组件(一)的改版,实现的结果和(一)相同,不同的是,这次运用simple_tag方式,使.html程序简化 所以现在就开始编程吧! 首先想使用simple_tag方法 ...

  7. malloc原理和内存碎片【转】

    转自:http://www.cnblogs.com/zhaoyl/p/3820852.html 当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作: 1.检查要访问的虚拟地址是否合法 2.查 ...

  8. angular项目文件概览

    在Mac上打开终端,输入ng new b-app  如下: 然后在webstorm中打开 src文件夹 你的应用代码位于src文件夹中. 所有的Angular组件.模板.样式.图片以及你的应用所需的任 ...

  9. 阻止MyEclipse启动项目时自动跳转的debug视图

    启动web项目时,习惯使用debug方式启动,但此时会自动跳转到debug视图,很不习惯. 通过修改首选项配置,可以禁止跳转

  10. URL中斜杠/和反斜杠\的区别小结

    Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符. Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不 ...