嵌入式学习笔记(五) --vi编辑器

笔者已经基本了解了通过Linux命令对文件和目录的相关操作,可要对文件进行编辑,还得用到VI编辑器。熟悉VI编辑器的使用对今后的开发十分重要!!

vi是Linux中最基本的编辑器。但vi编辑器在系统管理、服务器配置工作中永远都是无可替代的。

 

目标:

  • 熟悉vi的三种模式及模式切换命令
  • 熟练使用vi的拷贝、剪切和粘贴命令
  • 熟练使用vi的保存和退出命令
  • 熟练使用vi的光标命令
  • 熟练使用vi的查找命令
  • 熟练使用vi的替换命令

 

 

 

一、vi有以下三种模式

命令行模式    用户在用vi编辑文件时,最初进入的为该模式。可以进行复制、粘贴等操作。

插入模式    进行文件编辑,按ESC键可以回到命令行模式。

底行模式    光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号等 

 

 

 

二、如何进入/保存退出vi编辑器以及模式之间是如何切换的?

 

 

 

进入vi编辑器:如果我们想要对一文件进行编辑修改,进入这个文件目录,在命令终端输入 vi [文件名]  即可

模式转换:如果在插入模式下,按ESC键可以回到命令行模式;在命令行模式下,按下 i 键 进入插入模式;底行模式在编辑器窗口最下方,按下 : 定位光标到底行。

其中命令行模式,这个模式下用户不能对文件内容进行修改。

保存和退出vi编辑器:通过底行模式,进行。相关命令如下

:q     (Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效)
:q!     强制退出,且不保存修改过的部分
:w     (Write)保存文件,但不退出
:x      (Exit)保存文件并退出
:w      File 另存为File给出的文件名,不退出
:r      File (Read)读入File指定的文件内容插入到光标位置

 

三、常用命令

正常来说,进到插入模式后,就可以对文件内容进行改动了,就打字一样方便。但因为在终端模式下,我们需要一些命令来代替鼠标完成一些比如复制粘贴的功能。

vi拷贝与粘贴命令(命令行模式下)

[N]x       (Expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区)
[N]dd       (Delete)删除从光标位置开始的连续N行(并复制到编辑缓冲区)
[N]yy       (Yank)复制从光标位置开始的连续N行到编辑缓冲区
p或P      (Put)从编辑缓冲区复制文本到当前光标位置(即粘贴)

u       (Undo)取消上一次操作(即恢复功能)

y0-将光标至行首的字符拷入剪贴板
y$-将光标至行尾的字符拷入剪贴板
d0-将光标至行首的字符剪切入剪贴板
d$-将光标至行尾的字符剪切入剪贴板
range y-块复制

range d-块剪切

 

vi光标命令(命令行模式下)

h  方向键,向左移动光标一个字符的位置,相当于键“←”
j  方向键,向下移动光标到下一行的位置,相当于键“↓”
k  方向键,向上移动光标到上一行的位置,相当于键“↑”
l  方向键,向右移动光标一个字符的位置,相当于键“→”
:N  移动光标到第N行(N待定)
1G  移动光标到文件的第1行
G  移动光标到文件的最后1行
:set number  设置显示行号
:set nonumber  取消显示行号



 

vi的查找命令(命令行模式下)

/string 查找字符串 
n 继续查找 
N 反向继续查找 

支持正则表达式比如:/^the        /end$

 

vi的替换命令(命令行模式下)

利用:s 命令可以实现字符串的替换。

:s/str1/str2/
:s/str1/str2/g
:.,$ s/str1/str2/g   g全部替换(默认换第1个)
:1,$ s/str1/str2/g

:%s/str1/str2/g

其中,

: 与 s之间的部分表示替换范围,N1,N2以行为单位;

str1表示原字符串,str2是你想要替换的新字符串

g表示全文替换,否者默认替换每行的头一个str1

 

四、总结:

vi编辑器是嵌入式Linux环境下开发人员每天工作都要使用的工具,因此,建议尽可能多的学习、熟练关于vi编辑器使用的命令。

 

 

 

相关链接

嵌入式学习笔记(一)  --Ubuntu开发环境搭建 :https://blog.csdn.net/feit2417/article/details/80738940

嵌入式学习笔记(二) --Ubuntu上配置vim编辑器和共享文件 : https://blog.csdn.net/feit2417/article/details/80738940

嵌入式学习笔记(三) --Linux文件系统: https://blog.csdn.net/feit2417/article/details/80738940

嵌入式学习笔记(四) --Linux文件和目录相关命令: https://blog.csdn.net/feit2417/article/details/80753329

嵌入式学习笔记(五) --vi编辑器: https://blog.csdn.net/feit2417/article/details/80759402

嵌入式学习笔记(六) --程序的编译和执行: https://blog.csdn.net/feit2417/article/details/80765177

 

你可能感兴趣的:(Lunix,编程及应用)