当前位置:文档之家› vi编辑器常用命令

vi编辑器常用命令

vi编辑器常用命令
vi编辑器常用命令

VI常用操作宝典

来源: ChinaUnix博客日期: 2008.10.05 19:25(共有0条评论) 我要评论

.vimrc文件位置

对于 Unix:

:!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc

对于 MS-DOS, MS-Windows, OS/2:

:!copy $VIMRUNTIME/vimrc_example.vim $VIM/_vimrc

对于 Amiga:

:!copy $VIMRUNTIME/vimrc_example.vim $VIM/.vimrc

.vim全局变量目录

Unix ~/.vim/plugin/

PC 和 OS/2 $HOME/vimfiles/plugin 或 $VIM/vimfiles/plugin

Amiga s:vimfiles/plugin

Macintosh $VIM:vimfiles:plugin

RISC-OS Choices:vimfiles.plugin

1)文件操作

vi FileName 打开文件 FileName,并将光标置于第一行首。

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

vi + FileName 打开文件 FileName,并将光标置于最后一行。

vi + /pattern FileName 打开文件 FileName,并将光标置于其中第一个于 pattern 匹配的字符串处。 vi –r FileName 在上次正用 vi 编辑 FileName 发生系统崩溃后,恢复FileName。

vi File1 … Filen打开多个文件,依次对之进行编辑。

:%!xxd 以十六进制查看

:%!xxd -r 从十六进制返回

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

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

:g/^.*uid.*;$/nu 查找含 uid 且以;结尾的行,并显示行号

:g/^.*uid.*;$/m 59 查找含 uid 且以;结尾的行,并把这些行move到第59行

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

:n1,n2 w filename 将 n1 行到 n2 行之间的内容保存到文件 filename 中

:n1,n2 w! Command 将文件中n1行到n2行的内容作为 Command的输入并执行之,若不指定n1、n2,则将整个文件内容作为 Command 的输入。

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

:nr 把插入到第n行

:so 读取,再执行文件里面的命令 (译注--文件中的命令应该都是一些ex命令)

:l1,l2w 把第l1和第l2行之间的文本写到中去

:w >> 添加到末尾. 也可以使用行号

: e! 重新编辑当前文件,忽略所有的修改

·(、[、{、)、]、}对应显示

% 显示当前(、[、{ 、)、] 、}的对应项

·(、[、{、)、]、}内数据选择

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

diB 删除{}中的内容

ab 选择()中的内容

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

aB 选择{}中的内容

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

·语法提示与自动补齐

★插入模式下的单词自动完成

★行自动完成(超级有用)

1)设置建立ctags

#ctags -f _tags -R $JAVA_HOME/src /var/www/html/iychina/lib/

#ctags -f _tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686

# VIMRUNTIME=/usr/local/vim7/share/vim/vim70aa

# cp _tags ${VIMRUNTIME}/tags/_tags

2)设置~/.vimrc

"标签文件位置

set tags=$VIMRUNTIME/tags/_tags

3)使用

^p 自动补齐上下文已有相近项

^n 自动补齐~/.tags中的相近函数

^] 显示~/.tags中的光标下的函数的原型, 显示函数原型列表,输入数字后按回车,则显示函数定义原型按^t退出函数

:pta 函数名或^w} 预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开

K 显示光标下的C函数的man说明手册

CTRL-X CTRL-F 文件名

CTRL-X CTRL-L 整行

CTRL-X CTRL-D 宏定义 (包括包含文件里的)

CTRL-X CTRL-I 当前文件以及所包含的文件

CTRL-X CTRL-K 字典文件内的单词

CTRL-X CTRL-T 同义词词典文件内的单词

CTRL-X CTRL-] 标签

CTRL-X CTRL-V Vim 命令行

全能补全的热键是 CTRL-X CTRL-O。显然,O 在这里代表全能 (Omni),这样方便我们记忆。让我们以编辑C 程序为例:

{

struct foo *p;

p->

光标在 "p->" 之后。现在键入 CTRL-X CTRL-O。

Vim 会给你提供一个可选项的列表,这些可选项为 "struct foo" 所拥有。

这和使用 CTRL-P 有很大不同,后者补全任意单词,而我们这里只要求 "struct foo" 的成员。

大家一般都知道,在 Vim 的帮助窗口中的关键字上双击鼠标或者键入―Ctrl-]‖即可跳转至该关键字相关的帮助主题。不过,―跳转至匹配的关键字‖这一功能并不仅仅局限于帮助文件。只要有合适的 tags 文件(参见―:help tags-file-format‖),我们同样可以在源代码中使用这个方便的功能,跳转到与关键字匹配的―标记‖处(通常是源代码中某一函数、类型、变量或宏的定义位置)。

