嵌入式系统及应用Linux学习笔记(二)—Linux开发环境之vim

Linux开发环境之vim

@wrote by iNBC form SDUT at 2020.5.19

文本编辑工具

文本编辑工具是用来编写源代码的应用程序。Linux上比较流行的文本编辑工具有VI、Gedit、VIM和Emacs,这几个应用程序在编辑源代码时有各自的优点。下面以VIM和Emacs为例讲解文本编辑工具的用法。

vim

vim简介

  • 现在版本的Linux系统中运行的vi实际是vim(Vi Improved),它在vi的基础上增加了很多新的特性和功能
  • vim编辑器不是一个格式化文本的程序,它不能调整版面,也不具有复杂的文字处理系统所具有的格式化输出功能

vim工作模式

  • vim编辑器没有菜单,只有命令
  • vim提供三种基本的工作方式来解决,分别是
    • 命令模式(Command Mode)
    • 插入模式(Insert Mode)
    • 末行模式(Last Line Mode)
  • 提醒:在输入vim的命令时,请注意区分大小写
    在这里插入图片描述

vim的进入与退出

进入vim

$vim
$vim filename
$vim +n filename
$vim +/pattern filename

退出vim

1、 命令模式下
- 在该模式下,连续按两下大写字母Z,
- 若当前文件被修改过,则vim保存该文件后退出,返回到shell;
- 若当前编辑的文件未被修改,则vim直接退出,返回到shell。

2、 末行模式下
(1)若当前文件被修改过,保存后退出

:w  <newfile>
:q

(2)如果当前编辑的内容保存到原文件退出,也可以使用如下命令:

:wq

(3)若当前文件被修改过,不保存退出到shell

:q!

(4)若当前文件没有被修改过,从vim退出返回到shell

:q

vim编辑命令

移动光标

(1) 按字符移动光标
在这里插入图片描述
(2)按字移动光标
在这里插入图片描述
(3)按句子和段移动光标
在这里插入图片描述
(4)按行移动光标
数字0,可将光标移动到当前行行首。
$键,将光标移到当前行行尾。
G键将光标移到文件最末行行首,若将光标移动到指定行,可使用:
[行号]G
(5)在屏幕内移动光标
H(Home)键将光标定位到屏幕顶部一行的最左端;
M(Middle)键将光标定位到屏幕的中间一行;
L(Lower)键将光标定位到屏幕底部的一行。
注意,这里的移动是指屏幕内,文件本身不发生滚动。

文本插入

(1) 插入命令(Insert)

  • i命令:从光标所在位置前插入文本;
  • I命令:将光标移动到当前行首开始插入文本。

(2)附加命令(Append)

  • a命令:从光标所在位置后开始追加文本;
  • A命令:首先将光标移到所在行的行尾,从行尾开始插入文本。

(3)打开命令(Open)

  • o命令:在当前行的下面打开一行;
  • O命令:在当前行的上面打开一行。

文本删除

  • 命令模式删除
    在这里插入图片描述

  • 末行模式删除

    • 在vim末行模式下可实现对文本指定行的删除
      • :行x,行y d
      • 该命令表示删除x至y行的文本内容。例如:
      • :1, 5 d
    • 对行号进行显示:
      • :set number

文本的复制与粘贴

(1)命令模式下的文本复制
yw:将光标所在位置到字尾的字符复制到缓冲区。
nyw:将从光标所在位置开始的n个字复制到缓冲区。
yy:将光标所在的行复制到缓冲区。
nyy:将光标所在的行开始连续n行复制到缓冲区。
p:将缓冲区的字符粘贴到光标所在位置。

(2) 末行模式下的文本复制
:行x,行y co 行z
即将文本x-y行的内容,复制到z行下。例如:
:1, 4 co 5
当前编辑的文件1-4行复制到5行下,即原来文件内容新增了4行。

文本移动

(1) 命令模式下文本移动

  • 使用文本删除命令将要移动的文本删除。
  • 使用光标移动命令将光标移动到目标位置。
  • 使用p命令将刚刚删除的文本粘贴在目标位置。

(2) 末行模式下文本移动
:行x,行y m 行z
该命令表示当前编辑的文件x-y行的文本内容移动到z行下。例如:
:1, 4 m 6
当前编辑的文本1-4行移动到6行下。

文本的查找与替换

(1) 命令模式下的文本查找与替换
  • 文本的查找

    • f 命令,在当前行查找指定字符,并将光标移到该字符的下一次出现的位置。
    • t 命令,将光标定位在指定字符下一次出现的前一个字符位置处。
    • /text,即斜杠(/)后加文本,然后按下Enter键,开始搜索(向下)字符串下一次出现的位置。
    • ?text,即问号(?)后加文本,然后按下Enter键,开始搜索(向上)字符串前一次出现的位置。
    • n,命令n在不必再输入搜索字符串的情况下,重复上一次搜索。
  • 文本的替换

    1)取代命令r和R
    - r<字符>,表示用随后输入的字符代替当前光标出的字符。

    2)替换命令s和S
    - s,表示用随后输入的文本替换当前光标所在的字符。
    - S,表示用新输入的文本替换光标当前行(整行),输入S命令后当前行被删除,工作模式切换到插入模式,等待输入替换文本,若想回到命令模式,一定要按Esc键。

    3)字替换命令cw和行替换命令cc/C

    • cw,表示将某个字的内容用其它字符串替换。
    • cc,表示将光标所在行整行字符用新输入文本替换,输入cc后,当前行被删除,工作模式被切换到插入模式,等待输入替换文本,若想回到命令模式,一定要按Esc键。
(2) 末行模式下的文本查找与替换
[g] [address] s/search-string/replacement-string[/option]

其中address表示查找的地址;s为替换命令;search-string表示查找的字符串;replacement-string表示用来替换匹配的search-string

在这里插入图片描述

重复与取消

(1)重复命令
在命令模式下按“.”键即可实现。
(2)取消命令
取消命令,也称为复原命令,它可以取消前一次的误操作。在命令模式下,使用u命令即可实现。

猜你喜欢

转载自blog.csdn.net/qq_40700822/article/details/106214648