“第004课 vi编辑器”的版本间的差异

来自百问网嵌入式Linux wiki
 
(未显示3个用户的17个中间版本)
第1行: 第1行:
<categorytree background-color:white;">ARM裸机加强版</categorytree>
+
{| align="right" class="fix"
 +
| __TOC__
 +
|}
 +
<div body style="width:800px;">
 +
= vi编辑器1:一个编辑器具备的功能 =
 +
 
 +
一个编辑器(例如Windows中的记事本)具备的功能:
 +
# 打开文件、新建文件、保存文件
 +
# 光标移动
 +
# 文本编辑
 +
# (多行间|多列间)复制、粘贴、删除
 +
# 查找和替换
 +
 
 +
=vi编辑器2:vi编辑器的环境设置 =
 +
 
 +
为了更方便的使用vi编辑器,我们需要先对vi编辑器进行一些配置。打开虚拟机终端,输入以下命令:
 +
 
 +
<syntaxhighlight lang="c" >
 +
cd  /etc/vim     //进入vi配置文件目录
 +
cp  vimrc  ~/.vimrc //复制配置文件到我们自己的家目录(这样配置文件只会对我们自己有效,不会影响其它用户)
 +
cd  ~         //进入到家目录
 +
gedit  .vimrc    //使用gedit编辑器编辑.vimrc配置文件
 +
</syntaxhighlight>
 +
在.vimrc中加入如下内容:
 +
<syntaxhighlight lang="c" >
 +
"关闭兼容功能
 +
set nocompatible
 +
"显示行号
 +
set number
 +
"编辑时 backspace 键设置为2个空格
 +
set backspace=2
 +
"编辑时 tab 键设置为4个空格
 +
set tabstop=4
 +
"设置自动对齐为4个空格
 +
set shiftwidth=4
 +
"搜索时不区分大小写
 +
set ignorecase
 +
"搜索时高亮显示
 +
set hlsearch
 +
</syntaxhighlight>
 +
保存,退出。
 +
 
 +
=vi编辑器3:vi编辑器的三种模式__模式间相互切换 =
 +
 
 +
vi编辑器有三种模式,各个模式侧重点不一样。
 +
 
 +
#'''一般模式'''(光标移动、复制、粘贴、删除)
 +
#'''编辑模式'''(编辑文本)
 +
#'''命令行模式'''(查找和替换)
 +
 
 +
[[File:chapter4_lesson3_001.png|800px]]
 +
 
 +
操作演示见视频。
 +
 
 +
'''注意:'''
 +
 
 +
# 当不知道处于何种模式时,按ESC键返回到一般模式。
 +
# ccwq(write quit)
 +
# i(insert)
 +
 
 +
=vi编辑器4:文件的打开_新建_保存=
 +
 
 +
'''1.打开文件、新建文件、保存文件'''
 +
 
 +
<syntaxhighlight lang="c" >
 +
vi 文件名
 +
</syntaxhighlight>
 +
* 如果文件存在,输入结束后,<code>:wq</code>保存并退出文件
 +
* 如果文件不存在,输入结束后,<code>:wq</code>就可以新建并保存文件
 +
 +
在编辑完成时,返回一般模式,
 +
* 输入<code>:w</code>则保存文件,如果已经保存文件,输入<code>:q</code>则退出文件
 +
* 直接输入<code>:wq</code>保存并退出
 +
* 如果不想保存被修改的内容,则<code>:q!</code>强制退出。
 +
 
 +
 
 +
'''2.进入编辑模式'''
 +
 
 +
在一般模式输入:
 +
 
 +
<code>i</code>(在光标前开始插入文本)
 +
 
 +
<code>a</code>(在光标后开始插入文本)
 +
 
 +
<code>o</code>(在当前行之下新开一行,并到行首)
 +
 
 +
=vi编辑器5:如何使vi快速移动光标__vi的难点 =
 +
 
 +
'''3.光标移动'''
 +
在一般模式下,hjkl这四个按键就可以移动光标
 +
h (左)
 +
j (下)
 +
k (上)
 +
l (右)
 +
 
 +
1)快速的'''定位到某一行''':
 +
 
 +
*文件头、文件尾、指定某一行
 +
 
 +
ngg  //光标移至第n行的行首(n为数字,想要跳转的行),
 +
1gg  //就跳到第一行的行首,就是文件头
 +
2gg  //就跳到第二行的行首
 +
G   //转至文件结尾
 +
 
 +
注意:ngg和G是在一般模式
 +
 
 +
2)在某一行如何快速'''定位到某一列''':
 +
 
 +
0  //(数字零)光标移至当前行行首
 +
$  //光标移至当前行行末
 +