要产生 tags 文件,通常我们使用 Exuberant Ctags [15]。一般的 Linux 发布版中均带有这一工具。Ctags 带有的选项数量极多,此处我们仅简单介绍如何在一个典型的多文件、多层目录的项目中使用其基本功能:我们只需在项目的根目录处键入―ctags -R .‖,Ctags 即可自动在文件中查找、识别支持的文件格式、生成 tags 文件。目前 Exuberant Ctags 支持多达 33 种编程语言 [16],包括了 Linux 下常用的 C、C++、Java、Perl、PHP 等。有了 tags 文件,以下的 Vim 命令就可以方便使用了(进一步的信息可参考―:help tags-and-searches‖):

?:tag 关键字(跳转到与―关键字‖匹配的标记处)

?:tselect [关键字](显示与―关键字‖匹配的标记列表,输入数字跳转到指定的标记)

?:tjump [关键字](类似于―:tselect‖,但当匹配项只有一个时直接跳转至标记处而不再显示列表)?:tn(跳转到下一个匹配的标记处)

?:tp(跳转到上一个匹配的标记处)

?Ctrl-](跳转到与光标下的关键字匹配的标记处;除―关键字‖直接从光标位置自动获得外,功能与―:tags‖相同)

?g](与―Ctrl-]‖功能类似,但使用的命令是―:tselect‖)

?g Ctrl-](与―Ctrl-]‖功能类似,但使用的命令是―:tjump‖)

?Ctrl-T(跳转回上次使用以上命令跳转前的位置)

当我们在项目的根目录下工作时,上面这些命令工作得很好。但如果我们进到多层目录的里层再运行 Vim 打开文件时,这些命令的执行结果通常就变成了错误信息―E433: No tags file‖。这是因为缺省 Vim 只在文件所在目录和当前目录下寻找 tags 文件,而我们前面只在项目的根目录下生成了 tags 文件,Vim 无法找到该文件。解决方法有好几种,我认为一般较简单的做法是对每个项目都在 .vimrc 文件中增加一个路径相关设定。假设我们有两个项目,位置分别是 /home/my/proj1 和 /home/my/proj2,那我们可以使用:

