0


文件编辑(vi/vim)


    在Linux系统中,我们使用vi或vim命令打开文件,对文件进行编辑。vi是系统自带的文件编辑器,vim是升级版的vi编辑器,有许多辅助功能,并且对vi指令兼容。(所以vim不必需)

    vim安装命令:sudo apt-get install vim

     若出现如上图提示信息,先执行 sudo apt-get upgate ,再执行 sudo apt-get install vim。

1、命令模式

    使用 vi 文件名 命令打开指定文件后,此时文件被打开,内容展示在终端上。此时我们进入了**命令模式**:在此模式下,我们不能像在Windows系统上直接对文件进行随意编辑,但可以**通过一些命令对文件内容进行操作**。目前学习到如下命令:(此时可使用鼠标或上下左右键移动文件光标)

    提前创建好的文件 f1.c ,其内容为:

1.1、dd(字母d连按两次):将光标所在行文件内容删除

     此时光标在第一行,输入一个d后,终端底部出现了一个d,此时再输入一个d,此时**输入的内容就符合了命令格式**,系统就**解析出这两个输入的d是命令**,删除了第一行。

1.2、ndd:删除光标所在行及其后续的n行内容

    当n==1时,就是删除一行,也就是dd命令。

     此时文件光标在第一行,输入 7d 后,终端底部出现 7d,再输入一个d,系统就解析输入的7dd为删除命令,删除包括第一行在内的总共7行文件内容。

1.3、u:撤回上次命令(操作)

    刚才我们分别使用了 dd 和 7dd 命令,将文件内容删完了。如果我们想恢复文件内容,就可以使用 u 命令,将刚才的删除操作撤回。

    u:使用一次,撤销一个最近的操作。vi编辑器只能撤销最近的一次操作,而 vim编辑器可以一直向前撤销(不撤销u命令本身)。

      并且在撤销上次命令完成后,在终端底部显示了被撤销的命令是什么时候被执行的。

1.4、Ctrl r:恢复被撤销掉的命令

    同时按下 Ctrl 和 r 键,就可以恢复被撤销掉的命令(不恢复本身操作)。可以一直向后恢复。

1.5、nyy:从光标所在行开始,连续拷贝n行内容(包括光标所在行)

1.6、p:粘贴拷贝到的内容(将内容从光标所在行的下一行开始粘贴)

    例如,当光标在第一行时,使用了 yy命令,再直接使用 p 命令,系统就将第一行的内容拷贝到从第二行新开的一行。

1.7、G:将光标移动到文件内容最后一行

    在键盘小写模式同时按下 Shift 和 g 键,或在键盘大写模式直接按下G键,就可以将文件光标移动到文件内容的最后一行。

    这在文件内容行数特别多的时候非常好用。

1.8、nG:移动到文件的第n行,行数从1开始。

    系统自带的vi编辑器不会显示文件行号,在安装了vim编辑器后,进行配置后,就可以设置显示行号。(笔记末尾有配置过程)

1.9、gg:将文件光标移动到文件内容的第一行

1.10、r:替换光标当前位置的字符

    如果有某个字符输入错误,就可以将光标移动到该字符位置,点击 r 键,再在键盘点击想要替换字符,就可以完成替换。

     例如,此时光标在f1.c文件的第二行第一个字符位置,按下 r 键后,终端底部出现 r ,再点击一下 * ,就可以将 # 替换为 * 。

1.11、Shift 6:移动光标到光标所在行的行头(同时按下两键)

1.12、Shift 4:移动光标到光标所在行的行尾(同时按下两键)

2、编辑模式

    若我们想随意对文件内容进行编辑,就需要进入编辑模式。最直接的方式就是点击一下 i 键,就可以进入编辑模式,并且可以直接在光标当前位置进行数据编辑。除此之外,还有其他命令或快捷方法,可以使用:(进入编辑模式的命令使用一次就进入了编辑模式,下方命令都是在由命令模式进入编辑模式时使用)

2.1、Esc:退出编辑模式

    点击键盘左上角的 Esc 键,就可以退出编辑模式,回到命令模式。

2.2、i:从光标位置开始编辑

    例如,此时光标在第二行第一个字符位置,点击 i 键后,终端底部出现 -- INSERT --字样。此时,就可以开始在当前位置进行编辑内容,若添加数据,则当前位置及该行以后的原内容向后移动。

