博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VI和VIM
阅读量:5223 次
发布时间:2019-06-14

本文共 1820 字,大约阅读时间需要 6 分钟。

vi vim

linux有多重编辑器,但是在不同的distribution上不一样,vi基本是在每个distribution上都支持的。

vim是vi的增强版。vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。

vi的三种模式:

vim编辑器的三种模式:一般模式、编辑模式和命令行模式。

在一般模式中可以进行删除、复制和粘贴的功能,但是无法更加明确的编辑文件内容。

从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。具体说明如下,个人觉得只需要记住i就可以了。

  • i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
  • a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
  • o,O:进入插入模式。o为在下一行插入。O为在上一行插入。
  • r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。

从编辑模式切换到奥一般模式:ESC。

在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行,也就是命令模式,在这个模式中可以提供查找数据的操作,读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。

编辑模式与命令行模式之间是不能互相切换的。

在一般模式下,可以执行的命令有:

移动光标的命令:

  • PgDn键:下一页 (这个命令在编辑模式下也有效)
  • PgUp键:上一页(这个命令在编辑模式下也有效)
  • Home键:光标移动到这一行的第一个字符的前面(这个命令在编辑模式下也有效)
  • End键:光标移动到这一行的最后一个字符的后面(这个命令在编辑模式下也有效)
  • G:光标移动到最后一行
  • 1G或者gg:光标移动到第一行
  • 10G:光标移动到第10行
  • 输入10之后按下Enter键:光标往下移动10行。

查找和替换:

  • /word:向下寻找一个名称为word的字符串。
  • ?word:向上寻找一个名称为word的字符串。
  • n:重复上一个查找
  • N:反向重复上一个查找
  • :n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.
  • :1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.
  • :1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

示例::1,$s/trace.log/test.log/gc

删除复制粘贴

  • x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。
  • dd:删除光标所在的一整行。
  • ndd:删除光标所在的向下n行。
  • yy:复制光标所在的一行。
  • nyy:复制光标所在的向下n行。
  • p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。
  • u:复原前一个操作。
  • [Ctrl]+r:重做上一个操作。
  • .:小数点,重复前一个操作

vim的功能

  • 块选择:

这个功能可以让我们复制一个矩形区域的内容,十分方便。

v:字符选择,会将光标经过的地方反白选择;

V:行选择;

Ctrl+v:块选择;

y:复制反白的地方;

d:删除反白的地方。

示例如下:

需要注意的是,粘贴时候也是粘贴在一个块的范围内,而不是以行为单位来处理的。

  • 多文件编辑

我们在两个或多个文件之间复制粘贴内容时,这个功能会让我们方便很多。

使用命令vim name1 name2 name3...(各个文件名之间用空格隔开)可以同时打开多个文件。

:n:编辑下一个文件;

:N:编辑上一个文件;

:files:列出目前vim打开的所有文件。

  • 显示行号:

:set nu  设置行号

:set nonu 取消行号

vi和vim的使用:

vi和vim是两个独立的命令,如果需要高亮或者块选择等程序编辑功能,那么使用vim命令。

有的系统直接用vim替换了vi。替换的方式是使用alias。

输入alias命令可以看到全部的昵称命名。确认里面是否有vi和vim的昵称替换规则。

 

转载于:https://www.cnblogs.com/xiaolang8762400/p/7355294.html

你可能感兴趣的文章
贝叶斯
查看>>
E:Zju1047 Image Perimeters
查看>>
[Hnoi2006]马步距离
查看>>
openssl生成RSA非对称密钥---Windows
查看>>
cocos2dx 3.3将坐标由父空间转化到局部空间
查看>>
快速幂取模
查看>>
利用游标循环删除数据
查看>>
【ZJOI2007】棋盘制作
查看>>
一个体验好的Windows 任务栏缩略图开发心得
查看>>
电商购物车产品在做什么?
查看>>
PTA-1028——List Sorting
查看>>
自己实现Java中List对象转换为JSON对象
查看>>
python数据类型之字典类型
查看>>
【effective c++读书笔记】【第2章】构造/析构/赋值运算(2)
查看>>
MyEclipse – MyEclipse9.0正式版的破解和激活方法(注册机)
查看>>
你不知道的JavaScript--Item20 作用域与作用域链(scope chain)
查看>>
【Android Developers Training】 5. 序言:添加Action Bar
查看>>
【Android Developers Training】 35. 序言:分享文件
查看>>
Php的异步处理
查看>>
转让接包相关事项
查看>>