au BufEnter /home/my/proj1/* setlocal tags+=/home/my/proj1/tags

au BufEnter /home/my/proj2/* setlocal tags+=/home/my/proj2/tags

Vim 选项 tags 用于控制检查的 tags 文件,缺省值为―./tags,tags‖,即前面所说的文件所在目录下和当前目录下的 tags 文件。上面两行自动命令告诉 Vim,在打开项目目录下的文件时,tags 选项中的内容要增加项目的 tags 文件的路径。进一步信息可参看―:help 'tags'‖。

·变量定位

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

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

·编译选项

F9 编译或执行当前程序

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

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

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

.鼠标支持

不管是文本界面还是图形界面的 Vim,都支持鼠标。不过,在文本界面中,鼠标支持缺省没有被激活;这就意味着,在终端上使用鼠标,所有的功能仍和没有使用 Vim 时相同,并不受 Vim 影响。要激活文本界面中的鼠标支持也很容易,只需要执行一句―:set mouse=a‖即可。

启用了鼠标支持之后,Vim 主要支持的鼠标操作有:

?单击移动光标到点击的位置;

?在帮助的关键字上双击显示该关键字相关的帮助信息;

?在普通文本上双击选中点击位置的单词;

?拖动鼠标选中文本;

?使用鼠标滚轮滚动当前缓冲区中的文本;

?多窗口编辑时可以拖动窗口分栏的位置。

进一步的信息可参看―:help 'mouse'‖、―:help mouse-using‖和―:help scroll-mouse-wheel‖。

特别需要值得一提的是,在远程访问 Linux 系统时也是可以使用鼠标的。如果使用 X Window 系统,自然不必说;而使用 SSH 远程连接时,大部分 Linux 下的终端客户程序,如 XTERM、GNOME-Terminal [13]、较新版本的 Konsole [14],以及 Windows 下的 PuTTY,支持鼠标的使用:你只需简单地启动 Vim、执行一句―:set mouse=a‖就可以了(当然,也可以把上面的语句去掉起始的冒号放到 .vimrc 文件中)。

.空格、制表符和缩进

== 缩进当前行

=a{ 或 =a} 缩进当前行所在{....}之间的所有代码

gg=G 重新缩进整个文件

^t 插入模式下自动缩进当前行

>> 右移当前行一个shiftwidth个空格

>i} 右移当前行所在的{....}内的所有代码(不含"{"和"}")一个shiftwidth个空格

>a} 右移当前行所在的{....}内的所有代码(含"{"和"}")一个shiftwidth个空格

对于编写代码,缩进是最基本的概念之一。至于缩进是使用空格还是制表符(Tab),或者缩进是否正好使用一个制表符来表示,很多程序员,特别是 Windows 开发出身的程序员,很容易混淆。幸好,Vim 对于这些概念有非常完整的支持,足以应付各种复杂的情况。以下是相关的主要 Vim 选项:

?shiftwidth(缩进的空格数);

?tabstop(制表符的宽度);

?expandtab(是否在缩进和遇到 Tab 键时使用空格替代;使用 noexpandtab 取消设置);

?softtabstop(软制表符宽度,设置为非零数值后使用 Tab 键和 Backspace 时光标移动的格数等于该

数值,但实际插入的字符仍受 tabstop 和 expandtab 控制);

?autoindent(自动缩进,即每行的缩进值与上一行相等;使用 noautoindent 取消设置);

?cindent(使用 C 语言的缩进方式,根据特殊字符如―{‖、―}‖、―:‖和语句是否结束等信息自动调整缩进;在编辑 C/C++ 等类型文件时会自动设定;使用 nocindent 取消设置);

?cinoptions(C 语言缩进的具体方式,请参考―:help cinoptions-values‖);

?paste(粘贴模式,会取消所有上述选项的影响来保证后面的操作——通常是从剪贴板粘贴代码——保持原有代码的风格;使用 nopaste 取消设置)。

下面给出一些常用的组合:

?shiftwidth=4 tabstop=4:很多 Windows 出身的程序员会习惯这样的设置,让缩进等于制表符宽度。

?shiftwidth=4 tabstop=8:很多 Unix 程序员的设置,仍使用较常用的 4 格缩进,但制表符宽度为标准的 8。

?cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1 shiftwidth=2 tabstop=8:标准的 GNU 编码风格的设置,对 Vim 缺省的 C 缩进风格作了很多微调,比如,if 语句下的―{‖、―}‖要在―if‖后缩进两格,但函数定义部分―{‖、―}‖仍和函数名一行对齐。开源软件经常使用该种缩进风格。

在编辑代码时一个很有用的命令是调整代码缩进,可以很方便地增加(或减少)若干级缩进,并自动根据选项设定使用正确的空格或制表符。只需要使用―V‖选中你要调整的代码行,然后键入―‖)即可增加(或减少)一级缩进;在键入―‖)之前键入数字则可以指定增加(或减少)的缩进级数。

我们要讨论的最后一个相关的命令是―:retab‖。在设定了 expandtab 选项时,该选项会把所有的制表符转换成空格。在没有设定 expandtab 选项时,使用―:retab!‖可把空白字符转换成制表符(可能误转换,慎用),使用―:retab n‖可以把 tabstop 重置为 n,并转换含制表符的连续空白字符为适当的制表符和空格的组合以保证含制表符的行看起来没有任何变化。详细信息请参看―:help :retab‖。

制表符和空格'tabstop' 在缺省状态下被设定为 8。尽管你可以改变它,但很快你就会遇到麻烦。其它

的程序不知道你用的制表符间隔值是多少,你的文件看起来会一下子改变许多。另外,很多打印机都将制表符间隔值固定为 8。所以最好还是保留 'tabstop' 值不变。(如果你编辑使用其它制表符间隔值的文件,请参考 |

25.3

| 来修正。)

如果使用 8 个空格来缩进程序,你很快就会走到窗口的最右端;而用 1 个空格又看

不出足够的差别。因此很多人喜欢用 4 个空格。这的确是个很好的折衷。

由于一个制表符 () 是 8 个空格,而你又想使用 4 个空格来缩进,这样你就无

法使用制表符来完成缩进。这里有两种解决办法:

1. 混合使用制表符和空格。由于一个制表符占用 8 个空格的位置,你的文件会含有更少的字节数。插入或删除一个制表符也要比 8 个空格快很多。

2. 只用空格。这就避免了那些使用不同制表符间隔值的文件所带来的麻烦。

幸运的是,Vim 能够同时很好地支持这两种方式。

混合使用空格和制表符

如果你使用制表符和空格的组合,你直接按正常情况编辑就行。Vim 缺省状态下,能够很好地处理这些情况。

通过设定 'softtabstop' 可以使工作变得更简便。这个选项能使看起来像是

被设定为 'softtabstop' 所指定的值,但实际上使用的确是制表符和空格的组合。

当你执行下面的命令后,你每次按下键,光标都会移动到下一个 "4 列" 边

界:

:set softtabstop=4

当你在第一列按下键后,4 个空格会插入到文本中;再次按下键,Vim 会

先删除那 4 个空格,然后再插入一个制表符。Vim 会尽可能地使用制表符,并辅以空格填补。

删除会以相反的方式进行。键总是删除 'softtabstop' 指定的数量。Vim 尽可

能地使用制表符,而用空格来填补空隙。

下面的例子显示了多次输入制表符然后使用的情况。"." 代表一个空格而

"------->" 代表制表符。

输入结果

....

------->

------->....

------->

....

另一种方法是使用 'smarttab' 选项。当它被设定,Vim 对每个在缩进行中的制表符使用'shiftwidth',而对在第一个非空字符后输入的使用真的制表符。但键不

会像在 'softtabstop' 选项下那样工作。

只用空格

如果你不想在文件中出现制表符,可以设定 'expandtab' 选项:

:set expandtab

当这个选项被设定,键会插入一系列的空格。这样你可以获得如同插入一个制表符

一样数量的空格。但你的文件中并不包含真正的制表符。

退格键 () 每次只能删除一个空格。这样如果你键入了一个,你需要键入

8 次才能恢复。如果你在调整缩进中,输入 CTRL-D 会更快些。

制表符与空格的相互转换

设定 'expandtab' 选项并不会影响已有的制表符。如果你想将制表符转换为空格,可以用 ":retab" 命令。使用下面的命令:

:set expandtab

:%retab

Vim 会在所有缩进中使用空格而非制表符。但是,所有非空字符后的制表符不会受到影响。如果你想要转化这些制表符,需要在命令中加入 !:

:%retab!

这不大安全。因为它也许会修改字符串内的制表符。要检查这种情况是否存在,可以执行:

/"[^"\t]*\t[^"]*"

这里建议你不要在字符串中直接使用制表符。请用 "\t" 来替代,麻烦会少些。

将空格转化为制表符的命令则恰好相反:

:set noexpandtab

:%retab!

3)光标移动

·字符

h 光标左移一个字符。

l 光标右移一个字符。

.用%来在配对的#ifdef...#else...#endif, {}, [], ()间移动

#ifdef USE_POPEN

fd = popen("ls", "r")

#else

fd = fopen("tmp", "w")

#endif

[# 到达#ifdef或#else

]# 到达#else或#endif

[[ 到达最外层的{

]] 到达最外层的}

[{ 到达当前块的开始

]} 到达当前块的结尾

[m 到达前一个方法的开始

]m 到达下一个方法的开始

[] 到达前一个函数的结尾

]] 到达下一个函数的开始

对于/*...*/

