📄 命令大集合.htm
字号:
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” 12 lines, 125 characters
<br>
<br>光标将位于文件example1.c中的第5行上。
<br>
<br>如果希望在进入Vi之后光标处于文件最末行,则只需把命令中附加项“+”后面的数字n省略掉即可。
<br>
<br>
<br>在进入Vi时,除了可以指定一个光标起始行号之外,还可以在命令中指定一个模式串,此时在进入Vi后,光标就处于文件中第一个与指定模式串相匹配的那行上。
<br>
<br>[例4] 键入命令:
<br>
<br>$ vi +/int example1.c
<br>
<br>屏幕显示如下:
<br>
<br>#include
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” 12 lines, 125 characters
<br>
<br>光标将位于文件example1.c中的第3行上。
<br>
<br>
<br>使用Vi可以同时编辑多个文件,只要在进入Vi的命令中写入所要操作的文件即可,还可以使用通配符。
<br>
<br>[例5] 键入命令:
<br>
<br>$ vi *.cat
<br>
<br>就可以编辑所有后缀为cat的文件了。当然,您还可以使用shell中内置的模式匹配来装载文件,这样会更富技巧性。一旦您在命令行中包含了所有的待编辑文件名,就可以在Vi中方便地移来移去。
<br>
<br>退出Vi
<br>
<br>当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。
<br>
<br>
<br>在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。
<br>
<br>
<br>在末行模式下,输入命令
<br>
<br>:w
<br>
<br>Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。
<br>
<br>
<br>[例6]
<br>
<br>:w newfile
<br>
<br>此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:
<br>
<br>File exists (use ! to override)
<br>
<br>此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令
<br>
<br>:w! newfile
<br>
<br>否则可选择另外的文件名来保存当前文件。
<br>
<br>
<br>在末行模式下,输入命令
<br>
<br>:q
<br>
<br>系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:
<br>
<br>No write since last change (use ! to overrides)
<br>
<br>提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令
<br>
<br>:q!
<br>
<br>Vi放弃所作修改而直接退到shell下。
<br>
<br>
<br>在末行模式下,输入命令
<br>
<br>:wq
<br>
<br>Vi将先保存文件,然后退出Vi返回到shell。
<br>
<br>
<br>在末行模式下,输入命令
<br>
<br>
<br>
<br>该命令的功能同命令模式下的ZZ命令功能相同。[/b]
<br>_________________
<br>碧轩
<br>人之初,性本色!
<br><a href="http://www.ourlinux.net/">http://www.ourlinux.net/</a>
<br><a href="http://yum.ourlinux.net/">http://yum.ourlinux.net/</a>
<br><a href="http://apt.ourlinux.net/">http://apt.ourlinux.net/</a>
<br><a href="http://download.ourlinux.net/">http://download.ourlinux.net/</a>
<br>游戏交易:<a href="http://www.0579tt.com/">http://www.0579tt.com/</a>
<br>
<br>最后进行编辑的是 bixuan on 2003-04-12, 9:46am, 总计第 1 次编辑
<br>
<br>返回页首
<br>
<br>
<br>bixuan
<br>公社特别嘉宾
<br>
<br>
<br>
<br>注册: Nov 23, 2002
<br>文章: 1994
<br>位置: 浙江金华
<br> 发表于: 2003-04-12, 9:08am 发表主题:
<br>
<br>--------------------------------------------------------------------------------
<br>
<br>Vi中的行号
<br>
<br>Vi中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是非常不方便的。为此Vi提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。
<br>
<br>使用的命令为:在末行方式下输入命令:
<br>
<br>:set number
<br>
<br>需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件内容的一部分。
<br>
<br>在一个较大的文件中,用户可能需要了解光标当前行是哪一行,在文件中处于什么位置,可在命令模式下用组合键<Ctrl+g>,此时Vi会在显示窗口的最后一行显示出相应信息。该命令可以在任何时候使用。
<br>
<br>[例7]
<br>
<br>#include <stdio.h>
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” [Modified] lines 4 of 10 --40%-- col 11
<br>
<br>在末行方式下,我们可以输入命令nu(单词number的缩写)来获得光标当前行的行号与该行内容。
<br>
<br>光标移动操作
<br>
<br>全屏幕文本编辑器中,光标的移动操作无疑是最经常使用的操作了。用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达所期望的位置处进行编辑。
<br>
<br>Vi中的光标移动既可以在命令模式下,也可以在文本输入模式下,但操作的方法不尽相同。
<br>
<br>在文本输入模式下,可直接使用键盘上的四个方向键移动光标。
<br>
<br>在命令模式下,有很多移动光标的方法。不但可以使用四个方向键来移动光标,还可以用h、j、k、l这四个键代替四个方向键来移动光标,这样可以避免由于不同机器上的不同键盘定义所带来的矛盾,而且使用熟练后可以手不离开字母键盘位置就能完成所有操作,从而提高工作效率。另外还可以用<Spacebar>、<Backspace>、<Ctrl+n>和<ctrl+p>四个键或组合键移动光标。且以上这三种键在实现功能上是等价的。除此之外,还有一些移动光标的命令。下面对它们的工作方式介绍如下:
<br>
<br><Spacebar>、&reg; (均称为右向键)
<br>
<br>右向键的作用是将光标向右移动一个位置。若在向右键前先输入一个数字n,那么光标就向右移动n个位置。例如5l表示光标向右移动5个位置。需要注意的是,光标移动不能超过当前行的末尾。若给定的n超过光标当前位置至行尾的字符个数,如果用右向键,光标只能移到行尾;如果用<Spacebar>,光标移到下面一行或几行的适当位置。
<br>
<br>h、<Backspace>、&not; (向左键)
<br>
<br>执行一次向左键,光标向左移动一个位置。同向右键一样,也可以在向左键的前面输入一个数字n,那么光标就向左移动n个位置。需要注意的是,如果用左向键,光标左移不能超出该行的开头;如果用<Backspace>,光标移到上面一行或几行的适当位置。
<br>
<br>j、<Ctrl+n>、&macr; (向下键)
<br>
<br>执行一次向下键光标向下移动一个位置(即一行),但光标所在的列不变。当这些命令前面加上数字n,则光标下移n行。
<br>
<br>Vi除了可以用向下键将光标下移外,还可以用<Enter>键和“+”键将光标下移一行或n行(不包括本行在内),但此时光标下移之后将位于该行的第一个字符处。例如:
<br>
<br>3j 光标下移3行,且光标所在列的位置不变。
<br>
<br>3+或3<Enter> 光标下移3行,且光标位于该行的行首。
<br>
<br>k、<Ctrl+p>、&shy; (向上键)
<br>
<br>执行一次向上键光标向上移动一个位置(即一行),但光标所在的列不变。同样在这些命令前面加上数字n,则光标上移n行。
<br>
<br>若希望光标上移之后,光标位于该行的行首,则可以使用命令“- ”。
<br>
<br>L (移至行首)
<br>
<br>L 命令是将光标移到当前行的开头,即将光标移至当前行的第一个非空白处(非制表符或非空格符)。
<br>
<br>$(移至行尾)
<br>
<br>该命令将光标移到当前行的行尾,停在最后一个字符上。若在$命令之前加上一个数字n,则光标下移n-1行并到达行尾。
<br>
<br>[行号] G(移至指定行)
<br>
<br>该命令将光标移至指定行号所指定的行的行首。这种移动称为绝对定位移动。
<br>
<br>[例8]
<br>
<br>#include <stdio.h>
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
<br>}
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>~
<br>
<br>“ example.c” 12 lines, 125 characters
<br>
<br>键入命令:6G后,屏幕显示如下:
<br>
<br>#include <stdio.h>
<br>
<br>main ( )
<br>
<br>{ int k ;
<br>
<br>for ( k=0 ; k<3 ; k++) add( );
<br>
<br>}
<br>
<br>add( )
<br>
<br>{ static int x=0;
<br>
<br>x++ ;
<br>
<br>printf(“x = %d\n”, x);
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -