首页 > 代码库 > LINUX初学之文本编辑器(vi ,vim)

LINUX初学之文本编辑器(vi ,vim)

  Linux 系统的哲学思想是一切皆文件,我们平常需要往文件填充内容时经常用到文本编辑器在之前我们便学习过 nano 编辑器,但 nano 编辑器功能较单一,不适合进行复杂操作,本篇将主要学习功能更为强大的 VI 和 VIM 文本编辑器。VI和VIM编辑器又被称为模式化编辑器,通常在几个模式下进行一系列的操作。VI/VIM大致有编辑模式(命令模式),末行模式,插入模式(输入模式),替换模式和可视化模式几种。下面将介绍具体操作:

  ⑴ VI/VIM的打开方式:①打开VI/VIM的界面;

                      ②VI/VIM FILE: file存在则打开该文件并将光标放置在第一行的第一个字符;文件若不存在以新文件的方式打开若保存文件被创建,不保存文件消失

                      ③VI/VIM +#FILE:指定在打开文件的时候讲光标定位在第#行行首,如果定位的行数比整个文档的行还要大,则直接将光标定位在最后一行的行首

                      ④VI/VIM + FILE:直接将光标定位在文档的最后一行行首;

                      ⑤VI/VIM +/PATTERN/:打开文件,并且将光标定位至首次被PATTERN匹配的行的行首位置;即只完成首次匹配。

    ⑵ VI/VIM的关闭方式:

末行模式的关闭:

:q 直接关闭vim编辑器,不保存修改内容;

:q! 强制退出但不予保存;

:w 保存修改的内容;

:wq 保存修改的内容并关闭vim编辑器;

:wq! 对于root用户来说,一些只读文件的修改可以强制保存并退出;

:w! 强制保存

编辑模式的关闭:

ZZ:保存并退出;

ZQ:不保存退出;

  ⑶ 在vim的编辑模式中,移动光标:

        ①逐字符移动

1)ARROW

2)h:光标向左;

  j:光标向下;

  k:光标向上;

  l:光标向右;

 ②逐字移动

w:移动到下一个字的字首;

e:移动到下一个字的字尾;

b:移动到上一个字的字首;

 ③行内跳转:

0:绝对行首;

^:相对行首;

$:绝对行尾;

 ④行间跳转:

#G:直接将光标移动至第#行;

G:直接将光标移动至文档的最后一行;

gg:直接将光标移动至第一行;

    

    ⑤末行模式中光标移动:

:# 直接将光标移动至第#行;

:1 直接将光标移动至第一行;

:$ 直接将光标移动至文档的最后一行;


  ⑷ 翻屏

Ctrl+f:向下翻一屏

Ctrl+b:向上翻一屏

Ctrl+d:向下翻半屏

Ctrl+u:向上翻半屏


  ⑸ 逐字符删除:

x:删除光标所在位置的单个字符;

X:删除光标所在位置左侧的单个字符;


  ⑹ 编辑模式中的万能删除命令;

d:删除光标经过的所有内容;

dh、dj、dk、dl、dARROW、dw、de、db、dG、dgg

dd:删除光标所在行;

在末行模式下:

:d:删除光标所在行

:#d:删除第#行

:m,+nd:删除从第m行开始,再经过n行的所有行;

:m,nd:删除从第m行开始到第n行结束的所有行;

:.,$d:删除从光标所在行到文档的最后一行;

.:表示当前光标所在行;

$:文档的最后一行


  ⑺ 编辑模式中的万能粘贴命令:

p(lower):向右向下进行粘贴;

P(upper):向左向上进行粘贴;

末行模式下:

p


  ⑻ 编辑模式中的万能复制命令:

y:复制光标经过的所有内容;

用法与d命令相同。

yy:复制光标所在行;


   ⑼ 模式的切换:

1.从编辑模式到末行模式:

: 输入命令

/和? 进行查找,n和N,n表示顺序查找,N表示逆序查找;

/:自上而下

?:自下而上

2.从末行模式到编辑模式:

ESC键

Enter键

Backspace键

3.从编辑模式到输入模式:

I:将光标移动至行首并进入输入模式;

i:在光标所在位置的前面插入字符;

A:将光标移动至行尾并进入输入模式;

a:在光标所在位置的后面插入字符;

O:在光标所在行的上面插入新行;

o:在光标所在行的下面插入新行;

cc:删除整行内容之后,进入输入模式;

C:从光标所在位置删除至行尾,进入输入模式;

s:删除光标所在位置的一个字符,进入输入模式;

S:删除整行内容之后,进入输入模式;

4.从输入模式到编辑模式:

ESC键

5.从编辑模式到替换模式:

R:进入替换模式

6.从替换模式到编辑模式:

ESC键

7.从编辑模式到可视化模式:

v:按照字符为单位进行矩形选取;

V:按照行为单位进行矩形选取;

在选择之后可以执行复制或删除的操作;

只要完成操作,就返回到编辑模式;


注意:所有的模式切换必须经由编辑模式,两种非编辑模式之间无法直接进行切换;


  ⑽ 替换命令

r:替换光标所在位置的一个字符;

  ⑾ 撤销编辑操作:

u:撤销一次此前的编辑操作;

Ctrl+r:撤销最近的一次撤销操作;

  ⑿ 重复之前的一次编辑操作:.

  ⒀ 特殊的末行命令:

1.显示和取消行编号:

:set number --> :set nu

:set nonumber --> :set nonu

2.开启或关闭字符大小写的区分:

:set ignorecase --> :set ic

:set noignorecase --> :set noic

3.开启或关闭自动缩进功能:

:set autoindent --> :set ai

:set noautoindent --> :set noai

4.开启或关闭查找高亮显示:

:set hlsearch

:set nohlsearch --> :nohl

5.开启和关闭语法着色:

:syntax on

:syntax off

    ⒁使用vim编辑多个文件

1) vim FILE1 FILE2 FILE3 ...

:next  查看或编辑后一个文档的内容

:prev  查看或编辑前一个文档的内容

:first 查看或编辑第一个文档的内容

:last  查看或编辑最后一个文档的内容

       2) vim -o|-O FILE1 FILE2 FILE3 ...

-o:水平分屏显示多个文件

-O:垂直分屏显示多个文件

                Ctrl+w, ARROW

#Ctrl+w, ARROW

                Ctrl+w, s  将一个文件水平分屏显示

Ctrl+w, v  将一个文件垂直分屏显示

    ⒂将其他文件中的内容填充至当前文件中

:r /PATH/TO/SOMEFILE


  

LINUX初学之文本编辑器(vi ,vim)