fx //搜索当前行中下一个出现字母x的地方
 +
 
 +
注意:0、$、fx是在一般模式
 +
 
 +
vi的难点:
 +
 
 +
vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。
 +
当你不知道处于何种模式时,使用esc键返回到一般模式。
 +
再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。
 +
 
 +
=vi编辑器6:文本复制_粘贴_删除_撤销__百问网独家记忆方法 =
 +
'''4.文本复制、粘贴、删除、撤销'''
 +
*复制
 +
yy  //复制当前行(y:yank(复制)) 
 +
nyy  //复制当前行及其后的n*1行(n是数字)
 +
 
 +
*粘贴
 +
 
 +
p   //粘贴(p:paste)
 +
 
 +
*删除
 +
 
 +
dd  //删除光标所在行(d:delete)
 +
ndd  //删除当前行及其后的n*1行(n是数字)
 +
x   //删除光标所在位置的字符
 +
 
 +
*撤销
 +
 
 +
u   //撤销上一步操作
 +
 
 +
注意:
 +
yy/nyy/dd/ndd/x/u都是在一般模式。
 +
 
 +
操作演示见视频。
 +
=vi编辑器7:文本查找和替换__百问网独家记忆方法  =
 +
 
 +
'''5.查找和替换'''
 +
*查找
 +
/pattern  //从光标开始处向文件尾搜索pattern,后按下n或N
 +
 
 +
注意:
 +
n在同一个方向重复上一次搜索命令
 +
N在反方向重复上一次搜索命令
 +
n(N)来源于next
 +
 
 +
注意:
 +
在/pattern之前先跳到第一行则进行全文件搜索。
 +
 
 +
* 替换
 +
:%s/p1/p2/g  //将文件中所有的p1均用p2替换
 +
:%s/p1/p2/gc  //替换时需要确认
 +
 
 +
s :substitute替换
 +
g :global全局
 +
c :confirm确认
 +
操作演示见视频。
 +
 
 +
= vi编辑器8:vi难点回顾__实例演示2 =
 +
 
 +
'''vi的难点:'''
 +
 
 +
1)vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。
 +
2) 当你不知道处于何种模式时,使用esc键返回到一般模式。
 +
3) 再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。
 +
 
 +
'''vi编辑器有三种模式及各模式常用操作'''
 +
 
 +
1)一般模式(光标移动、复制、粘贴、删除、撤销)
 +
<syntaxhighlight lang="c" >
 +
  hjkl、ngg/G、0、$、fx
 +
  yy/nyy
 +
  p
 +
  dd/ndd、x
 +
  u
 +
</syntaxhighlight>
 +
 
 +
2)编辑模式(编辑文本)
 +
 
 +
i  a o
 +
 
 +
3)命令行模式(查找和替换、保存退出文件)
 +
<syntaxhighlight lang="c" >
 +
/pattern、:%s/p1/p2/gc、:wq
 +
</syntaxhighlight> 
 +
 
 +
'''举例:'''
 +
 
 +
# 用vi 新建一个文件test2.txt,然后输入”welaome to the world of vi.”,并保存。
 +
# 由于拼写错误,需要将其中的welaome中的a替换成c。
 +
# 在上步的基础上,复制第一行到第二行和第三行。
 +
#在上步的基础上,删除第三行的全部内容。
 +
# 在上步的基础上,搜索出现vi的地方。
 +
# 在上步的基础上,将字符串vi替换成vim。
 +
# 保存并退出。
 +
</div>
 +
操作演示见视频。
 +
='''《《所有章节目录》》'''=
 +
<categorytree mode=all background*color:white;">ARM裸机加强版</categorytree>
 
[[Category:ARM裸机加强版 ]]
 
[[Category:ARM裸机加强版 ]]

2018年5月24日 (四) 10:16的最新版本

vi编辑器1:一个编辑器具备的功能

一个编辑器(例如Windows中的记事本)具备的功能:

  1. 打开文件、新建文件、保存文件
  2. 光标移动
  3. 文本编辑
  4. (多行间|多列间)复制、粘贴、删除
  5. 查找和替换

vi编辑器2:vi编辑器的环境设置

为了更方便的使用vi编辑器,我们需要先对vi编辑器进行一些配置。打开虚拟机终端,输入以下命令:

cd  /etc/vim     //进入vi配置文件目录
cp  vimrc  ~/.vimrc //复制配置文件到我们自己的家目录(这样配置文件只会对我们自己有效,不会影响其它用户)
cd  ~         //进入到家目录
gedit  .vimrc    //使用gedit编辑器编辑.vimrc配置文件

在.vimrc中加入如下内容:

"关闭兼容功能
set nocompatible 
"显示行号
set number
"编辑时 backspace 键设置为2个空格
set backspace=2
"编辑时 tab 键设置为4个空格
set tabstop=4
"设置自动对齐为4个空格
set shiftwidth=4
"搜索时不区分大小写
set ignorecase
"搜索时高亮显示
set hlsearch

保存,退出。

vi编辑器3:vi编辑器的三种模式__模式间相互切换

vi编辑器有三种模式,各个模式侧重点不一样。

  1. 一般模式(光标移动、复制、粘贴、删除)
  2. 编辑模式(编辑文本)
  3. 命令行模式(查找和替换)

Chapter4 lesson3 001.png

操作演示见视频。

注意:

  1. 当不知道处于何种模式时,按ESC键返回到一般模式。
  2. ccwq(write quit)
  3. i(insert)

vi编辑器4:文件的打开_新建_保存

1.打开文件、新建文件、保存文件

vi 文件名
  • 如果文件存在,输入结束后,:wq保存并退出文件
  • 如果文件不存在,输入结束后,:wq就可以新建并保存文件

在编辑完成时,返回一般模式,

  • 输入:w则保存文件,如果已经保存文件,输入:q则退出文件
  • 直接输入:wq保存并退出
  • 如果不想保存被修改的内容,则:q!强制退出。


2.进入编辑模式

在一般模式输入:

i(在光标前开始插入文本)

a(在光标后开始插入文本)

o(在当前行之下新开一行,并到行首)

vi编辑器5:如何使vi快速移动光标__vi的难点

3.光标移动 在一般模式下,hjkl这四个按键就可以移动光标

h (左)
j (下)
k (上)
l (右)

1)快速的定位到某一行

  • 文件头、文件尾、指定某一行
ngg  //光标移至第n行的行首(n为数字,想要跳转的行),
1gg  //就跳到第一行的行首,就是文件头
2gg  //就跳到第二行的行首
G   //转至文件结尾

注意:ngg和G是在一般模式

2)在某一行如何快速定位到某一列

0  //(数字零)光标移至当前行行首
$  //光标移至当前行行末
fx //搜索当前行中下一个出现字母x的地方

注意:0、$、fx是在一般模式

vi的难点:

vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。 当你不知道处于何种模式时,使用esc键返回到一般模式。 再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。

vi编辑器6:文本复制_粘贴_删除_撤销__百问网独家记忆方法

4.文本复制、粘贴、删除、撤销

  • 复制
yy  //复制当前行(y:yank(复制))   
nyy  //复制当前行及其后的n*1行(n是数字)
  • 粘贴
p   //粘贴(p:paste)
  • 删除
dd  //删除光标所在行(d:delete)
ndd  //删除当前行及其后的n*1行(n是数字)
x   //删除光标所在位置的字符
  • 撤销
u   //撤销上一步操作

注意:

yy/nyy/dd/ndd/x/u都是在一般模式。

操作演示见视频。

vi编辑器7:文本查找和替换__百问网独家记忆方法

5.查找和替换

  • 查找
/pattern  //从光标开始处向文件尾搜索pattern,后按下n或N

注意:

n在同一个方向重复上一次搜索命令
N在反方向重复上一次搜索命令
n(N)来源于next

注意: 在/pattern之前先跳到第一行则进行全文件搜索。

  • 替换
:%s/p1/p2/g  //将文件中所有的p1均用p2替换
:%s/p1/p2/gc  //替换时需要确认
s :substitute替换
g :global全局
c :confirm确认

操作演示见视频。

vi编辑器8:vi难点回顾__实例演示2

vi的难点:

1)vi操作之前,先判断一下当前是哪一种模式,再看光标所在位置。 2) 当你不知道处于何种模式时,使用esc键返回到一般模式。 3) 再看光标,难点在于移动光标,可以做到快速切换到某一行某一列。

vi编辑器有三种模式及各模式常用操作

1)一般模式(光标移动、复制、粘贴、删除、撤销)

   hjklngg/G0、$、fx
   yy/nyy
   p
   dd/nddx
   u

2)编辑模式(编辑文本)

i  a o

3)命令行模式(查找和替换、保存退出文件)

/pattern:%s/p1/p2/gc:wq

举例:

  1. 用vi 新建一个文件test2.txt,然后输入”welaome to the world of vi.”,并保存。
  2. 由于拼写错误,需要将其中的welaome中的a替换成c。
  3. 在上步的基础上,复制第一行到第二行和第三行。
  4. 在上步的基础上,删除第三行的全部内容。
  5. 在上步的基础上,搜索出现vi的地方。
  6. 在上步的基础上,将字符串vi替换成vim。
  7. 保存并退出。

操作演示见视频。