linux学习之路之vim编辑器的使用

本章将介绍vim编辑器的使用

vim编辑器是vi编辑器的增强版

vim是一种全屏的编辑器,是一种模式化的编辑器,之所以称为模式化的编辑器,因为vim有多种模式。

接下来将介绍vim主要的三种模式:

编辑模式(也叫命令模式):在该模式下你可以完成字符串跳转,字符串删除,翻屏操作等操作

输入模式:在该模式下输入的任何字符都会保存在该文件中,作为文件的一部分

末行模式:在该模式下,可以实现字符串搜索,字符串替换等操作

vim编辑器的三种模式之间的相互转换

模式转换:

编辑模式-->输入模式

i:在当前光标所在字符的前面,转化成输入模式

a:在当前光标所在字符的后面,转换成输入模式

o:在当前光标所在行的下方,新建一行,并转换成输入模式

I:在当前光标所在行的行首,转换成输入模式

A:在当前光标所在行的行尾,转换成输入模式

O:在当前光标所在行的上方,新建一行,并转换成输入模式

输入模式-->编辑模式

按ESC键即可转换到编辑模式

编辑模式-->末行模式

在编辑模式下输入":"可进入末行模式

末行模式-->编辑模式

按ESC键即可转换成编辑模式

说明:输入模式和编辑模式不可以直接转换,需要通过编辑模式来转换

vim的使用用法(应用)

一、打开文件

vim [option] FILENAME

+#:打开文件时光标直接处于第#行的行首

#:打开文件时,光标直接处于最后一行的行首

+/PATTERN:打开文件时,光标定位到第一被PATTERN匹配到的行的行首

二、关闭文件

1、在末行模式下关闭文件

:q  退出

:wq 保存并退出,等同于:x的效果

:q!不保存并退出

:w  保存

:w! 强制保存

2、在编辑模式下退出文件

ZZ:保存并退出

三、光标的移动(在编辑模式下的操作)

1、逐字符移动

h:光标向左移动一个字符

l:光标向右移动一个字符

j:光标移动到下一行

k:光标移动到上一行

#h,#l,#j,#k 表示光标一次移动#次

2、以单词为单位来移动

w:跳到下一个单词的词首

e:跳到当前或下一个单词的词尾

b:跳到当前或前一个单词的词首

#w,#e,#b 表示光标一次移动#次

3、行内跳转

0:跳到行首,绝对行行首(就是某些行前面有空格,光标会跳到空格处,而不是该行的第一个非空字符处)

^:跳到第一个非空白字符行的行首

$:跳到行尾

4、行间跳转

#G:跳到至第#行

G:跳到最后一行

在末行模式下跳转,直接给出行号即可

5、翻屏操作

Ctrl+f:向下翻一屏

Ctrl+b:向上翻一屏

Ctrl+d:向下翻半屏

Ctrl+u:向上翻半屏

五、删除单个字符

x:删除光标所在处的单个字符

#x:删除光标所在处及向后的#个字符

六、删除命令d

d命令一般和跳转命令一起组合使用

#d跳转符:删除多个

dd:删除光标所在行

#dd:删除光标所在行及向下的一共#行

说明:使用d命令删除文件并没有实际删除,而是保存在内存缓存区中 。

末行模式下的删除命令:

START,ENDd:删除起始行到结束行

.:表示当前行

$:表示最后一行

+#:表示删除该行及向下的#行(共#+1行)

$-1:倒数第二行

七、粘贴命令

p(小写):如果删除的或复制为整行,则粘贴至光标所在行的下方;如果删除或复制是非整行,则粘贴

至光标所在字符的后面

P(大写):如果删除的或复制为整行,则粘贴至光标所在行的上方;如果删除或复制是非整行,则粘贴

至光标所在字符的前面

八、复制命令y

复制p命令和删除d命令语法使用一样,只不过一个是原来复制,一个原来删除的

九、修改字符:先删除内容,在转换成输入模式

c命令和d命令的语法使用一样

十、字符替换

r:字符替换

R:进入替换模式,在该模式下可以一次进行多个字符的替换

十一、撤销编辑操作

u:撤销前一次编辑操作

连续使用u命令可以撤销此前的n次操作

#u:直接撤销最近#次操作

撤销最近一次的撤销操作(还原最近一次的撤销操作)

Ctrl+r

十二、重复前一次编辑操作

.:重复前一次编辑操作

十三、可视化模式

v:按字符选取

V:按行选取

十四、查找

:/PATTERN 向后操作

:?PATTERN 向前查找

n:正向查找

N:逆向查找

十五、查找并替换

在末行模式下使用s命令

START,ENDs/PATTERN/string/g  全局替换

%:表示全文

十六、使用vim编辑多个文件

vim FILE1 FILE2...

:next 切换到下一个文件

:prev 切换到上一个文件

:last 切换到最后一个文件

:first 切换到第一个文件

qa:退出全部文件

十七、分屏显示一个文件

Ctrl+w,s  水平拆分窗口

Ctrl+w,v   垂直拆分窗口

在窗口切换光标

Ctrl+w,上下左右键

:qa 退出所有窗口

十八、分窗口显示多个文件

vim -o FILE1 FILE2..    水平分割显示

vim -O FILE1 FILE2..    垂直分割显示

十九、将当前文件中的部分内容另存为另一个文件

:START,ENDw /path.to.somefile

二十、将另一个文件中的内容填充在当前文件中(以附件的形式添加)

:r /path/to/somefile

二十一、跟shell交互

:!COMMAND  可以再不退出文件的情况下,使用shell命令

二十二、高级应用(末行模式下的操作)

1、显示或取消显示行号

:set number

:set nu(简写) 显示行号

