首页 > 系统相关 >Linux学习DAY5-vim程序编辑器

Linux学习DAY5-vim程序编辑器

时间:2024-06-18 16:27:49浏览次数:14  
标签:档案 vi DAY5 模式 vim set Linux 光标

一、vi与vim

注:在Linux的系统中使用文本编辑器来编辑Linux参数配置文件

在Linux中,绝大多数的配置文件都是以ASCII的纯文本形态存在。因此,可以利用简单的文本编辑软件修改设定。

注:什么是纯文本文档?

档案记录的是0与1,通过编码系统来将这些0与1转化为文字。

学习vim的原因:

        ·vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计

        ·程序简单,编辑速度快

        ·多个软件的编辑接口都会主动呼叫vi

什么是vim:

        vi的进阶版本,vim可以用颜色或底线等方式显示一些特殊信息。

        vim会依据档案的扩展名或是开头信息,判断该档案的内容而自动的呼叫该程序的语法判断式,再以颜色来显示程序代码与一般信息。

        vim是个程序编辑器。

        vi是老式的字处理器。vim是程序开发工具而不是文字处理软件。

二、vi的使用

vi共分为三种模式【一般模式】【编辑模式】【指令列命令模式】

        ·一般模式:以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用上下左右按键来移动光标,可以使用【删除字符】【删除整行】来处理档案内容,也可使用【复制、粘贴】处理文件数据

        ·编辑模式:按下【i、I、o、O、a、A、r、R】进入编辑模式,按下这些案件时,在画面的左下方会出现【INSERT】字样。要回到一般模式时,必须按下【Esc】键才可推出编辑模式

        ·指令列命令模式:在一般模式中 ,输入【:/?】三个中的任何一个按钮,可将光标移动到最底下一行。在命令行模式下,可以提供相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作。

1、简易执行范例

vi test.txt

输入【vi 档名】进入vi一般模式,vi后面一定要加档名,不管档名存在与否 。

按下【Esc】键回到一般模式

输入【:wq】存档离开(按下:光标就移动到最底下一行)

如果权限为-r--r--r--,可能会无法写入,输入【:wq!】强制写入

2、按键说明

注:vim的三种模式只有一般模式可以与编辑、指令列命令模式切换,编辑模式与命令模式之间不能切换

·第一部分:一般模式可用的按钮说明。

移动光标的方法
h或向左箭头光标向左移动一个字符
j或向下箭头光标向下移动一个字符
k或向上箭头光标向上移动一个字符
l或向右箭头光标向右移动一个字符
ctrl+f屏幕向下移动一页,相当于【page down】
ctrl+b屏幕向上移动一页,相当于【page up】
ctrl+d屏幕向下移动半页
ctrl屏幕向上移动半页
+光标移动到非空格符的下一列
-光标移动到非空格符的上一列
n【space】n代表数字,按下数字后再按空格键,光标会向右移动这一行的n个字符
0或【Home】移动到这一行的最前面字符处
$或【End】移动到这一行的最后面字符处
H

光标移动到这个屏幕的最上方那一行的第一个字符

M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个档案的最后一行
nGn为数字。移动到这个档案的第n行(可配合:set nu)
gg移动到这个档案的第一行
n【Enter】n为数字。光标向下移动n行
搜寻与取代
/word向光标之下寻找一个名为word的字符串
?word像光标之上寻找一个字符串名为word的字符串
nn为英文键。代表【重复前一个搜寻的动作】
NN为英文键。与n刚好相反,反向进行前一个搜寻动作
:n1,n2s/word1/word2/g

n1与n2为数字。在n1与n2之间寻找word1

这个字符串,并将该字符串取代为word2

:1,$s/word1/word2/g从第一行到最后一行寻找word1字符串,并将该字符串取代为word2
:1,$/word1/word2/gc从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,且在取代前显示提示字符给用户确认是否需要取代

删除、复制、粘贴
x,X在一行字当中,x为向后删除一个字符,X为向前删除一个字符
nxn为数字,连续向后删除n个字符。
dd删除游标所在的那一整列
nddn为数字,删除光标所在的向下n列
d1G删除光标所在第一行的所有数据

dG

