linux vim的使用方法 linux最好用的系统

Linux:Vim编辑器使用命令及方法

Vim,这款强大的、高度定制的文本编辑器,因其在Vi的基础上的改进和扩展而备受推崇,它不仅是自由软件的代表,而且在竞争激烈的类Vi编辑器领域中与Emacs并驾齐驱。1999年Emacs曾被视为Linuxworld文本编辑器的赢家,而Vim在2000年的Slashdot Beanie大奖中夺魁,进一步巩固了其地位。

Vim的工作方式是基于三种模式:编辑模式、输入模式和末行模式。在编辑模式下,可以使用i、a、o等命令进行文本的插入和修改,转到输入模式则需通过输入ESC键。从编辑模式到末行模式,只需输入":",而从末行模式返回编辑模式则需要先到编辑模式再按ESC键。

打开和关闭Vim的方式多样,可以直接通过vim命令或指定文件路径打开,而关闭时,可以选择强制退出不保存(`:q!`)或保存并退出(`:wq`)。在实际操作中,我们还可以利用vim的六种插入数据命令,如i、a、o、O、I和A,以及更多其他功能指令,进行高效编辑。

对于初学者,vim还提供了内置的教程vimtutor,输入命令后,会根据你的Linux环境显示中文或英文帮助,进行编辑技巧的练习和学习。

如何在linux中vi使用方法

vi的工作模式

Vi在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。

这些按键均是普通的字符,例如 l是向右移动光标,相当于向右箭头键,k是向下移动光标,相当于向下箭头键。

在编辑模式下,用户还可以利用一些特殊按键选定文字,然后再进行删除、或复制等操作。

当用户在编辑模式下键入 i, a, o等命令之后,可进入插入模式;键入:可进入命名模式。

在插入模式下,用户随后输入的,除 Esc之外的任何字符均将被看成是插入到编辑缓冲区中的字符。

按 Esc之后,从插入模式切换到编辑模式。

在命令模式,Vi将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个:(冒号)。

这时,用户就可以键入一些命令。

这些命令可用来保存文件、读取文件内容、执行 Shell命令、设置 Vi参数、以正则表达式的方式查找字符串或替换字符串等。

编辑模式

1.移动光标

要对正文内容进行修改,首先必须把光标移动到指定位置。

移动光标的最简单的方式是按键盘的上、下、左、

右箭头键。

除了这种最原始的方法之外,用户还可以利用 vi提供的众多字符组合键,在正文中移动光标,迅

速到达指定的行或列,实现定位。

例如:

k、j、h、l功能分别等同于上、下、左、右箭头键

Ctrl+b在文件中向上移动一页(相当于 PageUp键)

Ctrl+f在文件中向下移动一页(相当于 PageDown键)

H将光标移到屏幕的最上行(Highest)

nH将光标移到屏幕的第 n行

2H将光标移到屏幕的第 2行

M将光标移到屏幕的中间(Middle)

L将光标移到屏幕的最下行(Lowest)

nL将光标移到屏幕的倒数第 n行

3L将光标移到屏幕的倒数第 3行

w在指定行内右移光标,到下一个字的开头

e在指定行内右移光标,到一个字的末尾

b在指定行内左移光标,到前一个字的开头

0数字0,左移光标,到本行的开头

$右移光标,到本行的末尾

^移动光标,到本行的第一个非空字符

2.替换和删除

将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多

个字符。

例如:

rc用 c替换光标所指向的当前字符

nrc用 c替换光标所指向的前 n个字符

5rc用 c替换光标所指向的前 5个字符

x删除光标所指向的当前字符

nx删除光标所指向的前 n个字符

3x删除光标所指向的前 3个字符

dw删除光标右侧的字

ndw删除光标右侧的 n个字

3dw删除光标右侧的 3个字

db删除光标左侧的字

ndb删除光标左侧的 n个字

5db删除光标左侧的 5个字

dd删除光标所在行,并去除空隙

ndd删除 n行内容,并去除空隙

3dd删除 3行内容,并去除空隙

3.粘贴和复制

从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。

用户可

将其粘贴到正文中的指定位置。

完成这一操作的命令是:

p小写字母 p,将缓冲区的内容粘贴到光标的后面

