当前位置:操作系统 > Unix/Linux >>

Linux教程-Vi的编辑操作及命令

Vi中的行号

  Vi中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是非常不方便的。为此Vi提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。

  使用的命令为:在末行方式下输入命令:

  :set number

  需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件内容的一部分。

  在一个较大的文件中,用户可能需要了解光标当前行是哪一行,在文件中处于什么位置,可在命令模式下用组合键,此时Vi会在显示窗口的最后一行显示出相应信息。该命令可以在任何时候使用。

  [例7]

  #include

  main ( )

  { int k ;

  for ( k=0 ; k<3 ; k++) add( );

  }

  add( )

  { static int x=0;

  x++ ;

  printf(“x = %d\n”, x);

  }

  ~

  ~

  ~

  ~

  ~

  “ example.c” [Modified] lines 4 of 10 --40%-- col 11

  在末行方式下,我们可以输入命令nu(单词number的缩写)来获得光标当前行的行号与该行内容。

  光标移动操作

  全屏幕文本编辑器中,光标的移动操作无疑是最经常使用的操作了。用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达所期望的位置处进行编辑。

  Vi中的光标移动既可以在命令模式下,也可以在文本输入模式下,但操作的方法不尽相同。

  在文本输入模式下,可直接使用键盘上的四个方向键移动光标。

  在命令模式下,有很多移动光标的方法。不但可以使用四个方向键来移动光标,还可以用h、j、k、l这四个键代替四个方向键来移动光标,这样可以避免由于不同机器上的不同键盘定义所带来的矛盾,而且使用熟练后可以手不离开字母键盘位置就能完成所有操作,从而提高工作效率。另外还可以用、、和四个键或组合键移动光标。且以上这三种键在实现功能上是等价的。除此之外,还有一些移动光标的命令。下面对它们的工作方式介绍如下:

  、® (均称为右向键)

  右向键的作用是将光标向右移动一个位置。若在向右键前先输入一个数字n,那么光标就向右移动n个位置。例如5l表示光标向右移动5个位置。需要注意的是,光标移动不能超过当前行的末尾。若给定的n超过光标当前位置至行尾的字符个数,如果用右向键,光标只能移到行尾;如果用,光标移到下面一行或几行的适当位置。

  h、、¬ (向左键)

  执行一次向左键,光标向左移动一个位置。同向右键一样,也可以在向左键的前面输入一个数字n,那么光标就向左移动n个位置。需要注意的是,如果用左向键,光标左移不能超出该行的开头;如果用,光标移到上面一行或几行的适当位置。

  j、、¯ (向下键)

  执行一次向下键光标向下移动一个位置(即一行),但光标所在的列不变。当这些命令前面加上数字n,则光标下移n行。

  Vi除了可以用向下键将光标下移外,还可以用键和“+”键将光标下移一行或n行(不包括本行在内),但此时光标下移之后将位于该行的第一个字符处。例如:

  3j 光标下移3行,且光标所在列的位置不变。

  3+或3 光标下移3行,且光标位于该行的行首。

  k、、­ (向上键)

  执行一次向上键光标向上移动一个位置(即一行),但光标所在的列不变。同样在这些命令前面加上数字n,则光标上移n行。

  若希望光标上移之后,光标位于该行的行首,则可以使用命令“- ”。

  L (移至行首)

  L 命令是将光标移到当前行的开头,即将光标移至当前行的第一个非空白处(非制表符或非空格符)。

  $(移至行尾)

  该命令将光标移到当前行的行尾,停在最后一个字符上。若在$命令之前加上一个数字n,则光标下移n-1行并到达行尾。

  [行号] G(移至指定行)

  该命令将光标移至指定行号所指定的行的行首。这种移动称为绝对定位移动。

  [例8]

  #include

  main ( )

  { int k ;

  for ( k=0 ; k<3 ; k++) add( );

  }

  add( )

  { static int x=0;

  x++ ;

  printf(“x = %d\n”, x);

  }

  ~

  ~

  ~

  ~

  ~

  “ example.c” 12 lines, 125 characters

  键入命令:6G后,屏幕显示如下:

  #include

  main ( )

  { int k ;

  for ( k=0 ; k<3 ; k++) add( );

  }

  add( )

  { static int x=0;

  x++ ;

  printf(“x = %d\n”, x);

  }

  ~

  ~

  ~

  ~

  ~

  “ example.c” 12 lines, 125 characters

  光标移到了第6行的行首。

  若省略行号,则光标移至该文件的最后一行的行首,即无论该文件有多少屏,都跳至最后一行。

  摘自《Turbolinux》

  

上一个:TurboLinux入门教程:第十课(七)文件链接命令
下一个:Linux教程-vi命令(1)

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,