linux——(6)vim与vi
概念: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的更多相关文章
- Linux的vim和vi编辑器
vim和vi的基本介绍 所有的Linux 系统都会内建vi 文本编辑器. Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. 代码补完.编译及错 ...
- Linux中vim和vi编辑器的使用
vim 和 vi 的关系: 可以将vim视作vi的高级版本,vim可以用颜色或下划线的方式来显示一些特殊信息.vim不止是文本处理软件,而可以说是一个程序开发工具.因为vim里面加入了很多额外功能,例 ...
- 小白学Linux(五)--VI/VIM编辑器
我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...
- Linux学习笔记之VI(VIM)编辑器
百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1 进入和退出vi 进入:在终端命令行输入 vi ...
- Linux - VIM(VI)编辑器
VIM(VI)编辑器 简介: VI是一个命令行界面下的文本编辑工具,最早在1976年BILL Joy开发,当时的名字叫做ex.VI支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大. 1 ...
- Linux系统中的vi/vim指令【详解】
vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称.几乎可以说任何一台Unix机器都会提供这套软件. 只要简单的在Shell下执行vi就可以进入 vi 的 ...
- 初识Linux(五)--VI/VIM编辑器
我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件.VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,可能有些发行版本没有自带,可以 ...
- Linux学习之十三-vi和vim编辑器及其快捷键
vi和vim编辑器及其快捷键 1.vi与vim区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方 ...
- linux vim,vi编辑器的基础
在之前我也不知道为什么要学vim和vi编辑器,仅仅是听过别人说这个对与linux非常重要. 先说一下为什么要学习这个编辑器.个人的看书理解. 系统管理员的重要工作就是參与与设置某些重要软件的配置文件, ...
随机推荐
- Python学习笔记(补充)Split 用法
>>> u = "www.doiido.com.cn" #使用默认分隔符 >>> print u.split() ['www.doiido.co ...
- java中error和exception
异常是指程序运行时发生的错误. Throwable是所有异常的父类,它有两个子类:Error和Exception. 1.Error表示程序在运行期间发生了非常严重的错误,并且该错误是不可恢复的.Err ...
- 【LibreOJ】#6299. 「CodePlus 2018 3 月赛」白金元首与克劳德斯
[题意]给出坐标系中n个矩形,类型1的矩形每单位时间向x轴正方向移动1个单位,类型2的矩形向y轴正方向,初始矩形不重叠,一个点被矩形覆盖当且仅当它在矩形内部(不含边界),求$(-\infty ,+\i ...
- 在iOS开发中如何播放视频
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong 如何播放视频 •iOS提供了叫做MPMo ...
- thinkphp 5.0 代码执行漏洞
https://github.com/vulhub/vulhub/blob/master/thinkphp/5-rce docker-compose -f /home/root/compose.yml ...
- KVC, KVO 实现原理
Key-Value Coding: 键值编码 (KVC) 方法调用: // 对象属性 // 类似: Person -> name setValue: forKey: // 对象的属性或者 属性的 ...
- WPF之DataGrid--列的前台及后台实现
一.前台实现 在xaml里可以很轻松地实现一个如下图所示的DataGrid <StackPanel> <ComboBox Width="50" Horizonta ...
- java版云笔记(七)之事务管理
事务管理 事务:程序为了保证业务处理的完整性,执行的一条或多条SQL语句. 事务管理:对事务中的SQL语句进行提交或者回滚. 事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的 ...
- AssetBundle——外部加载资源Asset
几篇很不错的文章 AssetBundle创建到使用入门 全面理解Unity加载和内存管理 实用的创建AssetBundle的脚本 相关资源 相关的共享资源下载 本共享包括创建assetbund ...
- 安全控制 iptables
转自:http://www.opsers.org/linux-home/videos/chapter-netfilter-iptables-raiders.html 内容简介防火墙的概述iptable ...