P大写字母 P,将缓冲区的内容粘贴到光标的前面

如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前

光标所在行的上一行或下一行。

注意上述两个命令中字母的大小写。

vi编辑器经常以一对大、小写字母(如 p和 P)来提供一对相似的功能

通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。

有时需要复制一段正文到新位置,同时保留原有位置的内容。

这种情况下,首先应当把指定内容复制(而不是

剪切)到内存缓冲区。

完成这一操作的命令是:

yy复制当前行到内存缓冲区

nyy复制 n行内容到内存缓冲区

5yy复制 5行内容到内存缓冲区

4.搜索字符串

和许多先进的编辑器一样,vi提供了强大的字符串搜索功能。

要查找文件中指定字或短语出现的位置,可以

用 vi直接进行搜索,而不必以手工方式进行。

搜索方法是:键入字符/,后面跟以要搜索的字符串,然后

按回车键。

编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的

开头;键入 n命令可以继续执行搜索,找出这一字符串下次出现的位置。

用字符?取代/,可以实现反向

搜索(朝文件开头方向)。

例如:

/str1正向搜索字符串 str1

n继续搜索,找出 str1字符串下次出现的位置

?str2反向搜索字符串 str2

无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。

5.撤销和重复

在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。

另外,如果用户希望在新

的光标位置重复前面执行过的编辑命令,可用重复命令。

u撤消前一条命令的结果

.重复最后一条修改正文的命令

6.文本选中

vi可进入到一种成为 Visual的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再执行其他编辑操作,例如删除、复制等。

v字符选中命令 V行选中命令

插入模式

1.进入插入模式

在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:

i在光标左侧输入正文

a在光标右侧输入正文

o在光标所在行的下一行增添新行

O在光标所在行的上一行增添新行

I在光标所在行的开头输入正文

A在光标所在行的末尾输入正文

上面介绍了几种切换到插入模式的简单方法。

另外还有一些命令,它们允许在进入插入模式之前首先删去一段

正文,从而实现正文的替换。

这些命令包括:

s用输入的正文替换光标所指向的字符

ns用输入的正文替换光标右侧 n个字符

cw用输入的正文替换光标右侧的字

ncw用输入的正文替换光标右侧的 n个字

cb用输入的正文替换光标左侧的字

ncb用输入的正文替换光标左侧的 n个字

cd用输入的正文替换光标的所在行

ncd用输入的正文替换光标下面的 n行

c$用输入的正文替换从光标开始到本行末尾的所有字符

c0用输入的正文替换从本行开头到光标的所有字符

2.退出插入模式

