进入命令
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的基本操作的更多相关文章
-
Linux vi 操作命令整理
转自:http://www.lupaworld.com/?uid-296380-action-viewspace-itemid-118973 vi/vim 基本使用方法 本文介绍了vi (vim) ...
-
转载:linux vi命令详解
转自:http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html 刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编 ...
-
关于Linux vi命令 vi命令一览表
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世 ...
-
详解linux vi命令用法
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来 ...
-
linux vi命令详解
刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...
-
【转】详解linux vi命令用法
功能最强在的编辑器--vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器 ...
-
linux vi命令详解2
刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...
-
linux vi详解
刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...
-
Linux vi/vim使用方法
vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 1.vi的基本概念 基本上vi ...
随机推荐
-
C#语句2——循环语句(for穷举、迭代和while循环)
一.for循环拥有两类: (一).穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元. ...
-
javascript 小技巧
1:Boolean()==!! console.log(Boolean(888));//true console.log(!!(888));//true console.log(Boolean(&qu ...
-
WPF:设置MenuItem多种不同状态图标
需求描述: 给MenuItem内部的子Image设置默认图标(鼠标leave).鼠标hover图标.和选中时的图标. 注:是给Menu内个别MenuItem修改,并且是弹出子菜单. 问题描述: 1)前 ...
-
Unity-Animator深入系列---剪辑播放后位置预判(Animator.Target)
回到 Animator深入系列总目录 animator.SetTarget(...);可以在播放前预判剪辑播放后的位置,但只限于人形动画 参数1是预判的关节,参数2是映射的剪辑时间 调用后通过targ ...
-
【C#4.0图解教程】笔记(第19章~第25章)
第19章 泛型 1.泛型概念 泛型提供了一种更准确地使用有一种以上的类型的代码的方式. 泛型允许我们声明类型参数化的代码,我们可以用不同的类型进行实例化. 泛型不是类型,而是类型的模板. 2.声明 ...
-
Php 基本语法
php基本语法 1. 四种不同的开始结束标记 只有<?php ?>.<script language="php"></script>两个总是可用 ...
-
java注释中使用注解@see
缘起 在写java时,有时需要写注释,而为了更好的描述,需要引用和参考其他代码.为了让阅读者更好的体验,javadoc中支持链接跳转,这就需要用到注解@see. @see用法 注解@see可以在注释中 ...
-
cf455C Civilization (并查集)
并查集维护每个联通块的直径和最小的最大深度,每次连得时候连的肯定是最大深度最小的那两个点 #pragma GCC optimize(3) #include<bits/stdc++.h> # ...
-
Win10系列:C#应用控件基础17
Popup控件 在应用程序中使用Popup控件时,通常会先将其设置为隐藏状态,当用户触发应用中已定义的事件时,Popup控件将以弹出窗口的方式显示相关信息来提示用户操作. 在XAML文件中,Popup ...
-
(1.9)SQL优化——mysql导入导出优化
(1.9)SQL优化——mysql导入导出优化 1.大批量插入数据 [1.1]MyISAM: (1)如果存在表且有数据,插入前先关闭所有非唯一索引. (2)如果表是空的,默认就是先导入数据再创建索引, ...