2.3、I(大写i):在光标所在行的行头开始编辑

     例如此时在退出编辑模式,进入命令模式后,光标在e字符位置,直接点击大写I(shift + i),此时光标直接移动到第二行行头,并且进入了编辑模式。

2.4、a:在光标位置的下一个位置开始编辑

2.5、A:在光标所在行的行尾开始编辑

2.6、s:删除光标当前位置的数据,在当前位置开始编辑

2.7、S:删除光标所在行的内容,在该行第一个位置开始编辑

2.8、o:在光标所在行的下一行,重起一行开始编辑

2.9、O:在光标所在行的上一行,重起一行开始编辑

    读者可自行验证,练习使用。

3、末行模式

    编辑完文件内容当然少不了退出和保存。进行保存就需要进入末行模式,在末行模式还可以进行其他操作。

3.1、**: **选择是否保存文件内容,并退出(退出vi/vim命令)

    在键盘英文模式点击冒号,就可以进入选择是否保存文件新编辑的内容和退出。

3.1.1、wq :保存新编辑的内容并退出

    对于权限允许的文件,我们在编辑后想保存编辑过的内容就可以使用 wq 命令,进行文件保存并退出。对于一些不允许修改,或我们不应该修改(以管理员身份访问的文件),就不要使用 wq 命令退出。

3.1.2、**q ** :直接退出

    如果我们只是打开了文件,没有对文件内容进行任何编辑,就可以直接使用 q 命令,退出。

3.1.3、q! :强制退出

    如果我们对文件内容进行了编辑,又不想保存编辑过的内容,还懒得将文件内容恢复原样,就可以使用 q! 命令强制退出。系统会将文件恢复到使用 vi/vim 命令打开文件之前。

3.1.4、w 文件名 :将文件内容另存到一个新文件中

     例如,此时将 文件f1.c 的内容另存到一个文件newf 中 。

     另存成功后,终端底部显示如图提醒,并且在退出后查看当前目录出现了一个新文件newf。打开后其内容与 文件f1.c 相同。

3.1.5、将文件中重复字符串批量修改

    **使用方法:n,m s/oldstring/newstring **。将第n行到第m行之间(包括第n和m行)的 原字符串 都替换为 新字符串 。

    例如,此时,使用命令 1,3 s/#include/ABC ,将文件中1到3行的 #include 替换为 ABC 。

     替换结果如下:

3.2、/ 从光标位置向文件尾部查找字符串

    **使用方法**:**/ **+ **字符串**。从命令模式点击 斜杠/ 键,进入末行模式,再输入想要查找的字符串或字符,系统就将光标定位到**光标原位置之后该字符串或字符第一个出现的位置**。

     此时光标处于第三行第一个字符位置,点击 / ,再输入 i ,系统将光标定位到第三行的第一个 i 的位置,而不是第一行的第一个 i 的位置。

     此时,再直接输入一次 /i,后回车,光标就会定位到当前位置的下一个 i 的位置。

     若文件中没有该字符串或字符,终端底部就会显示如下提示:(输入 /b ,这段代码中没有字符b)

3.3、? 从光标当前位置向文件头部查找字符串

** 使用方法? + 字符串。从命令模式点击 ? 键,进入末行模式,再输入想要查找的字符串或字符,系统就将光标定位到在光标原本位置之前的该字符串或字符第一个出现的位置**。具体情况与 / 命令相同。

4、vim配置显示行号

    1.在下载好vim之后,进入根目录下的 etc 目录,这是第一篇笔记中说到的,保存系统配置文件的目录。

    2.在进入etc目录后,通过ls命令可以看到有vim目录,再进入vim目录。

    3.vim目录下有两个文件:vimrc和vimrc.tiny。以管理员身份打开vimrc文件(命令:sudo vi vimrc)(这是系统配置文件,普通用户无权限)。

    4.在vimrc文件最后,进入编辑模式,添加如下内容:

    5.保存退出:末行模式输入wq,回车。

    6.进入一个文件中,进入末行模式 **: **,输入 set nu,完成行号设置。

标签: linux vim

本文转载自: https://blog.csdn.net/weixin_50803498/article/details/127453755
版权归原作者 加油JIAX 所有, 如有侵权,请联系我们删除。

“文件编辑(vi/vim)”的评论:

还没有评论