退出插入模式的方法是,按 ESC键或组合键Ctrl+[。

1.6.4命令模式

在 vi的命令模式下,可以使用复杂的命令。

在编辑模式下键入“:”,光标就跳到屏幕最后一行,并在那里显示冒号,此时已进入命令模式。

命令模式又称“末行模式”,用户输入的内容均显示在屏幕的最后一行,按回车键,vi执行命令。

1.退出命令

在编辑模式下可以用 ZZ命令退出 vi编辑程序,该命令保存对正文所作的修改,覆盖原始文件。

如果只需要

退出编辑程序,而不打算保存编辑的内容,可用下面的命令:

: q在未作修改的情况下退出

: q!放弃所有修改,退出编辑程序

2.行号与文件

编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:

: n将光标移到第 n行

命令模式下,可以规定命令操作的行号范围。

数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符

符“___FCKpd___8rdquo;表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5行。

例如:

:345将光标移到第 345行

:345w file将第 345行写入 file文件

:3,5w file将第 3行至第 5行写入 file文件

:1,.w file将第 1行至当前行写入 file文件

:.,$w file将当前行至最后一行写入 file文件

:.,.+5w file从当前行开始将 6行内容写入 file文件

:1,$w file将所有内容写入 file文件,相当于:w file命令

在命令模式下,允许从文件中读取正文,或将正文写入文件。

例如:

:w将编辑的内容写入原始文件,用来保存编辑的中间结果

:wq将编辑的内容写入原始文件并退出编辑程序(相当于 ZZ命令)

:w file将编辑的内容写入 file文件,保持原有文件的内容不变

:a,bw file将第 a行至第 b行的内容写入 file文件

:r file读取 file文件的内容,插入当前光标所在行的后面

:e file编辑新文件 file代替原有内容

:f file将当前文件重命名为 file

:f打印当前文件名称和状态,如文件的行数、光标所在的行号等

3.字符串搜索

给出一个字符串,可以通过搜索该字符串到达指定行。

如果希望进行正向搜索,将待搜索的字符串置于两个“

/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。

例如:

:/str/正向搜索,将光标移到下一个包含字符串 str的行

:?str?反向搜索,将光标移到上一个包含字符串 str的行

:/str/w file正向搜索,并将第一个包含字符串 str的行写入 file文件

:/str1/,/str2/w file正向搜索,并将包含字符串 str1的行至包含字符串 str2的行写

入 file文件

4.正文替换

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

具体的用法包括:

:s/str1/str2/用字符串 str2替换行中首次出现的字符串 str1

:s/str1/str2/g用字符串 str2替换行中所有出现的字符串 str1

:.,$ s/str1/str2/g用字符串 str2替换正文当前行到末尾所有出现的字符串 str1

:1,$ s/str1/str2/g用字符串 str2替换正文中所有出现的字符串 str1

:g/str1/s//str2/g功能同上

从上述替换命令可以看到:g放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索

字符串的首次出现进行替换;g放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

5.删除正文

在命令模式下,同样可以删除正文中的内容。

例如:

:d删除光标所在行

:3d删除 3行

:.,$d删除当前行至正文的末尾

:/str1/,/str2/d删除从字符串 str1到 str2的所有行

6.恢复文件

vi在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以.开头,并以.swp结尾。

vi在

正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:

:recover恢复文件

也可以在启动 vi时利用-r选项。

选项设置

为控制不同的编辑功能,vi提供了很多内部选项。

利用:set命令可以设置选项。

基本语法为:

:set option设置选项 option

常见的功能选项包括:

autoindent设置该选项,则正文自动缩进

ignorecase设置该选项,则忽略规则表达式中大小写字母的区别

number设置该选项,则显示正文行号

ruler设置该选项,则在屏幕底部显示光标所在行、列的位置

tabstop设置按 Tab键跳过的空格数。

例如:set tabstop=n,n默认值为 8

mk将选项保存在当前目录的.exrc文件中

shell切换

在编辑正文时,利用 vi命令模式下提供的 shell切换命令,无须退出 vi即可执行 Linux命令,十分

方便。

语法格式为:

:! mand执行完 shell命令 mand后回到 vi

另外,在编辑模式下,键入 K,可命令 vi查找光标所在单词的手册页,相当于运行 man命令。

vim和 gvim的高级特色

Vim代表 Vi IMproved,如同其名称所暗示的那样,Vim作为标准 UNIX系统 vi编辑器的提高版而存在。

Vim除提供和 vi编辑器一样强大的功能外,还提供有多级恢复、命令行历史以及命令及文件名补全等功能。

gvim是 vi的 X Window版本,该版本支持鼠标选中,一些高级光标移动功能,并且带有菜单和工具按钮。

在Linux系统的Vim中如何写入

vim编辑器的三种模式:一般模式、编辑模式和命令行模式。

在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行。在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。需要注意的是,编辑模式与命令行模式之间是不能互相切换的。

下面列出平时用的最多的vi命令:

移动光标的方法:

[Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。

[Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。

0或功能键[Home]:移动到这一行的最前面字符处。

$或功能键[End]:移动到这一行的最后面字符处。

G:移动到这个文件的最后一行。

gg:移动到这个文件的第一行,相当于1G.

N[Enter]:N为数字,光标向下移动N行。

查找和替换:

/word:向下寻找一个名称为word的字符串。

?word:向上寻找一个名称为word的字符串。

:n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.

:1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.

:1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

删除、复制和粘贴:

x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。

dd:删除光标所在的一整行。

ndd:删除光标所在的向下n行。

yy:复制光标所在的一行。

nyy:复制光标所在的向下n行。

p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。

u:复原前一个操作。

[Ctrl]+r:重做上一个操作。

.:小数点,重复前一个操作。

阅读剩余
THE END