:set nonu   取消显示行号

2、设定vim编辑器忽略或区分大小写

:set ignorecase

:set ic  忽略大小写

:set noic 区分大小写

3、自动缩进

:set autoinddent

:set ai 自动缩进

:set noai 取消自动缩进

4、查找到的文本高亮显示或取消高亮显示

:set hlsearch  高亮显示

:set nohlsearch 取消高亮显示

5、语法高亮显示

:syntax on 开启语法高亮显示

:syntax off 关闭语法高亮显示

如果想让这些命令在永久生效,必须写到vim的配置文件中

vim的配置文件分2种:

全局配置文件:/etc/vimrc  对所有用户生效

个人配置文件:~/.vimrc    仅对指定用户生效

linux学习之路之vim编辑器的使用,布布扣,bubuko.com

时间: 2024-07-30 20:24:17

linux学习之路之vim编辑器的使用的相关文章

linux学习笔记六(vim编辑器)

前言:vim编辑器是一个很强的编辑器,一定要学会灵活的运用才能够事半功倍的效果. 内容: 1.vim编辑器的简单说明. vi: Visual Interface vim: VI iMproved 全屏编辑器,模式化编辑器 2.打开文件  # vim /path/to/somefile  vim +# :打开文件,并定位于第#行   vim +:打开文件,定位至最后一行  vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首 3.关闭文件   首先要进入到末行模式

linux学习笔记--vi与vim编辑器

vi编辑器全名为Visual Interface,即为可视化接口,类似于Windows中的记事本 vim相当于是vi的一个升级版本,包含vi的一切操作命令,vim相对于vi做了哪些提升: 1.vim支持多级撤销 2.vim可以跨平台运行 3.vim支持语法高亮显示 4.vim支持图形界面 vim编辑器的操作模式: 命令模式.输入模式.底行模式(也可以归类到命令模式中) vim常用命令: vim abc:打开abc文件,如果没有就创建 vim + abc:进入abc文件后就将光标定位到最后一行,默

linux学习之路之sed命令使用

本章主要介绍sed的命令使用 sed(Stream Editor)是一种流编辑器,或者叫做行编辑器,以行为单位进行编辑处理,而后续会介绍的vi编辑器是一种全屏编辑器. sed的工作原理: 逐行读取文件中的每一行,并将其放在内存空间中,在对内存空间中的数据进行处理,将处理后的结果打印到屏幕上.而这种内存空间也叫做模式空间. 所谓模式空间:就是将放在内存空间的数据根据模式来匹配,匹配成功的数据进行相应的编辑处理,将处理后的数据打印到屏幕上去. 说明:sed命令默认将文件中所有的行打印到屏幕上去. s

linux学习之路之sudo详解

sudo详解 之前介绍过su的使用,su就是switch user,从一个用户切换到另一个用户 那么sudo是什么东东呢? sudo:就是让某个用户能够以另外任意一个用户的身份通过某些主机执行某些任务.记住了,是以另外 一个身份来执行命令,而不是切换到另一个用户上去哦! 但是要想让某个用户能够使用sudo来执行命令的话,必须要在sudo的配置文件定义才可以,只有在 /etc/sudoers中定义过的用户才可以执行相应的命令,这些命令也必须要在sudo的配置文件/etc/sudoers中定义才可以

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

linux学习之路之LVM的快照功能

我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照. 所谓系统快照就是将某一时刻文件系统中的信息记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里.而其他没有改变的数据,快照区和文件系统共享.所以刚建立快照时快照区内容和文件系统的内容一样. 由于我们知道只有改变的数据才会移动到快照区,因此快照区中保存的内容比较少. 快照区的原理图如下: 那么如何建立快照区呢? 使用lvcreate -s命令来创建快

linux学习之路之磁盘管理和文件系统三

ext3文件系统和ext2文件系统的区别? 在某些时候,某个用户在linux系统上写入数据,这时系统正好断电或者系统核心出现错误,写入的数据仅有inode table和datablock而已,可能会导致之前写过的数据没有保存在磁盘上.而当系统重启后,系统可能会对没有保存的数据进行数据恢复.但是,由于系统并不知道是哪个文件不完整,因此会遍历整个文件系统中inode,来查看block是否完整.不过,当某个文件的数据太大时,数据的恢复时间可能会比较长,而这对于服务器来说是不利的.所以在这种情况下,也就

linux学习之路之文本的查找---find命令的使用

文本的查找可以使用两种方式来实现,即使用locate命令来查找和find命令来查找 那么这两种方式有什么区别呢? locate:是一种非实时查找,所谓非实时查找就是查找的不够实际,不够精确.因为locate查找是在 系统文件数据库中进行的,而数据库默认是一天更新一次,也就是说你查找的文件再数据库 更新之前查找的话,有可能找不到文件,因为那时数据库还没有去读取硬盘上的文件,所以 有些文件没有写入到数据库中. 可以收到更新数据库,使用命令updatedb 因为不上在硬盘上读取,因此速度快 locat

linux学习之路之目录管理和文件管理

我们知道linux文件系统是一个树型结构,在最上层是'/'目录,根目录的下面就是其他目录,而这些目录下面又可以有多个子目录,这样一层一层的就形成一个树型结构图.那是不是我们查找某一个文件必须要从根目录开始往下查找的呢?当然不是,在这里我将会介绍两种路径方式:相对路径和绝对路径. 什么是相对路径和绝对路径? 绝对路径:就是从'/'根目录开始往下一级一级的查找,直到目的所经过的线路. 相对路径:就是相对当前位置而言来找到目的地所经过的线路. 目录的创建 mkdir:用于创建目录 语法格式:mkdir