删除光标所在以后
d$删除游标所在处,到该列的最后一个字符
d0数字为0的,删除游标所在处,到改行的最前面
yy复制游标所在的那一行
nyyn为数字,复制光标所在的向下n列
y1G复制光标所在列到第一列的所有数据
yG复制光标所在列到最后一列的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
P,pP为将已复制的数据在光标下一行粘贴上,p为贴在游标上一行
J将光标所在列与下一列的数据结合成同一列
c重复删除多个数据
u重复前一个动作
【ctrl】+r重做上一个动作
.重复前一个动作

·第二部分:一般模式切换到编辑模式的可用按键说明

进入插入或取代的编辑模式
i,I

进入插入模式:i为从目前光标所在处插入

I为在目前所在行的第一个非空格符处开始插入

a,A

进入插入模式:a为从目前光标所在的下一个字符处开始插入

A为从光标所在行的最后一个字符处开始插入

o,O

进入插入模式:o为在目前光标所在的下一行处插入新的一行

O为在目前光标所在处的上一行插入新的一行

r,R

进入取代模式:r只会取代光标所在的那一个字符一次

R会一直取代光标所在的文字,直到按下【Esc】为止

【Esc】退出编辑模式,回到一般模式中

 ·第三部分:一般模式切换到命令行模式

指令列的存储、离开等指令
:w将编辑的数据写入硬盘档案中
:w!若文件属性为【只读】时,强制写入该档案
:q离开vi
:q!若曾修改过档案,又不想存储,使用!强制离开不能存储档案
:wq存储后离开,若为:wq!强制储存后离开
ZZ大写的Z,若档案没有更动,则不存储离开,若档案已经被更动过,则存储后离开
:w【filename】将编辑的数据储存成另一个档案
:r【filename】在编辑的数据中,读入另一个档案的数据,将【filename】这个档案内容加到游标所在的行后
:n1,n2 w[filename]将n1到n2的内容存成filename这个档案
:!command暂时离开vi到指令列模式下执行command的显示结果
vim环境的变更
:set nu显示行号,设定之后,会在每一行的前缀显示改行的行号
:set nonu与set nu相反,取消行号

 vi中,数字通常代表重复做几次的意思,也可能代表去到第几个什么什么的意思

3、案例练习

1)在/tmp这个目录下建立一个名为test的目录

mkdir /tmp/test

2)进入test这个目录当中

cd /tmp/test

3)将/etc/man.config复制到本目录底下

cp /etc/man.config .

4)使用vi开启本目录下的man.config这个档案

vi man.config

5)在vi中设定一下行号

:set nu

6)修改完之后,突然反悔,要全部复原,有哪些方法

一直按【u】键回复到原始状态

使用不存储离开【:q!】之后,再重新读取一次该档案

三、vim的额外功能

1、区块选择

区块选择的按键意义
v字符选择,将光标经过的地方反白选择
V行选择,会将光标经过的地方反白选择
ctrl+v区块选择,可以用长方形的方式选择资料
y将反白的地方复制起来
d将反白的地方删除掉

2、多档案编辑

多档案编辑的按键
:n编辑下一个档案
:N编辑上一个大难
:files列出目前这个vim的开启的所有档案

3、多窗口功能

多窗口情况下按键功能
:sp[filename]开启一个新窗口,如果有加filename,表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)

【ctrl】+w+j

按键按法:先按下【ctrl】不放,再按下w后放开所有的键,然后再按下j(或向下箭头键),光标可移动到下方的窗口
【ctrl】+w+k同上
【ctrl】+w+q等价于:q结束离开

4、vim环境设定与记录

vim的环境设定参数

:set nu

:set nonu

设定于取消行号

:set hlsearch

:set nohlsearch

设定是否将搜寻的字符串反白

:set autoindent

:set noautoindent

是否自动缩排
:set backup是否自动存储备份档
:set ruler显示或者不显示该设定值
:set showmode是否要显示--INSERT--之类的字眼在左下角的状态栏
:set backspace=(012)一般按下i进入编辑模式后,可以利用【backspace】来删除任意字符。但是,某些情况不允许。当backspace为2时,可删除任意值。0或1,仅可删除刚刚输入的字符,无法删除原本已经存在的文字。
:set all显示目前所有的环境参数设定
:set显示于默认值不同的设定参数

:syntax on

:syntax off

是否依据程序相关语法显示不同的颜色。例:编辑纯文本文档时,如果以#开头,该行会变成蓝色。

:set bg=dark

:set bg=light

显示不同的颜色色调,预设是【light】

注:整体vim的设定值一般是放在/etc/vimrc档案 

四、vim使用注意事项--中文编码问题

中文档案中一堆乱码,需要考虑:

        终端界面的语系与LANG这个变数有关

        档案原本的编码

        开启终端机的软件

标签:档案,vi,DAY5,模式,vim,set,Linux,光标
From: https://blog.csdn.net/2302_81664454/article/details/139620789

相关文章

  • Linux 虚拟网络 VXLAN
    VXLANVXLAN本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发VXLAN已经成为当前构建数据中心的主流技术,是因为它能很好地满足数据中心里虚拟机动态迁移和多租户等需求。一、使用Containerlab模......
  • linux内存管理(十一)- 页面迁移
    这里有一篇很好的博客宋宝华:论Linux的页迁移(PageMigration)完整版-CSDN博客为什么需要页面迁移?试想系统在经过长时间运行,内存块趋于碎片化,想要分配一块大的连续内存已经不可能了。此时并非没有足够的内存,而只是内存碎片化。这个时候如果可以是已经分配的内存聚集在一起就可以得到......
  • 搭建PHP开发环境:Linux篇
    目录一、引言二、环境准备三、安装Web服务器(Apache)Ubuntu/Debian系统:CentOS/RedHat系统:四、安装PHP解释器Ubuntu/Debian系统:CentOS/RedHat系统:五、配置Apache以支持PHPUbuntu/Debian系统:CentOS/RedHat系统:六、安装和配置数据库(MySQL/MariaDB)Ubuntu/Debian系统:......
  • RK3568技术笔记九 编译Linux详细介绍
    在编译前需要按照前面的方法始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。全自动编译包含所有镜像编译,包括:uboot编译、Kernel编译、Recovey编译、文件系统编译、编译完成镜像的更新与打包。      按照前面的方法初始化编译环境后,还需要设置RK_ROOTFS_SYS......
  • linux下使用rpmbuild命令进行打包
    一、创建rpmbuild工作目录linux下,一般在用户家目录下新建rpmbuild目录作为rpmbuild工具的工作目录mkdir-p~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}各目录用途:BUILD编译rpm包的临时目录BUILDROOT编译后生成的软件临时安装目录RPMS最终生成的可安装rpm包......
  • linux内存管理(十)- 页面回收(二)
    本篇了解一下内核是怎样触发页面回收的。触发内存回收的方式有两种,同步和异步回收。alloc_pages在分配内存的时候,如果内存短缺会主动回收内存,这是同步回收;内核有一个或多个kswapd内核线程负责在后台回收内存,这是异步。 看一下shrink_active_liststaticvoidshrink_lruvec(st......
  • linux 配置java环境变量
    1.下载与安装查看操作系统位数uname-m如果输出是x86_64,那么你的系统是64位的;如果输出是i686或i386,那么你的系统是32位的。openJDK下载地址:清华大学开源软件镜像站以jdk11为例,下载地址为:https://mirror.tuna.tsinghua.edu.cn/Adoptium/11/jdk/x64/linux/OpenJDK11U-jdk_x......
  • Linux系统根分区满载清理
    问题说明这里我们在使用centos7.6系统时,遇到根分区满载的问题。进入根分区后,查找了所有的目录,并没有查到大的文件。这里怀疑是文件删除未释放导致。由于系统根分区满载,执行lsof|grepdelete查看对应的已删除的文件但未释放的文件进程时,命令会卡死。这里我们只能换种别的方法进行......
  • linux常用指令(不断更新中)
    1.ls展示路径下所有文件以及子目录2.cd进入对应目录。使用时可以输入前几个字符,点击TAB键,无需手动输入后续字符。3.vim打开文本文件进行编辑。输入i进入可编辑模式。按下esc退出当前模式。输入:wq保存并退出输入:q直接退出4.rz-be上传文件(压缩包)sz下载文件5.......
  • Linux创建回收站,防止误删文件 误删除文件恢复
    使用为Centos7创建回收站的方法,可以有效地防止误删文件,并对删除信息进行记录。实现:每个用户都可以使用回收站功能每个用户具有独立的回收站,用户删除的文件会移动到自己专属的回收站中,不会被未授权的用户看到。回收站内按照天建立文件夹,移入的文件添加时间后缀进行重命名,防止......