概念: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. [译] man 7 pthreads

    NAME      pthreads - POSIX threads   DESCRIPTION      POSIX.1 指定了一组叫做POSIX线程或Pthreads的编程接口(函数,头文件).单 ...

  2. [转]C语言指针详解(经典,非常详细)

    博文地址:https://blog.csdn.net/constantin_/article/details/79575638 写得很好啊! 这里写一下笔记好了 int p; //这是一个普通的整型变 ...

  3. json格式的一些常用操作方法

    package com.liveyc.restfull.until; import java.util.HashMap; import java.util.Iterator; import java. ...

  4. 【洛谷P2014】选课

    题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门课有个学分,每门课有一 ...

  5. Coursera在线学习---第三节.归一化处理(Normalize)

    一.归一化(也说标准化)作用 1)将有量纲特征转化为无量纲特征 2)能够加快收敛(主要指梯度下降法时) 二.Octave中计算          mean(A)   求解矩阵中每一列的均值 std(A ...

  6. MGR Switch single-Primary to Muti_primary

    MGR single_primary 切换 Muti-Primary 模式 root@localhost [(none)]>select * from performance_schema.re ...

  7. MySQL5.6 新特性之GTID【转】

    转自 MySQL5.6 新特性之GTID - jyzhou - 博客园http://www.cnblogs.com/zhoujinyi/p/4717951.html 背景: MySQL5.6在5.5的 ...

  8. 清理oracle的用户中的日志垃圾以及修改sys用户的密码

    清理oracle的用户中的日志垃圾1.进入:/opt/oracle/product/11g/network/admin目录2.注释掉listener.ora文件中的TRACE_LEVEL_LISTEN ...

  9. {%csrf_token%}的作用

    <form> {%csrf_token%} </form> 在django中我们需要在templates的form中加入{%csrf_token%}这串内容,它的作用是当我们g ...

  10. Ubuntu 下查看已安装的软件

    Ubuntu 下如何查看已安装的软件 1.查看安装的所有软件 dpkg -l 例如: dpkg -l | grep ftp 2.查看软件安装的路径 dpkg -L | grep ftp 也可以用 wh ...