> 文章列表 > 【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】

【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】

【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】

查找文章中拼写错误的单词的C语言程序

【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】
【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】

编写的C语言程序:

#include<stdio.h>
#include<string.h>
int main()
{
FILE *fp=fopen("essay.txt","r");
FILE *fp1=fopen("words.txt","r");
if(fp==NULL&&fp1==NULL)
{
printf("can't open essay.txt");
return 0;
}
int i=0,j=0,k,lenth;
char c;
char essay[250][20];
char word[20];
while((c=getc(fp))!=EOF){
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c=='\\'')||(c=='-')){
if(c>='A'&&c<='Z'){
c=c+32;
}
essay[i][j]=c;
j++;
}
else{
if(essay[i][0]!='\\0'){
essay[i][j]='\\0';
i++;
j=0;}}}
k=i; 
printf("-----------------------------------------------------------\\n");
printf("essay.txt中单词\\n");
for(i=0;i<k;i++){
printf("%s",essay[i]);
printf("\\t");
}
printf("\\n---------------------------------------------------------\\n\\n");
printf("错误单词\\n");
int flag=0;
for(i=0;i<k;i++){
while(!feof(fp1)){
fgets(word,20,fp1);
lenth=strlen(word);
word[lenth-1]='\\0';
for(j=0;j<lenth;j++){
if(word[j]>='A'&&word[j]<='Z') {
word[j]+=32; 
}
}
j=0;
if(strcmp(essay[i],word)==0){
flag=1;
}
}
rewind(fp1);
if(flag==0) printf("%s\\n",essay[i]);
flag=0;
}
}

【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】
【Linux系统查找错误单词项目和vim的三种模式(命令,输入和底线命令模式)和项目的心得体会】

基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

(一)命令模式

x,X x为向后删除一个字符,X为先前删除一个字符
nx(n代表数字) 向后删除n个字符
dd 删除当前行
D 删除当前行所有字符,试成为空行
ndd(n代表数字) 删除光标在行的向下n列
d1G 删除光标所在行到第一行的所有数据
dG 删除光标所在行到最后一行的所有数据
yy 复制光标所在行
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
ynj(n代表数字) 复制光标所在行向下n+1行
dnj(n代表数字) 删除光标所在行向下n+1行
p,P
p为复制的数据粘贴在光标的下一行,P为复制的数据粘贴在光标的上一行
J 将光标所在行与下一行的数据结合成一行
u 恢复前一个动作(undo)
h 光标向左移一个字符
j 光标向下移一个字符
k 光标向上移一个字符
l 光标向右移一个字符
Ctrl+f 屏幕向下翻一页
Ctrl+b 屏幕向上翻一页
Ctrl+d 屏幕向下翻半页
Ctrl+u 屏幕向上翻半页
+光标移动到下一行的第一个非空字符
-光标移动到当前行的第一个非空字符
n空格(n代表数字) 光标向当前行向右移动n个字符

0(数字0) 光标移动到当前行的第一个字符(可以为空字符,注意与-区分)
$ 光标移动到当前行的最后一个字符(可以为空字符,注意与-区分)
H 光标移动到当前屏幕最上方的那一行的第一个非空字符
M 光标移动到当前屏幕最中间那一行的第一个非空字符
L 光标移动到当前屏幕最下方的那一行的第一个非空字符
G 光标移动到该文章最后一行的第一个非空字符
nG(n代表数字) 光标移动到该文章第n行的第一个非空字符
n 光标从当前行向下移动n行的第一个非空字符

(二)输入模式

i,I
i为在当前光标所在处插入输入的文字,I为在光标所在行第一个非空字符插入输入的文字

a,A
a为在当前光标所在处下一个字符插入输入的文字,A为在光标所在行最后一个字符的下一个字符处插入输入的文字

o,O
o为在光标所在行的下一行行首开始插入字符,O为在光标所在行的上一行行首开始插入字符

r,R
r为替换光标所在那一个字符,R为一直替换光标所指的文字,直到退出

Esc
退出,回到命令模式

(三)底线命令模式

/word
在光标之后查找word字符串

?word
在光标之前查找word字符串

: s/word1/word2/g
在光标当前行查找word1,并替换成word2

:n1,n2s/word1/word2/g    
在第n1行与第n2行之间查找word1,并替换成word2

:%s/word1/word2/g   
整个文章查找word1,并替换成word2

:w
将编辑的数据保存到硬盘文件中

:w [filename]
将编辑后的数据保存到硬盘的另一个文件中

:r [filename]
在编辑数据时,读入另一个文件中的数据,即将filename文件中的内容加到光标所在行下一行

:wq或:x
保存并退出

:q
退出,适用于未修改的文件

:q!
强制退出,适用于修改文件后不保存退出

:set nu
显示行号

:set nonu
取消行号

:n1,n2 w [filename]
将n1到n2行的内容保存到名为filename的文件中

实验心得体会

这个实验就是学习Linux 文本的编辑和C语言程序的运行,首先我们需要熟悉Linux系统输入文本的模式,他分为三种命令模式,输入模式,底线命令模式,在刚刚输入文本的时候,因为自己不熟悉输入模式,在自己输入错误的时候就需要在输入i或者是a,设置光标输入在文本的前面还是后面,刚开始没有去仔细查阅输入命令的相关资料,所以当时想的就是要么实现两个系统的复制粘贴,直接从Windows系统上面复制下来,直接去Linux系统上面粘贴,要么就是不输错,一次性将这个文本全部正确的输入,所以就反反复复,其实浪费很多时间,但是我最后知道如何去正确使用着三种模式,并且也实现两个系统的文本或者文件夹的复制粘贴和共享。然后知道在Linux系统上面如何运行C语言程序,实现查找错误的单词,所以让我明白学好Linux不是一件一蹴而就的事 , 一定要能坚持使用它,特别是在学习初期。要增加自己的Linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识