当前位置:文档之家› Vi常用命令

Vi常用命令

Vi常用命令
Vi常用命令

进入vi的命令 (1)

移动光标类命令 (1)

屏幕翻滚类命令 (2)

编辑插入文本类命令 (3)

删除命令 (5)

搜索及替换命令 (6)

选项设置 (8)

组合命令 (10)

最后行方式命令 (14)

寄存器操作 (15)

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename :打开多个文件,依次进行编辑

移动光标类命令

h :光标左移一个字符

l :光标右移一个字符

space:光标右移一个字符

Backspace:光标左移一个字符

k或Ctrl+p:光标上移一行

j或Ctrl+n :光标下移一行

Enter :光标下移一行

w或W :光标右移一个字至字首

b或B :光标左移一个字至字首

e或E :光标右移一个字至字尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至屏幕顶行

M :光标移至屏幕中间行

L :光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

$:光标移至当前行尾

^ 光标移到行首

f 光标移到当前光标位置后面的第一个指定的字符下

F 光标移到当前光标位置前面的第一个指定的字符下

t 光标移到当前光标位置后面的第一个指定的字符前

T 光标移到当前光标位置前面的第一个指定的字符前

% 光标移动到与当前括号匹配的括号处

:n 光标移动到指定行

按数字:0:移到文章的开头。

按G:移动到文章的最后。

按w:光标跳到下个字的开头

按e:光标跳到下个字的字尾

按b:光标回到上个字的开头

按:#l:光标移到该行的第#个位置,如:5l,56l。

跳至指定的行

Ctrl + g列出光标所在行的行号。

#G:例如,15G,表示移动光标至文章的第15行行首

14.光标控制

k:上移nk 上移n行

j:下移nj 下移n行

将光标移到第n行,按下mk

将光标移到第m行,按下"ay'k

即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等

屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

zz 将当前行置于屏幕中央

zt 将当前行置于屏幕顶端

zb 将当前行置于屏幕底端

编辑插入文本类命令

i :在光标前

I :在当前行首

a:光标后

A:在当前行尾

o:在当前行之下新开一行

O:在当前行之上新开一行

r:替换当前字符

R:替换当前字符及其后的字符,直至按ESC键

s:从当前光标位置处开始,以输入的文本替代指定数目的字符

S:删除指定数目的行,并以所输入文本代替之

ncw或nCW:修改指定数目的字

nCC:修改指定数目的行

J 删除换行符

u 取消上次操作

ctr-R 重做

c 修改指定的内容,和d相似

p 将删除缓冲区中的内容插入光标当前的位置

y 复制

vi a b c

:n跳至下一个文件,:e#回到刚才编辑的文件。

比如当前编辑文件为a,:n跳至b,再:n跳至c,:e#回到b,想回到a的话用:ea

打开一个,vi 文件名

然后在vi的命令输入状态下输入

:sp 另外一个文件的路径及文件名

如此就可以在一个窗口打开3个文件了。

可以使用ctrl +两次按w

在3个文件中切换

:edit 编辑一个新的文件

:previous 打开文件列表中的前一个文件

:next 打开文件列表中的后一个文件

:args 指定一个文件列表

:saveas 给文件改名

:file 给正在编辑的文件改名,但不保存

:split 将窗口分成上下两个窗口

:vsplit 将窗口分成左右两个窗口

:split 文件为制定的文件打开新窗口

:new 打开新窗口,以及一个无名的缓冲区

:close 关闭窗口

ctr-w w 切换窗口

ctr-w [hjkl] 切换到窗口

ctr-w [HJKL] 移动窗口

:only 只保存当前窗口,其他窗口关闭

ctw-w + 增加当前窗口高度

ctw-w - 减小当前窗口高度

:qall 所有的窗口都退出

:wall 所有的窗口内容都写入文件

取消上一命令(Undo)

重复命令(Redo)

重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。

取消上一命令(Undo)

重复命令(Redo)

重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。

fx 往右移动到x 字元上

Fx 往左移动到x 字元上

tx 往右移动到x 字元前

Tx 往左移动到x 字元前

; 配合f&t 使用,重复一次

, 配合f&t 使用,反方向重复一次

/string 往右移动到有string 的地方

?string 往左移动到有string 的地方

n 配合/&? 使用,重复一次

N 配合/&? 使用,反方向重复一次

d 删除(delete)

y 复制(yank)

p 放置(put)

c 修改(change)

x 删除光标下的字符("dl"的缩写)

X 删除光标前的字符("dh"的缩写)

D 从当前位置删除到行尾("d$"的缩写)

dw 从当前位置删除到下一个单词开头

db 从当前位置删除到前一个单词的开头

diw 删除光标上的单词(不包括空白字符)

daw 删除光标上的单词(包括空白字符)

dG 删除到文末

dgg 删除到文首

如果你用"c" 代替"d",这会变成修改命令;而改用"y",则变成拷贝命令

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

daB 删除{}及其内的内容(在非v可视模式下)

diB 删除{}中的内容

ab 选择()中的内容

ib 选择()中的内容( 不含() )

aB 选择{}中的内容

iB 选择{}中的内容( 不含{} )

·变量定位

gd 转到光标下局部变量的定义处

Gd 转到光标下全局变量的定义处

:r filename 将文件filename 插入在当前行之下

复制与剪切

xp 交换前后两个字符的位置

ddp 上下两行的位置交换

:g/fred/t$ 拷贝行,从fred到文件末尾(EOF)

删除命令

ndw或ndW:删除光标处开始及其后的n-1个字

do:删至行首

d$:删至行尾

ndd:删除当前行及其后n-1行

x或X:删除一个字符,x删除光标后的,而X删除光标前的

Ctrl+u:删除输入方式下所输入的文本

u 撤消前一条命令的结果

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

搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

:s/p1/p2/g:将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将文件中所有p1均用p2替换

/ 向后搜索

? 向前搜索

`` 跳转到前一个位置