[/ 到达注释的开始

]/ 到达注释的结尾

[| 查询C程序中变量的声明是int还是unsigned ^o 在足迹间流动

:checkpath c程序中用于列出包含文件的可定位情况,即是否能找到所包的文件·字

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

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

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

·句

) 光标移至句尾。

( 光标移至句首。

·段

} 光标移至段落开头。

{ 光标移至段落结尾。

·行

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

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

Enter 光标下移一行。

nG 光标移至第 n 行首。

n+ 光标下移 n 行。

n- 光标上移 n 行。

n$ 光标移至第 n 行尾。

0 光标移至当前行首。

$ 光标移至当前行尾。

:number 回车移动到第number行

number z 回车同上

这两个比 number G 好用的多毕竟大写的G敲起来麻烦

[[ 定位到上一个函数

]] 定位到下一个函数

% 定位到匹配的括号处

·屏幕

H 光标移至屏幕顶行。

M 光标移至屏幕中间行。

L 光标移至屏幕最后行。

Ctrl+u 向文件首翻半屏。

Ctrl+d 向文件尾翻半屏。

Ctrl+f 向文件尾翻一屏。

Ctrl+b 向文件首翻一屏。

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

4)插入

# 在文件中插入行号(不是显示行号,是插入!)

★:g/^/exec "s/^/".strpart(line(".")." ", 0, 4)

·光标

i 在光标前插入。

a 在光标后插入。

·行

I 在当前行首插入。

