进入命令

vi <文件名>

如 vi test

如果test文件存在,则直接打开编辑。如果不存在,则新建一个test的文件,这个新建的文件如果不保存的话,退出编辑器后也不会保存到硬盘中。

操作模式

编辑模式和命令模式。

进入的时候 默认是命令模式。除了增加和减少文字的编辑操作,拷贝、删除、复制、粘贴 都在命令模式下操作。

输入a、i、s、o等插入命令后进入编辑模式。

编辑模式切换到命令模式,按键盘的Esc键。

进入编辑模式

a:从光标所在之处的后面插入新的字符,插入时,插入处后面的字符会随着新增字符往后移动。

A:从光标所在行的最后处开始加入新的字符。

i:从光标所在之处的前面插入新的字符,插入时,插入处后面的字符会随着新增字符往后移动。

I:从光标所在行的第一个非空字符前面开始加入新的字符。

o:在光标所在行的下面新增一个空行,并进入插入状态。

O:在光标所在行的上面新增一个空行,并进入插入状态。

s:删除光标所在之处的字符,并进入插入状态。

S:删除光标所在的行,并进入插入状态。

以下是命令模式的操作

保存和退出

:q:退出vi。

:q!:舍弃当前对编辑内容所作的修改,强行退出vi。

:wq:存盘退出。

:w [<文件名称>]:另存为。将正在编辑的内容以<文件名称>为名存盘(相当于Save as...),如果没有指定<文件名称>,则使用原有的文件名称(相当于Save...)。

选择块

E:从光标当前位置到当前所在单词的最后一个字符。

B:从光标当前位置到上一个单词的第一个字符。

$:从光标当前位置到该行的最后一个字符。

):从光标当前位置到下一句的第一个字符。

3):从光标当前位置到后面第三句的第一个字符。

{:从光标当前位置到当前段落的第一个字符。

}:从光标当前位置到下一段落的第一个字符。

剪切 复制 粘贴 删除  与 撤销

d<范围> 删除某一块内容 dd删除当前行

y<范围>复制 ,(y表示yank) yy复制当前行

p粘贴

X:删除光标所在处字符。

dd:删除光标所在的行。

D:删除从光标所在之处开始直到该行末尾的全部字符。

u:恢复刚被删除的文本。

U:恢复光标所在行在此次编辑中的全部改变。

查找

f<字符>:从光标所在处开始,将光标向右移动到第一个出现<字符>的地方。

F<字符>:从光标所在处开始,将光标向左移动到第一个出现<字符>的地方。

;:配合f与F命令使用,表示继续往同方向检索一次。

,:配合f与F命令使用,表示继续往反方向检索一次。

/<字符串>:从光标所在处开始,往后搜索第一个有<字符串>的地方,然后把光标放到该处。

?<字符串>:从光标所在处开始,往前搜索第一个有<字符串>的地方,然后把光标放到该处。

n:配合/与?命令使用,表示继续往同方向检索一次。

N:配合/与?命令使用,表示继续往反方向检索一次。

移动光标

←↑→↓:左、上、右、下移动光标。

h、k、l、j:左、上、右、下移动光标。

0 (零):将光标移动到行的起始处。

$:将光标移动到行的末尾处。

H:将光标移到当前窗口(而非全文)的第一行起始处。

M:将光标移到当前窗口的居中一行起始处。

L:将光标移到当前窗口的最后一行起始处。

W:将光标移到下一个单词(word)的第一个字符处。

B:将光标移到上一个单词的第一个字符处。

E:将光标移到当前单词的最后一个字符处。

<数目>G:将光标移动到第<数目>行行首。

-:将光标移动到上一行的第一个非空字符处。

+:将光标移动到下一行的第一个非空字符处。

<数目>-:将光标移动到上<数目>行的第一个非空字符处。

<数目>+:将光标移动到下<数目>行的第一个非空字符处。

(:将光标移动到光标当前所在句子的最前面,这里句子是用!.?三种符号界定。

):将光标移动到下一个句子的最前面。

<数目>(:将光标移动到前<数目>个句子的最前面。

<数目>):将光标移动到后<数目>个句子的最前面。

{:将光标移动到光标当前所在段落的最前面,这里段落是用段落之间的空行界定。

}:将光标移动到下一个段落的最前面。

<数目>{:将光标移动到前<数目>个段落的最前面。

<数目>}:将光标移动到后<数目>个段落的最前面。

:set ic搜索时不区分大小写。

退出recording  先按ESE 再按q

Linux vi的基本操作的更多相关文章

  1. Linux vi 操作命令整理

    转自:http://www.lupaworld.com/?uid-296380-action-viewspace-itemid-118973   vi/vim 基本使用方法 本文介绍了vi (vim) ...

  2. 转载:linux vi命令详解

    转自:http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html 刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编 ...

  3. 关于Linux vi命令 vi命令一览表

    vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世 ...

  4. 详解linux vi命令用法

    vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来 ...

  5. linux vi命令详解

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

  6. 【转】详解linux vi命令用法

    功能最强在的编辑器--vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器 ...

  7. linux vi命令详解2

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

  8. linux vi详解

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

  9. Linux vi/vim使用方法

    vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 1.vi的基本概念 基本上vi ...

随机推荐

  1. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  2. DataBase project physical design

    DataBase physical design //Table: /*student*/ create table student( id int not null primary key, /*学 ...

  3. hibernate缓存机制详解

    hiberante面试题—hibernate缓存机制详解   这是面试中经常问到的一个问题,可以按照我的思路回答,准你回答得很完美.首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再 ...

  4. initWithImage和imageWithContentsOfFile的区别

    UIImageView *imageView = [[UIImageView alloc] initWithImage:         [UIImage imageNamed:@"icon ...

  5. Java Platform SE binary已停止运行 Can't load AMD 64-bit.dll on a IA 32-bit platform错误

    这个我是在junit测试web项目时候遇到的问题,然后今天遇到一位网友也遇到了,报问题的是A卡了,所以今天做个记载,方便遇到问题的人,因为,之前我个人遇到这个问题,在网上找了很久都没有找到. 上面这个 ...

  6. Multisim的电路分析方法

    Multisim的电路分析方法:主要有直流工作点分析,交流分析,瞬态分析,傅里叶分析,噪声分析,失真分析,直流扫描分析, 灵敏度分析,参数扫描分析,温度扫描分析,零一极点分析,传递函数分析,最坏情况分 ...

  7. C#网络编程(接收文件) - Part.5

    这篇文章将完成 Part.4 中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分.我们继续进行上一篇没有 ...

  8. Kubernetes安装部署演示介绍

    四.安装k8s 1.安装 使用的是k8s 1.2.4版本. 将kubernetes.tar.gz 上传主机,并解压. tar -xzvf kubernetes.tar.gz cd kubernetes ...

  9. Linux 驱动层实现阻塞和非阻塞

    linux应用层的函数默认是阻塞型的,但是要想真正实现阻塞,还需要驱动的支持才行. 例:open().scanf().fgets().read().accept() 等 1.默认情形,驱动层不实现阻塞 ...

  10. laravel 网站速率优化

    https://segmentfault.com/a/1190000009954966