`a 跳转到标记为a的位置

ma 将光标的当前位置标记为a

`[ 跳转到最后一次修改的起始位置

`] 跳转到最后一次修改的结束位置

`" 跳转到上次编辑该文件时光标最后停留的位置

:s 替换

:substitute 替换

:%s/a/a/c 对所有行替换

:m,ns/a/a/c 对从m到n行替换

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 行内容,并去除空隙

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

将其粘贴到正文中的指定位置。完成这一操作的命令是:

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

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

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

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

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

/str1 正向搜索字符串str1

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

?str2 反向搜索字符串str2

给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“

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

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

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

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

文件

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

tr2 的行写

正文替换

利用: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 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

:s/p1/p2/g:将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:%s/old_word/new_word/g

这个指令是于在整个文件中替换特定字符串

字串搜寻与取代

s(substitute)指令可搜寻某行列范围。

g(global)指令则可搜寻整个编辑缓冲区的资料。

s指令以第一个满足该条件的字串为其取代的对象,若该行有数个满足该条

件的字串,也仅能取代第一个,若想取代所有的字串则需加上g参数。

7)查找替换

/ 把狭义单词 写到搜索命令行

/ 把广义单词 写到搜索命令行

:g/str/s/str1/str2/g

第一个g表示对每一个包括s1的行都进行替换,

第二个g表示对每一行的所有进行替换

包括str的行所有的str1都用str2替换

:%s/f $/for$/g 将每一行尾部的“f ”(f键和空格键)替换为for

:%s/^/mv /g 在每一行的头部添加“mv ”(mv键和空格键)

:s/fred/a/g 替换fred成register a中的内容,呵呵

:g/

# 替换一个visual区域

# 选择一个区域,然后输入:s/Emacs/Vim/ 等等,vim会自动进入:模式:'<,'>s/Emacs/Vim/g 前面的'<,'>是vim自动添加的

# 在多个文档中搜索

:bufdo /searchstr

:argdo /searchstr

全局替换

语法为:[addr]s/源字符串/目的字符串/[option]

全局替换命令为::%s/源字符串/目的字符串/g

[addr] 表示检索范围,省略时表示当前行。

如:“1,20”:表示从第1行到20行;

“%”:表示整个文件,同“1,$”;

“. ,$”:从当前行到文件尾;

s : 表示替换操作

[option] : 表示操作类型

如:g 表示全局替换;

c 表示进行确认

p 表示替代结果逐行显示(Ctrl + L恢复屏幕);

省略option时仅对每行第一个匹配串进行替换;

如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义

选项设置

all:列出所有选项设置情况

term:设置终端类型

ignorance:在搜索中忽略大小写

list:显示制表位(Ctrl+I)和行尾标志($)

number:显示行号

report:显示由面向行的命令修改过的数目

terse:显示简短的警告信息

warn:在转到别的文件时若没保存当前文件则显示NO write信息

nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始

mesg:允许vi显示其他用户用write写到自己终端上的信息

状态命令< Ctrl+G >

命令显示在vi状态行上的vi状态信息,包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。

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

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

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

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

tabstop 设置按Tab 键跳过的空格数。例如:set tabstop=n,n 默认值为8

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

环境的设定

==========

:set nu 设定资料的行号。

:set nonu 取消行号设定。

:set ai 自动内缩。

:set noai 取消自动内缩。

17. vi 环境选项Solaris ksh

noautoindent nomodelines noshowmode

autoprint nonumber noslowopen

noautowrite nonovice tabstop=8

nobeautify nooptimize taglength=0

directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags noedcompatible prompt tagstack

noerrorbells noreadonly term=vt100

noexrc redraw noterse

flash remap timeout

hardtabs=8 report=5 ttytype=vt100 noignorecase scroll=11 warn

nolisp sections=NHSHH HUuhsh+c window=23

nolist shell=/bin/ksh wrapscan

magic shiftwidth=8 wrapmargin=0

mesg noshowmatch nowriteany

For C-Shell:

setenv EXINIT "set nu"

For Bourne or Korn Shell:

EXINIT="set nu"; export EXINIT

For Korn Shell Only (alternate method):

typeset -x EXINIT="set nu"

在.profile 里设置vi 的环境选项, 以上均测试过

18.标记文本

mchar用字母char标记当前光标的位置