A 在当前行尾插入。

o 在当前行之下一新行插入。

O 在当前行之上新开一行插入。

合并多行10,20 join 合并第10到20行的内容或 v模式下选中多行执行命令 join 5)替换

r 替换当前字符。

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

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

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

6)修改

ncw 或 nCW 修改指定数目的字符。

nCC 修改指定数目的行。

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

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/s/Emacs/Vim/g 前面的'是vim自动添加的

# 在多个文档中搜索

:bufdo /searchstr

:argdo /searchstr

.folder

可以在左花括号({)上按;c(加号),即可隐藏,解除隐藏则在那行上按空格即可

添加如下两行到你的.vimrc文件中即可

set foldmethod=manual

map ;c v%zf

8)复制与剪切

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

ddp 上下两行的位置交换

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

:set paste 粘贴时常常都搞得天下大亂,此设置可以做为开关键改变这种情况9)窗口操作

F6 键打开一个当前目录浏览窗口

:vne [filename]

:sp [filename]

:S [filename]

:new [filename]

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

^w = 窗口等宽

:res -n 窗口高度减小n

:res +n 窗口高度增大n

:vert res -n

:vert res +n

CTRL-W h 跳转到左边的窗口

CTRL-W j 跳转到下面的窗口

CTRL-W k 跳转到上面的窗口

CTRL-W l 跳转到右边的窗口

CTRL-W t 跳转到最顶上的窗口

CTRL-W b 跳转到最底下的窗口CTRL-W H 把当前窗口移到最左边CTRL-W J 把当前窗口移到最下边

CTRL-W L 把当前窗口移到最右边

:qa 全部退出

:wa 全部保存

:qa! 全部无条件退出

TabPage

1):tabnew [++opt] [+cmd] {file} Open a new tab page

2):tabc

3):tabo

4):tabn || gt

:tabn n || n gt

5):tabp || gT

6):tabr

7):tabl

8):tabmove N

9):tabd[o] {cmd} Execute {cmd} in each tab page.

.打开字符串所标识的文件名

1)v

2)选择串

3)gf

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

:1,$s/^M//g

11)书签

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

将光标移到想做标记的位置。假如做一个名为―debug1‖的标记,那么用户可在命令模式下输入做标记的命令―mdebug1‖,然后敲入回车键,一个名为―debug1‖的标记就做好了。

