嵌入式第11步——vi编辑器使用

          用了3个小时看一个38分钟的视频,由于是小白,感觉介绍的内容很好,慢慢记录整理下来,为了以后复习用。

          vi编辑器在使用过程中有很多提高效率的技巧。看up主:神圣雅诗人的“嵌入式基础课程”P4节总结如下技巧,有助于编程过程中提高效率:

          1、  在terminal界面下输入vi 文件名 ,进入vi编辑器

          2、  进入编辑器后是命令状态,此时输入的内容不会出现在代码区域。需要先输入a\i\o中的一个,然后才能进入编辑状态开始输入代码。

          3、  退出编辑状态,改为命令输入状态用ESC键。

         4、  命令状态包括:

                     linux命令含义: q(退出)、w(写入)、0(第一行或字母)、$(最后一行或字母)、y(复制)、d(剪切)、%(全部)

                       1):q    (quit)退出没有修改的文件(若文件进行了修改没有保存,则命令无效)

                      2):q!     强制退出,且不保存修改过的部分

                      3):w     (write)保存文件,但不退出。相当于office里的ctrl+s

      4):x       (Exit)保存文件并退出,相当于命令:wq

      5):w File  另存为File给出的文件名,不退出

      6):r File   (Read)读入File指定的文件内容插入到光标位置

      7)[N]x    (Expurgate)删除光标后连续的N个字符,放入缓冲区,可以用于粘贴

      8)[N]dd  (Delete)删除光标后连续的N行字符,放入缓冲区,可以用于粘贴.不粘贴的时候,相当于删除。

      9)[N]yy   (Yank)复制光标后连续的N行字符,放入缓冲区,可以用于粘贴

      10)p        粘贴,p(小写)粘贴在光标行下方,P(大写)粘贴在光标行上方

      11)u       (Undo)取消上一次操作

      12)y0          行首到光标位置复制

      13)y$      光标到行尾复制

      14)d0       行首到光标剪切

      15)d$       光标到行尾剪切

      16)range y       对块进行复制 ,   range范围可以用0(首个)、$(结尾)、%(全部)与逗号“,”组成“

命令技巧:(主要是在编辑过程中的定位技巧)

      1)  养成随手保存的习惯: ESC-:w,避免工作白干了。

      2)  结束工作时用:q,如果距离上一次保存后有编辑,用:wq

      3)  用i进入编辑状态,是在光标原有位置开始编辑。

      4)  用a进入编辑状态,光标出现在行尾。相当于i进入编辑状态后,再移动光标。可以提升录入效率

      5)  用o进入编辑状态,在光标所在行的下一行开始一个空行。

      6)  C语音的头文件和正文代码之间加一些空行,会使代码看起来比较简洁。

      7)  用I(大写)进入编辑状态时,光标到本行的第一个字符位置。主要用于注释掉代码(前面加//)

      8)  用A(大写)进入编辑状态时,光标到本行最后一个字符位置。用于写入注释

      9)  用O(大写)进入编辑状态时,在光标上一行加入一个空行。

      10)     用:!command临时进入指令状态,可以使用linux的任何命令,查看后根据提示用回车键可以返回编辑状态。比如编程过程中查看:当前路径:!pwd   .当前时间:!data 

      11)     不退出保存为另一个文件:w  新文件名

      12)     命令状态下(按下ESC后),可以通过hjkl四个键控制光标的移动方向。

      13)     命令状态下(按下ESC后),可以通过:行号控制光标移动到任意一行,同时:1G和:G控制光标到第一行和最后一行。

      14)     命令状态下(按下ESC后),命令set number(=set nu)和set nonumber(=set nonu)显示和取消行号。

      15)     命令状态下(按下ESC后),用“/字符串”可以查找代码内的字符串,开始查找后,可以利用n或N往上或往下继续查找。用”/^字符串“可以查找包含字符串的内容。

 

      16)     替换命令:“:范围s/old str/new str”,不写范围的,只替换当前行,范围写法:“.”为当前行,”$”为最后一行。

                      :s/str1/str2                     当前行内用str2替换str1

                      :s/str1/str2/g               g(global)表示范围内全部替换,不带g只替换第一个

                      :.,$ s/str1/str2/g              当前行到最后一行进行替换

                      :1,$ s/str1/str2/g              第一行到最后一行进行替换

                     :%s/str1/str2/g                  全部代码里进行替换

posted @ 2022-04-23 17:07  顶级太阳  阅读(267)  评论(0)    收藏  举报