`char 移至char所标记处

'char移至char标记所在行的开头处

"移至当前行上一次所在位置(在光标移动之后)――一个双引号

''移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号

19.

同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。

但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,

屏幕底部仍然显示目前vi的是刚才的文件。

(在HP-UX,Solaris,AIX上通过)

也可以使用:

:e#

进行切换

组合命令

"dw" 命令删除一个单词。你可能认出来了,"w" 是词移动命令。实际上,"d" 命

令后面可以跟任何"动作"(motion)命令,它会删除从当前位置到光标移动到的目标

位置的的全部内容。

例如"4w" 命令能够向后移动四个单词。所以"d4w" 命令删除4个单词。

如果你用"e" 命令作为动作,这时Vim 认为你是想删掉整个单词(包括最后一个字符)"$" 命令移动到行尾。所以,"d$" 命令从当前的位置一直删除到本行行尾。这是一个"包含的" 命令,所以,这行的最后一个字符也会被删除

另一个操作符命令是"c",表示修改,change。它的作用方式与"d" 操作符相似,只是完成后会切换到插入模式。

例如,"cw" 修改一个词,更精确的说,它删除一个词,并切换到插入模式。

这里"c2wbe" 包括如下操作:

c 修改操作符

2w 移动两个单词的距离(与操作符合起来,它删除两个单词并进入插入模式)

be 插入be 这个单词

切换回普通模式

"d$" 删除到行尾;"c$" 则修改到行尾。这就象先用"d$" 删除一行再用"a" 启动插入模式并加入新的文字。

快捷键

有些"操作符-动作" 命令由于经常被使用,所以被设置为单字符命令:

x 表示dl (删除当前光标下的字符)

X 表示dh (删除光标左边的字符)

D 表示d$ (删除到行尾)

C 表示c$ (修改到行尾)

s 表示cl (修改一个字符)

S 表示cc (修改一整行)

重复一个修改

"." 是Vim 中一个非常简单而有用的命令。它重复最后一次的修改操作。例如,假设你在编辑一个HTML 文件,你想删除所有的 标记。你把光标移到第一个"<" 上,然后用"df>" 命令删除。然后你就可以移到 的< 上面用"." 命令删除它。"." 命令

执行最后一次的修改命令(在本例中,就是"df>")。要删除下一个 标记,移动到下一个< 的位置,再执行"." 命令即可。

To generate a table of contents

f< 找第一个< --->

df> 删除到> -->

f< 找下一个< --------->

重复df> --->

f< 找下一个< ------------->

重复df> -->

"." 命令重复任何除"u" (undo),CTRL-R (redo) 和冒号命令外的修改。

关于粘贴的更多知识

"P" 命令象"p" 一样也是插入字符,但插入点在光标前面。当你用"dd" 删除一行,"P" 会把它插入到光标所在行的前一行。而当你用"dw" 删除一个单词,"P" 会把它

插入到光标前面。

你可以执行这个命令多次,每次会插入相同的文本。

"p" 和"P" 命令接受个数前缀,被插入的文本就会被插入指定的次数。所以"dd" 后

加一个"3p" 会把删除行的三个拷贝插入到文本中。

交换两个字符

经常发生这样的情况,当你输入字符的时候,你的手指比你的脑子转得快(或者相反?)。这样的结果是你经常把"the" 敲成"teh"。Vim 让你可以很容易得修正这种错误。只要把光标移到"teh" 的"e" 上,然后执行"xp" 即可。这个工作过程是:"x" 删除一个字符,保存到寄存器。"p" 把这个被保存的字符插入到光标的后面,也就是"h" 的后面了。

teh th the

x p

由于"y" 是一个操作符,所以"yw" 命令就是拷贝一个单词了。当然了,个数前缀也是

有效的。要拷贝两个单词,就可以用"y2w"。例如:

let sqr = LongVariable *

-------------->

y2w

let sqr = LongVariable * p

let sqr = LongVariable * LongVariable

注意:"yw" 命令包括单词后面的空白字符。如果你不想要这个字符,改用"ye" 命令。"yy" 命令拷贝一整行,就像"dd" 删除一整行一样。出乎意料地是,"D" 删除到行尾而"Y" 却是拷贝一整行。要注意这个区别!"y$" 拷贝到行尾。

使用剪贴板

"Cut" 菜单项会在把文字拷进剪贴板前删除它。"Copy","Cut" 和"Paste" 命令在弹出

菜单中也有(当然了,前提是有弹出式菜单)。如果你的Vim 有工具条,在工具条上

也能找到这些命令。

如果你用的不是GUI,或者你根本不喜欢用菜单,你只能用其它办法了。你还是可以用普通

的"y"(yank)和"p"(put)命令,但在前面必须加上"*(一个双引号加一个星号)。

例如,要拷贝一行到剪贴板中:

"*yy

要粘贴回来:

"*p

这仅在支持剪贴板的Vim 版本中才能工作。

文本对象

如果你在一个单词的中间而又想删掉这个单词,在你用"dw" 前,你必须先移到这个单词的开始处。这里还有一个更简单的方法:"daw"。

this is some example text.

daw

this is some text.

"daw" 的"d" 是删除操作符。"aw" 是一个文本对象。提示:"aw" 表示"A Word"

(一个单词),这样,"daw" 就是"Delete A Word"(删除一个单词)。确切地说,

该单词后的空格字符也被删除掉了。

用"cis" 可以改变一个句子。看下面的句子:

Hello there. This is an example. Just some text.

移动到第二行的开始处。现在使用"cis":

Hello there. Just some text.

现在你输入新的句子"Another line.":

Hello there. Another line. Just some text.

"cis" 包括"c"(change,修改)操作符和"is" 文本对象。这表示"Inner Sentence"(译者注:实在很难用中文表示这个意思了,各位还是记英文名吧)。还有

一个文本对象是"as",区别是"as" 包括句子后面的空白字符而"is" 不包括。如果

你要删除一个句子,而且你还想同时删除句子后面空白字符,就用"das";如果你想保

留空白字符而替换一个句子,则使用"cis"。

*04.9* 替换模式

"R" 命令启动替换模式。在这个模式下,你输入的每个字符都会覆盖当前光标上的字符。这会一直持续下去,直到你输入

在下面的例子中,你在"text" 的第一个"t" 上启动替换模式:

This is text.

Rinteresting.

This is interesting.

你可能会注意到,这是用十二个字符替换一行中的五个字符。如果超出行的范围,"R" 命令自动进行行扩展,而不是替换到下一行。

你可以通过 在插入模式和替换模式间切换。

但当你使用(退格键)进行修正时,你会发现原来被替换的字符又回来了。这就好像一个"撤消" 命令一样。

. %

%用来匹配块,

如果你的光标在类似([{}])

或者#ifdef #else #endif上

%将把光标跳转到相应的匹配符号上去,

%还可以用来指定命令范围,

如果你想把一个

{

..

...

}的块全部删除。

可以先把光标移到{ 再敲d%

类似的,

如果你想把一个块全部往里缩进一个tab

可以把光标移到{ 敲>%

2. =

=是用来缩进的假设你已经在.vimrc里

设置了你的缩进格式,

你就可以用=来缩进你的代码了

=%就是缩进一个块。

3.正则表达式

正则表达式大家都清楚,

我主要讲个一般人不太用,

但很有用的表达,

例如你想把所有的"..."形式的串替换成'...'的形式

但引号里的内容不变

你就可以用

%s/"\(.*\)"/'\1'/来做

上面这个正则表达式"\(.*\)"里\用来表示()是元字符

第一个在括号里的被匹配的串就可以被\1来代表, 以后依次是\2 \3。

顺便说一句,我到现在还不

知道怎么限制vim里正则表达匹配的贪婪算法

·编译选项

:cn 命令会把你带到下一个出错地点,而不考虑它在什么文件里。

:cc 命令会向你显示当前错误的编译器输出信息;

:cl 会生成一个列有项目所有错误的列表,以供浏览这些错误

最后行方式命令

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2 d :将n1行到n2行之间的内容删除

:w :保存当前文件

:e filename:打开文件filename进行编辑

:x:保存当前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:!command:执行shell命令command

:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入

:r!command:将命令command的输出结果放到当前行

ZZ 退出vi

:help 帮助系统

ctr-] 跳转到标签制定的目标

ctr-T 回到前一个目标

在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;

若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。

若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令:w! newfile

在末行模式下,输入命令:wq

Vi将先保存文件,然后退出Vi返回到shell。

在末行模式下,输入命令:x

该命令的功能同命令模式下的ZZ命令功能相同。

w filename

储存正在编辑的文件为filename

wq filename

储存正在编辑的文件为filename,并退出vi

恢复文件

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

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

用恢复命令:

:recover 恢复文件

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

恢复编辑时被中断的文件

======================

在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未

被写回磁盘时,当再度回到系统,执行下列指令即可回复中断前

的文件内容。

%vi -r filename

替换文件中的字符串

在vi界面下使用命令

:%s#/usr/bin#/bin#g

可以把文件中所有路径/usr/bin换成/bin。也可以使用命令:

:%s/usr/bin/bin/g

其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

9)窗口操作

:vne [filename]

:sp [filename]

:S [filename]

:new [filename]

:^w + ^r 交换两个窗口的位置

^w = 窗口等宽

:res -n 窗口高度减小n

:res +n 窗口高度增大n

:vert res -n

:vert res +n

10)DOS格式文本转成Unix格式文本

:1,$s/^M//g

11)书签

在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。

将光标移到想做标记的位置。假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。

寄存器操作

"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字

"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字

ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

vi 高级技巧

交换两个字符位置

xp

上下两行调换

ddp

把文件内容反转

:g/^/m0/

保存后就加密

:X

上下两行合并

J

删除所有行

dG

从当前位置删除到行尾

d$

从当前位置复制到行尾

y$ 如果要粘贴到其他地方p 就可以了

在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,粘贴下来在光标处。我常用到的单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S

:%s/old_word/new_word/g

这个指令是于在整个文件中替换特定字符串

将光标移到第n行,按下mk

将光标移到第m行,按下"ay'k

即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等

删除命令操作

d l 删除当前字符(与x命令功能相同)

d 0 删除到某一行的开始位置

d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)

d w 删除到某个单词的结尾位置

d 3 w 删除到第三个单词的结尾位置

d b 删除到某个单词的开始位置

d W 删除到某个以空格作为分隔符的单词的结尾位置

d B 删除到某个以空格作为分隔符的单词的开始位置

删除命令操作

d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置

d)删除到某个语句的结尾位置

d 4)删除到第四个语句的结尾位置

d(删除到某个语句的开始位置

d } 删除到某个段落的结尾位置

d { 删除到某个段落的开始位置

d 7 { 删除到当前段落起始位置之前的第7个段落位置

d d 删除当前行

d /t

e x t 删除从文本中出现" t e x t"中所指定字样的位置,一直向前直到下一个该字样所出现的

位置(但不包括该字样)之间的内容

d fc 删除从文本中出现字符"c"的位置,一直向前直到下一个该字符所出现的位置(包括

该字符)之间的内容

d tc 删除当前行直到下一个字符" c"所出现位置之间的内容

D 删除到某一行的结尾

d $ 删除到某一行的结尾

5 d d 删除从当前行所开始的5行内容

d L 删除直到屏幕上最后一行的内容

d H 删除直到屏幕上第一行的内容

d G 删除直到工作缓存区结尾的内容

d 1 G 删除直到工作缓存区开始的内容

修改命令操作

c l 更改当前字符

c w 修改到某个单词的结尾位置

c 3 w 修改到第三个单词的结尾位置

c b 修改到某个单词的开始位置

c W 修改到某个以空格作为分隔符的单词的结尾位置

c B 修改到某个以空格作为分隔符的单词的开始位置

c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置

c 0 修改到某行的结尾位置

c)修改到某个语句的结尾位置

c 4)修改到第四个语句的结尾位置

c(修改到某个语句的开始位置

c } 修改到某个段落的结尾位置

c { 修改到某个段落的开始位置

c 7 { 修改到当前段落起始位置之前的第7个段落位置

c tc 修改当前行直到下一个字符c所出现位置之间的内容

C 修改到某一行的结尾

c c 修改当前行

5 c c 修改从当前行所开始的5行内容

替换命令操作

s 将当前字符替换为一个或多个字符

S 将当前行替换为一个或多个字符

5 s 将从当前字符开始的5个字符替换为一个或多个字符

;

分号,配合f 和t 使用,重复一次

,

逗号,配合f 和t 使用,反方向重复一次

追加到缓冲区

对于已经有内容的缓冲区,可以继续追加内容在其后面,例如:

"Ad4w 删除光标后4个字,并附加到缓冲区a

"Ay) 取样从光标到文件尾的内容,并附加到缓冲区a

"K3yy 取样从光标所在行起的3行内容,并附加到缓冲区k

删除从当前行开始到最后一行的所有内容

:.,$d

在:命令行模式下,首先可以确定命令的范围

.表示当前行;数字表示行号,如1表示第一行,2表示第二行;$表示最后一行范围用,分隔

然后用命令

d表示删除,y表示复制......大家都知道的

最后说一句,%表示全文

:%d

是删除全文

v选中多行

vi编辑器命令详解

vi编辑器命令详解 vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。若在vi执行时 没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件。若指定的文件不存在, 那么就按指定的文件名创建一个新的文件。若对文件的修改不保存的话,v i命令并不改变原 来文件的内容。 注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后 保存的文件版本将被保留。 下面是vi命令使用的一些选项及含义: -c sub-command 在对指定的文件编辑前,先执行指定的命令sub-command . -r filename 恢复指定的文件filename . -R 将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修改。 -y number 将编辑窗口的大小设为number行。 下面是vi编辑所处的三种模式: .命令模式进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、 粘贴行、移向下一个字、移向不同行等。 .文本输入模式在此模式下可以修改一行的内容并增添新行。在命令模式下键入a 、i 或 c键可进入文本输入模式,按Escape键可返回命令模式。 .命令项模式在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文 件名,"/"子命令要求输入一个查找项。用户使用Escape键返回命令模式。 下面是自命令模式下执行的,在同一行上移动的自命令: h 将光标左移一格。 l 将光标右移一格。 j 将光标下移一格。 k 将光标上移一格。 w 将光标移到下一个小字的前面。 W 将光标移到下一个大字的前面。 b 将光标移到前一个小字的前面。 B 将光标移到前一个大字的前面。 e 将光标移到下一个小字的后面。 E 将光标移到前一个大字的后面。 fc 把光标移到同一行的下一个c字符处。 Fc 把光标移到同一行的前一个c字符处。 tc 把光标移到同一行的下一个字符c的前一格。

vi下的一些常用命令

vi 是visual edit 的缩写 文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾

H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令

vi命令的使用

vi编辑器使用方法 1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode) 1) 命令行模式command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode 下,或者到 last line mode。 2) 插入模式(Insert mode) 只有在Insert mode下,才可以做文字输入,按[ESC]键可回到命令行模式。 3) 底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。 一般把vi简化成两个模式,即将底行模式(last line mode)也算入命令行模式command mode)。 2、vi的基本操作 2.1、三种模式的转换 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 进入vi之后,是处于[命令行模式(command mode)],要切换到[插入模式(Insert mode)]才能够输入文字。 b) 切换至插入模式(Insert mode)编辑文件 在[命令行模式(command mode)]下键入对应字母就可以进入[插入模式(Insert mode)],此时可以开始输入文字了。 c) Insert 的切换 处于[插入模式(Insert mode)],就只能一直输入文字。若发现输错了字!要按[ESC]键转到[命令行模式(command mode)]再删除文字。 d) 退出vi及保存文件 在[命令行模式(command mode)]下,按一下[:]冒号键进入[Last line mode],例如: : w filename (输入 [w filename]将文章以指定的文件名filename保存): wq (输入[wq],存盘并退出vi) : q! (输入q!,不存盘强制退出vi) 2.2、命令行模式(command mode)功能键 1). 插入模式 按切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;

操作系统实验报告 LINUX基本命令使用和VI编辑器

实验报告模板 实验名称Linux基本命令使用和vi编辑器学院 姓名学号班级 实验地点实验日期评分 指导老师同组其他成员 一、实验目的 掌握Linux一般命令格式。 2.掌握有关文件和目录操作的常用命令。 3.掌握进程操作的常用命令。 4.熟练使用man命令。 5.学习使用vi编辑器建立、编辑、显示及加工处理文本文件。 二、实验环境 VMware,RedHat Linux 三、实验内容 正确地登录和退出系统(logout或exit)。 2.熟悉date,cal,who,clear命令。 3.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。 4.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。 5.利用man显示date等命令的手册页。 6.显示系统中的进程信息。 7.进入和退出vi。 8.利用文本插入方式建立一个文件。 9.在新建的文本文件上移动光标位置。 10.对该文件执行删除、复原、修改、替换等操作。 四、实验结果(含程序、数据记录及分析和实验总结等) 1.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。

Clear之后 2.浏览文件系统: (1)运行pwd命令,确定当前工作目录。 (2)运行ls–l命令,理解各字段含义。 第一部分“-rw-r--r--”表示该文件的权限,即所有者权限为读和写,组用户和其他用户的权限为只读。第二部分“l”表示该文件是符号链接,第三第四部分所 有者和所有者所在的用户组,第五部分的数字表示文件的大小(以字节为单位),剩下的依次是文件创建月日时间和文件名。

vim命令(全)

本章提供足够的信息使你用够使用Vim 来做基本的编辑。这里提供的方法不一定是高效 快捷的。但起码是有效的。花些时间去练习这些命令,这是后面的知识的基础。 |02.1| 第一次运行Vim |02.2| 插入文本 |02.3| 移动光标 |02.4| 删除字符 |02.5| 撤销与重做 |02.6| 其它编辑命令 |02.7| 退出 |02.8| 寻求帮助 下一章:|usr_03.txt| 移动 前一章:|usr_01.txt| 关于本手册 目录:|usr_toc.txt| -------------------------------------------------------------------------------- *02.1* 第一次运行Vim 启动Vim 的命令如下: gvim file.txt 在UNIX 操作系统中,你可以在任意命令提示符下输入这个命令。如果你用的是Microsoft Windows, 启动一个MS-DOS 窗口,再输入这个命令。 无论哪一种方式,现在Vim 开始编辑一个名为file.txt 的文件了。由于这是一个新建 文件,你会得到一个空的窗口。屏幕看起来会象下面这样: +---------------------------------------+ |# | |~ | |~ | |~ | |~ | |"file.txt" [New file] | +---------------------------------------+ ('#"是当前光标的位置) 以波纹线(~)开头的行表示该行在文件中不存在。换句话说,如果Vim 打开的文件不能充满这个显示的屏幕,它就会显示以波纹线开头的行。在屏幕的底部,有一个消息行指示文件 名为file.txt 并且说明这是一个新建的文件。这行信息是临时的,新的信息可以覆盖它。

linux下vi命令大全

linux下vi命令大全 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前

I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g:将文件中所有p1均用p2替换 选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(Ctrl+I)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目 terse:显示简短的警告信息 warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息 最后行方式命令 :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下

VIM常用命令

VIM常用命令 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字j至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 : https://www.doczj.com/doc/4f3617829.html,/jh/4/119327.html /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g:将文件中所有p1均用p2替换

linux下vi命令修改文件及保存等使用方法整理

vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、 游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会vi,那您可能就没辄了。 vi的基本概念 基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode), 各模式的功能区分如下: 1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。 2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。 3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。 不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾

Vi常用命令

进入vi的命令 (1) 移动光标类命令 (1) 屏幕翻滚类命令 (2) 编辑插入文本类命令 (3) 删除命令 (5) 搜索及替换命令 (6) 选项设置 (8) 组合命令 (10) 最后行方式命令 (14) 寄存器操作 (15) 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行

n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 ^ 光标移到行首 f 光标移到当前光标位置后面的第一个指定的字符下 F 光标移到当前光标位置前面的第一个指定的字符下 t 光标移到当前光标位置后面的第一个指定的字符前 T 光标移到当前光标位置前面的第一个指定的字符前 % 光标移动到与当前括号匹配的括号处 :n 光标移动到指定行 按数字:0:移到文章的开头。 按G:移动到文章的最后。 按w:光标跳到下个字的开头 按e:光标跳到下个字的字尾 按b:光标回到上个字的开头 按:#l:光标移到该行的第#个位置,如:5l,56l。 跳至指定的行 Ctrl + g列出光标所在行的行号。 #G:例如,15G,表示移动光标至文章的第15行行首 14.光标控制 k:上移nk 上移n行 j:下移nj 下移n行 将光标移到第n行,按下mk 将光标移到第m行,按下"ay'k 即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏

CentOS之VI编辑器的常用命令

CentOS之VI编辑器的常用命令 一.vi的模式 命令模式:vi启动默认进入的模式,可进入输入模"i",或末行模式(:),除了可以完成命令的功能外,也是后两种模式的转换点 输入模式:即文本辑辑状态,最后一行显示"-- INSERT --"提示,按ESC返回到命令模式 末行模式:可完成一些复杂操作,以":"开始,执行完一个末行命令后自动返回命令模式 二.基本使用 1.vi 编辑器的启动与退出: (1).使用命令"vi"直接进入编辑环境 (2).在命令模式下输入":q!",可以强行退出编辑环境,对文件修改不进行保存 (3).以文件名作为"vi"命令的参数时,若存在此文件,则vi可对内容进行编辑,若不存在,打开以参数名命名的空文件 2.文件操作: (1).打开新文件:在末行模式下":e filename"关闭当前文件并打开新文件,":e! filename 强制关闭当前文件并打开新文件" (2).读取文件内容到当前文件:":r filename",读取的文件内容粘贴到当前文件光标所在行的下面 (3)保存文件:命令为":w [filename]",如果文件已经命名,可直接使用":w"命令的参数,如果没有命名,第一次保存时需指定文件名作为参数 (4).另存为文件:命令为":w filename",只保存到新文件,而不更新原来文件的内容 (5).退出vi编辑器:退出格式为":q",保存并退出为":wq",强行退出为":q!" 3.光标的移动操作(命令模式下) (1).光标方向移动:"h"左、"l"右、"k"上、"j"下

(2).翻页移动:"ctrl+f"前一页、"ctrl+b"后一页、"ctrl+u"前半页、"ctrl+d"后半页 (3).行内快速跳转:"^"本行首字符、"$"本行尾字符、"w"后一单词首字母、"b"前一单词首字母、"e"后一单词尾字母;可添加数字组合使用,例如:"3w"后三个单词首字母、"4b"前4个单词首字母、"5e"后5个单词尾字母 (4).文件内行间跳转:显示行号":set nu",取消显示行号":set nonu","1G"跳转到首行,"G"跳转到末尾行,"#G"跳转到第#行 4.编辑操作 (1).进行输入模式:"i"当前光标处,"a"当前光标后,"A"当前行末,"o"当前行下插入新行,"O"当前行上插入新行,"cw"删除当前光标到所在尾部字符,"c$"删除当前光标到行尾的字符,"c^"删除当前光标(不包括)之前到行首的字符;以上记忆如有困难,可只记"i"从命令模式进入输入模式,完成编辑后"Esc"退回到命令模式 (2).输入模式的操作:上下左右方向进行光标移动,"Home/End"定位光标到行首行尾,"Page Up /Down"上下翻页,"Backspace"左侧字符的删除,"Delete"删除光标位置的字符 (3).删除操作:在命令模式下,可用以下命令完成删除操作,"x"光标处单个字符,"dd"光标所在行,"dw"当前字符到单词尾(含空格),"de"当前字符到单词尾(不含空格), "d$"当前字符到行尾,"d^"当前字符到行首,"J"合并当前行与下一行的内容,可添加数字配合使用,例如"3x"当前光标向右3个字符,"2dd"从当前行开始向下两行文本, "3dw"当前光标向右3个单词,"2de"当前光标向右两个单词(保留一个空格),"5J"合并5行文本 (4).撤销操作:在命令模式下,"u"取消最近一次操作,可重复使用,"U"取消对当前行进行的所有操作,"Ctrl+R"对"u"产生的撤消进行恢复 (5).复制操作:"yy"整行,"yw"光标到单词尾,"y$"光标到行尾,"y^"光标到行首;与数字组合使用,"5yy"当前及后续共5行,"3yw"当前光标开始的3个单词; 末行命令":m,ny"m行到n行之间的文本,例如:":100,200y"100行到200的内容 (6).粘贴操作:在命令模式下,使用"p"将缓冲区中的内容粘贴到当前文档

ubuntu_vi编辑器使用

ubuntu下文本编辑器VI[转] 文件编辑器vi 作者:北南南北 来自:https://www.doczj.com/doc/4f3617829.html, 摘要:vi 编辑器是最常用的文档创建和编辑工具,初学者应该学会简单应用vi ,学会在vi 中做简单的修改、删除、插入、搜索及替换作业;如果您是新手,不妨看看本文,或许这篇文档能让您在最短的时间内学会vi的简单操作; 目录 1、关于文本编辑器; 2、vi 编辑器; 3、vi 编辑器的使用方法; 3.1 如何调用vi ; 3.2 vi 的三种命令模式; 3.3 文件的保存和退出; 3.4 光标移动; 3.5 插入模式(文本的插入); 3.6 文本内容的删除操作; 3.7 恢复修改及恢复删除操作; 3.8 可视模式; 3.9 复制和粘帖的操作; 3.10 关于行号; 3.11 查找和替换功能; 3.11.1 查找; 3.11.2 替换; 4、关于本文; 5、后记; 6、参考文档; 7、相关文档; +++++++++++++++++++++++++++++++++++++正文 +++++++++++++++++++++++++++++++++++++ 1、关于文本编辑器;

文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的编辑器有vi、vim(vi的增强版本)和nano ... ... vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi(vim)最简单的用法,以让Linux入门级用户在最短的时间内学会使用它。 nano 工具和DOS操作系统下的edit操作相似,使用简单,我们不作介绍了,如果您有兴趣,不妨尝试一下; 2、vi编辑器; 为什么要学会简单应用vi vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。当您没有安装X-windows桌面环境或桌面环境崩溃时,我们仍需要字符模式下的编辑器vi; vi或vim 编辑器在创建和编辑简单文档最高效的工具; 3、vi编辑器的使用方法; 3.1如何调用vi; [root@localhost ~]# vi filename ~ ~ ~ ~ ~ ~ ~ ~ 3.2 vi的三种命令模式; Command(命令)模式,用于输入命令; Insert(插入)模式,用于插入文本; Visual(可视)模式,用于视化的的高亮并选定正文;

实验一 Linux下常用命令和Vi的使用

实验一Linux下常用命令和Vi的使用 实验学时:2学时 实验类型:验证型 一、实验目的 了解UNIX/LINUX运行环境,熟悉UNIX/LINUX的常用基本命令,熟悉和掌握 UNIX/LINUX下c语言程序的编写、编译、调试和运行方法。 二、实验内容 ●熟悉LINUX的常用基本命令如ls、who、pwd、ps等。 ●练习LINUX的文本行编辑器vi的使用方法 ●联机帮助命令-man的使用。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验步骤: 1.用pwd显示当前工作目录名:pwd;如果当前目录不是root,需改变到root目录: cd/root。 2.用mkdir建立四个目录:mkdir /root/test1;mkdir /root/test2;mkdir /root/test2/abcd;mkdir /mypro。 3.用cd命令从root开始依次进入test1、test2、abcd、mypro目录,并用 pwd验 证。 cd test1; pwd cd ../test2;pwd cd abcd;pwd cd ../../mypro;pwd 4.用cd 命令从mypro目录返回到根目录,并用pwd命令验证。 cd / pwd 5.用rmdir命令删除子目录 abcd。 Rmdir /root/test2/abcd 6.分别用ls ls –a 和ls-l查看root目录的内容。 ls ls –a ls -l 7.man 命令: (按PageUp键向上翻页PageDown向下翻页,按q退出) man ls 查看ls的帮助信息。 man cp 查看cp的帮助信息。 man mkdir 查看mkdir的帮助信息。 man rm>rm_help 用重定向生成帮助文档

vi命令大全

vi命令大全 进入vi vi filename 打开或新建文件,并将光标置于第一行首 vi +n filename 打开文件,并将光标置于第n行首 vi + filename 打开文件,并将光标置于最后一行首 vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename vi filename ……filename 打开多个文件,一次进行编辑 保存退出 w 保存当前文件 w /tmp1 另存为/tmp1 20,59w /tmp1 仅将20-59行之间的内存另存为/tmp1 x或wq 保存退出 q 退出vi q!退出不保存 !command 执行shell命令command n1,n2 w!command 将文件中n1行至n2行的内容最为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入

r!command 将命令command的输出结果放到当前行w!sudo tee % 保存没权限时,可获得权限再保存 光标移动 h 光标左移一个字符 l 光标右移一个字符 space 光标右移一个字符 backspace 光标左移一个字符 k 或Ctrl+p 光标上移一行 j 或Ctrl+n 光标下移一行 Enter 光标下移一行 w 或W 光标右移一个字至字首 b 或B 光标左移一个字至字首 e 或E 光标右移一个字至字尾 )光标移至句尾 (光标移至句首 } 光标移至段落开头 { 光标移至段落结尾 nG 光标移至第n行首 n+ 光标下移n行 n- 光标上移n行

实验报告3_vi编辑器的使用

实验报告3_v i编辑器的使 用 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

实验三 VI编辑器的使用 信息学院班级:学号:姓名: 一、实验目的 1.掌握vi编辑器的启动和退出方法 2. 掌握vi编辑器中录入文件内容的方法 3. 掌握vi编辑器的各种编辑命令的使用 4.比对微软公司的Word编辑软件,了解vi的优缺点 二、实验环境 安装了Linux系统的计算机一台 三、【实验重点及难点】 重点:掌握VI编辑器的使用方法。 难点:VI编辑器内部命令的使用。 四、实验过程(实验步骤、记录、数据、分析、结果) 1、启动虚拟机 2、vi编辑器的启动和退出 首先启动shell终端,如下图 在shell提示符下输入vim或vi,将启动vi编辑器 若要退出Vi在末行命令模式下输入:wq或:q!即可 (1)使用键在编辑命令模式和末行命令模式和插入模式之间进行切换进入插入模式 a追加,i插入,o当前行后插入一空行,r、s替换。 注意其他三个对应命令:A I O R S (2)复制正文 yy 复制当前行, nyy复制n行. 退出到命令模式以后:3yy (3)删除正文 x删除一个字符, dd 删除当前行,ndd 删除n行, dw 删除一个单

词。删除内容均放在缓冲区。 x: → dd: → ndd: → dw: → (4)替换正文 p 将缓冲区的内容粘贴到当前光标处。rn用字符n替换当前字符。 → (5)练习教材5.6节的导航命令。 (6)文件操作:w 写盘,:wq写盘退出,:q!不存盘退出,:w filenam写文件名。 (7)使用vi编辑生成三个100行字符,名字分别为my1,my2和my3的文本文件 (8)在vi编辑my1状态下查看当前目录,使用搜索字符串、删除和粘贴功能,使用替换命令及存盘退出、存盘不退出和不存盘退出命令。 存盘退出:wq 存盘不退出:w 不存盘退出: q! (9)把my1,my2和my3合并为一个文本文件my,并用命令wc显示其行数、

Linux系统中vi编辑器常用命令

Linux系统Ubuntu中的Vi编辑器常用命令vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会vi,那您可能就没辄了。 vi的基本概念 基本上vi可分为三种操作状态,分别是命令模式(Commandmode)、插入模式(Insertmode)和底线命令模式(Lastlinemode), 各模式的功能区分如下: :控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insertmode下,或者到Lastlinemode。 :唯有在Insertmode下,才可做文字数据输入,按Esc等可回到Comandmode。 :将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。

不过可以把vi简化成两个模式,即是将Lastlinemode也算入Commandmode,把vi分成Command和Insertmode。 进入vi的命令: vifilename:打开或新建文件,并将光标置于第一行首 vi+nfilename:打开文件,并将光标置于第n行首 vi+filename:打开文件,并将光标置于最后一行首 vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处 vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename vifilename....filename:打开多个文件,依次进行编辑 移动光标类命令 h:光标左移一个字符 l:光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n:光标下移一行

Linux基本命令及vim的使用

Linux基础实验 Linux常用命令的使用 【实验内容】 本课程要求学员对Linux基本操作命令有一定了解和掌握。下面列出的一些常用命令作为参考。最好针对每一个都能亲自练习、掌握。 【实验平台】 PC机 注意: 打开终端:ctrl+atl+t 命令、参数通过空格分开 Tab 补全命令和参数 ---------------------------------------------------------------------- 1.pwd 命令 pwd 显示当前目录的绝对地址 ---------------------------------------------------------------------- 2.ls 命令 ls 以默认方式显示当前目录文件列表 ls –a 显示所有文件包括隐藏文件

ls –l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行 ---------------------------------------------------------------------- 3.cd 命令 cd dir 切换到当前目录下的dir目录 cd .. 返回到上一级目录 cd ~ 切换到用户主目录,farsight用户的主目录(/home/farisht),root用户的主目录(/root) 尝试cd –、cd 空格、cd +相对路径、cd+绝对路径 ---------------------------------------------------------------------- 4.cp命令 拷贝文件或拷贝目录,拷贝目录使用参数(-r) cp source target 将source 拷贝到target 尝试拷贝1.c文件到farsight用户主目录 ---------------------------------------------------------------------- 5.mv命令 移动文件或目录,修改文件名或目录 mv source target 将source移动到target ---------------------------------------------------------------------- 6.mkdir 命令 mkdir file 当前目录下创建file目录

VI命令大全

/根目录下的文件夹 输入”/”,回车 里面有很多文件夹,如:etc,home,lib,mnt等等 etc:存放用户名和密码 home:每个用户有个文件夹,存放在这里 lib:操作系统文件等 mnt:挂扣用的 opt:java工具 bea:web编程的一些东西 sbin,bin,usr:这三个文件夹都是存放unix的命令的 tmp:临时文件夹 常用的操作: 查看当前目录:pwd 修改密码:passwd 更换模式:csh,bash 远程登陆:telnet 服务器ip 回到上级目录:cd .. 查看该目录下的文件夹:ls 打开文件:vi /文件夹/文件 文件显示的格式:root:x:0:root…:/root;/bin/bash 用户名,加密,序号,组,默认路径 退出:esc shift+: q! quit exit 清空:clear 显示当前目录所有文件:ls –a 显示当前目录所有文件和详细信息:ls –al 新建文件:vi 文件名 文件的权限:chmod g –(+)r w x u g o s 新建文件(不能编辑)更新文件的访问时间,如果存在文件,更新,不存在,建立:touch 文件名创建目录:mkdir 目录名/目录名 创建多个目录:mkdir 目录名目录名….. 在主目录创建下目录:mkdir ~/目录名 创建多级目录:mkdir –p 目录名/目录名 在覆盖文件前做个提示:cp –I 文件和文件内容间的拷贝:cp 复制目录:cp –r 目录目录 复制文件:cp 文件文件 移动文件:mv 要移动的文件要移动到的目录 移动目录:mv -fi要移动的目录要移动到的目录 修改文件或目录的名字:mv 文件名字 删除文件:rm rm –I提示 删除目录中的所有内容包括目录:rm –r 要删除的文件夹 连接:软连接:相当于创建快捷方式,作用:修改linux内核会用到他in 硬连接:如果删除源文件,被连接的文件内容还存在 帮助:man 命令

vi常用指令详解

首先,记住vi编辑器的两个模式:1、命令模式2、编辑模式。 在一个UNIX/Linux的shell命令或者一个以斜杠(/)、问号(?)或冒号(:)开始的vi 命令后面用户需要键入回车键,而要切换到vi命令模式需要按Esc键。注意,以冒号(:)或者斜杠(/)开始的vi命令会显示在屏幕底部,但其他命令都不会显示在屏幕上。 打开、写入和关闭文件(使用Enter键) vi file打开文件名为file的文件(UNIX shell命令) :w将工作缓冲区的变化写入默认文件中 :w file将工作缓冲区的变化写入名为file的文件中 :q退出vi编辑器 :wq将工作缓冲区的变化写入文件并退出 :q!不将工作缓冲区的变化写入文件并退出vi编辑器 插入文本(vi命令模式下使用) a在当前光标位置的右边添加文本 i在当前光标的左边插入文本 A在当前行的末尾添加文本 I在当前行的开始出添加文本 O在当前行的上面新建一行 o在当前行的下面新建一行 R替换(覆盖)当前光标位置以及以后的若干文本 J连接光标所在行以及下一行,成为一行 移动光标 上下左右方向键向箭头所示方向移动光标一个位置 h向左

j向下 k向上 l向右 空格键向右 Backspace向左 Enter向下移动到下一行的行首 -(连字符键)向上移动到上一行的行首 纠正错误(vi命令模式下使用) x删除一个字符 dd删除当前行 n dd 上除当前行在内的n行 u撤销上一次操作(最后一步) U撤销对当前行的所有操作 拼写检查(UNIX shell命令) spell file显示问及那file中找到的拼写错误ispell file显示问及那file中找到的拼写错误 搜索(vi命令模式下使用) /word向前搜索第一个出现的word /继续向前搜索下一个word ?word向后搜索第一个出现的word ?继续向后搜索下一个word 跳跃到指定行(vi命令模式使用)

实验报告3_vi编辑器的使用

实验三VI编辑器的使用 信息学院班级:学号:姓名: 一、实验目的 1.掌握vi编辑器的启动和退出方法 2. 掌握vi编辑器中录入文件内容的方法 3. 掌握vi编辑器的各种编辑命令的使用 4.比对微软公司的Word编辑软件,了解vi的优缺点 二、实验环境 安装了Linux系统的计算机一台 三、【实验重点及难点】 重点:掌握VI编辑器的使用方法。 难点:VI编辑器内部命令的使用。 四、实验过程(实验步骤、记录、数据、分析、结果) 1、启动虚拟机 2、vi编辑器的启动和退出 首先启动shell终端,如下图 在shell提示符下输入vim或vi,将启动vi编辑器 若要退出Vi在末行命令模式下输入:wq或:q!即可 (1)使用键在编辑命令模式和末行命令模式和插入模式之间进行切换进入插入模式 a追加,i插入,o当前行后插入一空行,r、s替换。 注意其他三个对应命令:A I O R S (2)复制正文 yy 复制当前行, nyy复制n行. 退出到命令模式以后:3yy

(3)删除正文 x删除一个字符, dd 删除当前行,ndd 删除n行, dw 删除一个单词。删除内容均放在缓冲区。 x:? dd: ? ndd: ? dw: ? (4)替换正文 p 将缓冲区的内容粘贴到当前光标处。rn用字符n替换当前字符。 ? (5)练习教材节的导航命令。 (6)文件操作:w 写盘,:wq写盘退出,:q!不存盘退出,:w filenam写文件名。 (7)使用vi编辑生成三个100行字符,名字分别为my1,my2和my3的文本文件(8)在vi编辑my1状态下查看当前目录,使用搜索字符串、删除和粘贴功能,使用替换命令及存盘退出、存盘不退出和不存盘退出命令。

文本预览