接下来用户可以随意将光标移到其它的位置,当在命令模式下输入―`debug1‖后,就能快速回到―debug1‖的标记所在行的行首。

12)删除操作

:%s/r//g 删除DOS方式的回车^M

:%s= *$== 删除行尾空白

:%s/^(.*)n1/1$/ 删除重复行

:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf

:%s/// 又是删除多行注释(咦?为什么要说「又」呢?)

:g/^s*$/d 删除所有空行

:%s/^[\s|\n]*$//g 删除所有含空白或\n换行符的行

:g! /^dd/d 删除不含字符串'dd'的行

:v/^dd/d 同上(译释:v == g!,就是不匹配!)

:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行

:v/./.,/./-1join 压缩空行

:g/^$/,/./-j 压缩空行

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

d0 删至行首。

d$ 删至行尾。

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

x 或 X 删除一个字符。

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

^R 恢复u的操作

J 把下一行合并到当前行尾

V 选择一行

^V 按下^V后即可进行矩形的选择了

aw 选择单词

iw 内部单词(无空格)

as 选择句子

is 选择句子(无空格)

ap 选择段落

ip 选择段落(无空格)

D 删除到行尾

x,y 删除与复制包含高亮区

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

d0 删除到某一行的开始位置

d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符) dw 删除到某个单词的结尾位置

d3w 删除到第三个单词的结尾位置

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

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

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

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

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

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

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

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

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

dd 删除当前行

d/text 删除从文本中出现―text‖中所指定字样的位置,

一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

dfc 删除从文本中出现字符―c‖的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容

dtc 删除当前行直到下一个字符―c‖所出现位置之间的内容

D 删除到某一行的结尾

d$ 删除到某一行的结尾

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

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

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

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

d1G 删除直到工作缓存区开始的内容

修改命令操作

r 更改当前字符

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

c3w 修改到第三个单词的结尾位置

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

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

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

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

c0 修改到某行的结尾位置

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

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

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

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

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

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

C 修改到某一行的结尾

cc 修改当前行

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

. 重复上一次修改!

.utf-8编码

比如,原有1个文档为utf-8编码的,现在要将它改为cp936编码,可用如下指令

:set fileencoding=cp936

然后再保存文件:w

.文本中的TAB转化为固定长度的空格

输入 :set expandtab

输入 :set tabstop=4

输入 :retab

13)Set 选项设置

set all 列出所有选项设置情况。

set term 设置终端类型。

set ignorecase 在搜索中忽略大小写。

set list 显示制表位(^I)和行尾标志($)。

set number 显示行号。

set showmode 示用户处在什么模式下

set report 显示由面向行的命令修改国的行数目。

set terse 显示简短的警告信息。

set warn 在转到别的文件时,若没有保存当前文件则显示 No write 信息。set autowrite 在―:n‖和―:!‖命令之前都自动保存文件

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

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

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

set fo=tcromB1 自动加上wrap....

autoindent (ai) noai 使新行自动缩进,和上(下)行的位置对齐

autoprint (ap) ap 每条命令之后都显示出修改之处

autowrite (aw) noaw 在:n,:!命令之前都自动保存文件

beautify (bf) nobf 在输入的时候忽略所有的控制字符(除了制表键(tab),换行(newline),进纸(formfeed))

directory= (dir=) /tmp 存放缓冲区的目录名

edcompatible noedcompatible 在替换的时候使用类ed的用法

errorbells (eb) errorbells 出错的时候响铃

exrc (ex) noexrc 允许在主目录(home)外面之外放.exrc文件

hardtabs= (ht=) 8 设置硬制表的边界

ignore case (ic) noic 正规式里忽略大小写

lisp nolisp 打开lisp模式

list nolist 显示所有的制表键和行的结尾

magic agic 可以使用更多的正规表达式

mesg mesg 允许向终端发送消息

number (nu) nonumber 显示行号

open open 允许开放和可视化

optimize (opt) optimize 优化吞吐量,打印时不发回车

paragraphs= (para=) IPLPPPQPPLIbp 设置{ & }的分界符

prompt prompt 命令模式下的输入给出:的提示符

readonly (ro) noro 除非用!号否则不准保存文件

redraw noredraw 当编辑的时候重绘屏幕

remap remap 允许宏指向其他的宏

report= 5 如果影响的行数>这个数的话就报告

scroll 1/2 window 下卷屏幕时滚动屏幕的数目, 同样这也是z命令输出的行数(z 输出2倍滚屏的大小)

sections= SHNHH HU 定义节的末尾(当使用命令[[ 和 ]] 时)

shell= (sh=) /bin/sh 缺省的SHELL,如果设置了环境变量 SHELL的话,就使用变量shiftwidth= (sw=) 8 当使用移动(shift)命令时移动的字符数

showmatch (sm) nosm 显示{, }, (, ), [, 或者 ] 的匹配情况

showmode noshowmode 显示你处在什么模式下面

slowopen (slow) 插入之后不要立刻更新显示

tabstop= (ts=) 8 设置制表停止位(tabstop)的长度

taglength= (tl=) 0 重要标记的字符个数(0表示所有的字符)

tags= tag, /usr/lib/tags 定义包含标记的文件路径

term = 设置终端类型

terse noterse 显示简短的错误信息

timeout (to) timeout 一秒钟后键盘映射超时

ttytype= 设置终端类型

warn warn 显示"No write since last change"信息

window= (w=) 可视模式下窗口的行数

wrapmargin= (wm=) 0 右边距,大于0的话最右边的单词将折行,留出n个空白位置wrapscan (ws) ws 查找到文件尾后再重头开始

writeany (wa) nowa 可以保存到任意一个文件去

14)特殊字符

^ 匹配字符串位于行首。

$ 匹配字符串位于行尾。

. 用在模式串中,表示任何单个字符。

在命令模式下,重复上次的命令。

* 在模式串中,表示其前字符可出现任意多次。

[] 用在模式串中,表示指定方位内字符,其中可用-表示一个字

符范围,用^ 表示不在某个范围内的字符。

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:替换当前字符

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操作命令大全完整版

v i操作命令大全 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

一vi的操作模式 vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。 在输入模式下,按Esc键切换到指令模式下。 在指令模式下,按输入指令(i、a、o等)进入输入模式。 二进入vi $ vi filename 直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。 如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。 $ view filename 以只读方式打开文件filename 三指令模式 3.1进入输入模式 a 在当前游标之后输入 A 在当前行之末输入 i 在当前游标之前输入

I 在当前行之首输入 o 在当前行之下新增一行,并在新增行输入 O 在当前行之上新增一行,并在新增行输入 输入结束后,按Esc键退出输入模式。 3.2游标移动 h 向左移动一个字元 l 向右移动一个字元 j 向下移动一个字元 k 向上移动一个字元 b 左移一个单词,至词首 w 右移一个单词,至词尾 0 移到当前行行首 $ 移到当前行行尾 + 移至下一行的行首 - 移至上一行的行首 H 移至视窗的第一行 M 移至视窗的中间一行 L 移至视窗的最后一行 G 移至该文件的最后一行 nG 移至该文档的第n行 n+ 下移n行 n- 上移n 行 3.3视窗移动 * + f 视窗下卷一页 * + b 视窗上卷一页 + d 视窗下卷半页 + u 视窗上卷半页 * + e 视窗下卷一行 * + y 视窗上卷一行 3.4删除操作 x 删除游标所在字元 X 删除游标前一字元 dw 从游标当前位置开始向后删除一个单词 db 从游标当前位置开始向前删除一个单词 d0 从行首删除至当前游标位置 d$ 从游标当前位置删除至行尾 dd 删除游标所在行 D 同d$

操作系统实验报告 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 并且说明这是一个新建的文件。这行信息是临时的,新的信息可以覆盖它。

VI的用法

vi的简单用法 进入vi后有两种模式 1.编辑模式 2.命令模式 进入vi后默认是命令模式,所以不要乱按就会得到dd的警告声,要输入文字的话请按a 后i 就可以开始输入文字拉! 输入结束后请按esc键回命令模式 输入q就是退出 输入wq就是存盘后退出 输入q!放弃存盘强行退出 Vi 的使用 Vi 已经是Unix 系统中标准的文字编辑器, 每个网管人员都必须熟悉它, 因为你会在维护系统时常常遇到它. Vi 对初学者而言, 第一印象总是不好, 觉得它难用. 其实, 大家在用惯了办公室软件之后, 再回过头来用这些未见过的怪物, 难免无法适应, 这是很正常的. 但别忘了, 各位都将是学校中重要网管的人员,您的角色不再是纯粹的使用者, 而是一位面对复杂网络的管理者及问题解决者, 你必须能够亲手操控你的系统, 设定你的系统, 调整你的系统, 而这个过程, 你就不得不去面对Vi. 不要拿Word 的使用习惯来挑剔Vi, 它们的作用方向不同, 风格也不同, 一旦您能上手, 也许你会喜欢上它. Vi 是网络管理人员的标准左右手. So, 打开你的心, 接受会比反弹更有收获. 二. 开启档案, 关闭档案 vi 檔名开启档案 : 进入命令列的方法 q 离开(命令列) wq 存盘然后离开(命令列) q! 放弃存盘, 强迫离开(命令列) ZZ 存盘然后离开(不在命令列使用) :e 檔名在Vi 中开启档案 三. Vi 的操作模式: Vi 有二种主要的操作模式, ESC 键为单向的切换键(由本文输入模式回到编辑命令模式) 编辑命令模式: 要vi 做一些特定目的的动作. 如插入,附加,取代,修改,删除,移动光标,搜寻等等. 若是存盘等动作, 则需在命令列中下达, 欲切换至命令列, 需先按: esc 本文输入模式: 在此模式下, 任何字符, 皆被视为输入的数据. 一开始进入Vi 之后, 即进入编辑命令模式, 你输入的每一个字符, 皆被预视为一个指令. 有效的指令会被接受, 若是无效的指令, 会产生beep beep 声, 以示警告. 若想做输入的动作, 必须切换为本文输入模式, 切换的方法, 只要单按一个特殊意义的字符键即可, 如下所示: 按i 或I 插入状态按 a 或A 附加状态按R 取代状态R 会进行连续字符取代按s 或S 删除一个字符;删除光标所在那一列按cw, c2b, c$, c0 修改状态 按o 或O 新增空白列 你不必一下子全用上, 只要会i, a, o 这个三个模式即可胜任愉快, 因为大部份时候, 你也只用这三个.

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/96795456.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替换

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;向文件首翻一屏

Vi编辑器详细操作方法

熟悉VI 是学习UNIX 系统的一个关口 vi 是visual edit 的缩写 进入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:显示由面向行的命令修改过的数目

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"将缓冲区中的内容粘贴到当前文档

实验三 Shell和Vi编辑器

实验三Shell和Vi编辑器 一. 实验目的: 1. 熟悉shell的各项功能; 2. 掌握Linux系统终端方式使用的编辑器vi; 3. 学习vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令。 二. 实验内容: 1. 练习使用shell的各项功能; 2. 熟练掌握vi编辑器的使用。 三. 实验练习: 1. 熟悉Shell环境,使用Shell的各种功能 1) 命令补齐功能 用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。 用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由于以m开头的命令太多, shell会提示是否显示全部的可能命令,输入n。 再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。 在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的 字母,再按tab键,让shell补齐剩下的命令。 最后输入要创建的目录名,按回车键执行命令。 多试几个命令利用tab键补齐。 2) 命令别名功能 输入alias命令,显示目前已经设置好的命令的别名。 设置别名ls为ls –l,以长格形式显示文件列表:#alias ls=‘ls -l’。 显示别名ls代表的命令,确认设置生效:#alias ls。 使用别名ls显示当前目录中的文件列表。 在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命令列表:#\ls。 删除别名ls:#unalias ls。 显示别名ls,确认删除别名已经生效:#alias ls。 最后再用命令ls 显示当前目录中的文件列表。 写出定义别名cde为:cd /etc的命令()。 3) 输入、输出重定向和管道 (1) 输出重定向 用ls命令显示当前目录中的文件列表:#ls –l。 使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:#ls –l > list。 查看文件list中的内容,注意在列表中会多出一个文件list,其长度为0。这说明shell是首先创建了 一个空文件,然后再运行ls命令:#cat list。 再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。这次 使用管道符号>>进行重定向:#ls –l >> list。 查看文件list的内容,可以看到用>>进行重定向是把新的输出内容附加在文件的末尾,注意其中两行 list文件的信息中文件大小的区别:cat list。 重复命令#ls –l > list。 再次查看文件list中的内容,和前两次的结果相比较,注意list文件大小和创建时间的区别,完成 课后第一题。 (2) 输入重定向 使用输入重定向,把上面生成的文件list用mail命令发送给自己:#mail root < list。 查看新邮件,看看收到的新邮件中其内容是否为list文件中的内容。

Vi基本操作

Vi基本操作 首先看一下vi的三种模式的转换图: 需要先按Esc进入普通模式,这按“:”即进入了命令模式。再命令模式下想进入编辑模式, 则需要先按Esc键,然后再按“ i,a,o,O,s,S ”等进入编辑模式。 三种模式的简单说明: 1普通模式: 使用Vi打开一个文件后,默认是普通模式,即不能进行输入,仅可以执行一些操作命令; 2、编辑模式: 在此模式下可以进行常规的输入操作,可以在左下角看到插入的标记“--插入--”或“-- INSERT -- ”; 3、命令模式:在命令模式下,主要是执行保存、退出、搜索、替换等操作,则左下角可以看到“:",并有光标闪烁等待输入命令。

普通模式: 普通模式转为编辑模式 0:在光标所在行的上一行新增一行 o:在光标所在行的下一行新增一行 a:从当前光标所在的位置的下一个字符开始输入 i :在光标所在的位置插入新输入的字符 s:删除光标后的一个字符,然后进入插入模式; S:删除光标所在的行,然后进入插入模式; 移动 h:将光标向左移动一格 I :将光标向右移动一格j :将光标向下移动一格k:将光标向上移动一格 $:将光标移到当前行的最后面 数字0:将光标移到当前行的最前面 G :将光标移到最后一行的开头gg:将光标移到首行开头w或W将光标移到下一个字若输入“ w”,则标点符号如“ .”,“,”,“/ ”等字符都被当成一个字e或E:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符。 b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。 翻页 ctrl+b :将页面向前卷动一页 ctrl+f :将页面向后卷动一页 ctrl+u :将光标向前移动半页 ctrl+d :将光标向右移动半页 ctrl+e :屏幕向下卷动一行,也可以说文章和光标向上卷动一行 ctrl+y :屏幕向上卷动一行,也可以说文章和光标向下卷动一行 复制文字 yy :可将光标目前所在位置的正行复制,复制时不会将文字反白显示 nyy :其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下 面2行一起复制 yw:可复制光标所在位置到整个单词结束的字符 nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面 的2个字一起复制 P:可将复制的文字粘贴到当前光标所在的位置。若复制的是整行文字,则会将整行内容粘贴在光标所在位置的下一行 shift+P 在光标之前粘帖

ubuntu_vi编辑器使用

ubuntu下文本编辑器VI[转] 文件编辑器vi 作者:北南南北 来自:https://www.doczj.com/doc/96795456.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行

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 命令

相关主题
文本预览
相关文档 最新文档