vi filename
$ vi test.c
屏幕显示如下:
~
~
~
~
~
~
~
~
~
~
~
~
"test.c" [New File]
表示光标。如果只输入 vi,而不带文件名,也可以进入 vi。这时编辑的文件是没有文件名的,所以在退出 vi 时,需要在退出命令后输入文件名,这样才能保证该文件被保存在磁盘中。
~
符号,表示该行为空行。vi +行号 文件名
下例演示了打开一个文件并进行定位,在 shell 终端中输入打开 vi 编辑器的命令如下:$ vi +5 test.c
屏幕显示如下:
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int main(void)
{
int i, sum;
for (i = 0; i < 3; i++) {
sum = add(i, i + 1);
printf("%d\n", sum);
}
}
"test.c" 13L, 175C
return a + b;
的行首。如果希望在进入 vi 之后光标处于文件最末行,则只需去掉命令中+
后面的数字 n 即可,如下所示。
$ vi + test.c
这时光标会停留在最后一行的}
字符。vi +/模式字符串 文件名
下面实例演示查找 test.c 中的 main() 函数,并对其进行以下编辑:$ vi +/main test.c
光标将停留在文件 test.c 中第 6 行的开头,如下所示。
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int main(void)
{
int i, sum;
for (i = 0; i < 3; i++) {
sum = add(i, i + 1);
printf("%d\n", sum);
}
}
"test.c" 13L, 175C
:set nohlsearch
使用 vi 可以同时编辑多个文件,只要在进入 vi 的命令中写入所要操作的文件即可,还可以使用通配符,其格式如下:vi 需要打开文件的通配符
如果需要打开当前目录下所有的C语言源文件,则可以使用以下命令:$ vi *.c
如果在一个C语言的工程中需要快速定位某函数并且对其进行编辑,则可以同时使用打开文件的通配符和模式匹配字符串。下例演示了如何在一个完整的工程中快速定位某个函数并且对其进行编辑。#include <stdio.h> #include <stdlib.h> extern void swap(int *a, int *b);
#include "common.h" void swap(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; }
#include "common.h" int main(void) { int a, b; sacnf("%d %d", &a, &b); swap(a, b); printf("%d, %d\n", a, b); return 0; }
$vi +/main *.c *.h
一个C程序的源文件一般只包括两种,即头文件(.h
文件)和源文件(.c
文件)。因此该命令执行后,将打开目录内所有的.h
文件和.c
文件,并且将当前编辑文件设置为 main.c 文件,光标置于 main.c 文件的第 3 行。Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有