<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vi on ICCI</title><link>https://icci.ink/categories/vi/</link><description>Recent content in Vi on ICCI</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 15 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://icci.ink/categories/vi/index.xml" rel="self" type="application/rss+xml"/><item><title>vi 编辑器</title><link>https://icci.ink/study/code/basic-vicode/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate><guid>https://icci.ink/study/code/basic-vicode/</guid><description>&lt;p&gt;vi编辑器学习笔记&lt;/p&gt;
&lt;h2 id="vi-快捷键"&gt;Vi 快捷键&lt;a class="anchor" href="#vi-%e5%bf%ab%e6%8d%b7%e9%94%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;文件相关命令&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:w&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将编辑的数据写入硬盘档案中，:w!表强制写入（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:w&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将编辑的数据写入硬盘档案中，:w!表强制写入（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:q&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;离开 vi ，:q!强制离开（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:wq&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;储存后离开，:wq! 为强制储存后离开（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ZZ&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;保存当前文件，然后退出（如果修改过）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ZQ&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;不保存，强制退出。效果等同于 :q!。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:w [filename]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将编辑的数据储存成另一个档案（类似另存新档）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:r [filename]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;在编辑的数据中，读入另一个档案的数据到游标所在行后面&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:n1,n2 w [filename]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将 n1 到 n2 的内容储存成 filename 这个档案。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:set nu&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显示行号，设定之后，会在每一行的前缀显示该行的行号&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:set nonu&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;与 set nu 相反，为取消行号 ！&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;编辑相关快捷键&lt;/td&gt;
 &lt;td&gt;说明&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;进入编辑模式，相同功能的还有a、o，大小写都可，功能差异在插入的位置上&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;r，R&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;进入取代模式，相当与Insert，r只取代字符一次，R一直取代直到Esc&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;搜索替换相关快捷键&lt;/td&gt;
 &lt;td&gt;说明&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/word&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;向光标之下寻找一个名为 word 的字符串。例如，搜索 vbird 则输入 /vbird。（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;?word&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;向光标之上寻找一个名为 word 的字符串。&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重复前一个搜索动作。如果是向下搜索，则继续向下搜索；如果是向上搜索，则继续向上搜索。（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;N&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;与 &lt;code&gt;n&lt;/code&gt; 相反，执行反向的搜索动作。如果之前是向下搜索，则向上搜索；如果之前是向上搜索，则向下搜索。（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:n1,n2s/word1/word2/g&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;在第 n1 行到第 n2 行之间寻找 word1 并将其替换为 word2。（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:1,$s/word1/word2/g&lt;/code&gt; 或 &lt;code&gt;:%s/word1/word2/g&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从第一行到最后一行寻找 word1 并将其替换为 word2。（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;:1,$s/word1/word2/gc&lt;/code&gt; 或 &lt;code&gt;:%s/word1/word2/gc&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从第一行到最后一行寻找 word1 并将其替换为 word2，并在替换前显示提示，让用户确认是否需要替换。（常用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;粘贴、删除相关快捷键&lt;/td&gt;
 &lt;td&gt;说明&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nx&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;n 为数字，连续向后删除 n 个字符&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;dd&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;剪切游标所在的那一整行(常用)，用 p/P 可以粘贴&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ndd&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;n 为数字。剪切光标所在的向下 n 行(常用)，用 p/P 可以粘贴&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;d1G&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除游标所在到第一行的所有数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;dG&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除游标所在到最后一行的所有数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;d$&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除游标所在处到该行的最后一个字符&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;d0&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;删除游标所在处到该行的最前面一个字符&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;yy&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制游标所在的那一行(常用)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nyy&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;n 为数字。复制光标所在的向下 n 行(常用)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;y1G&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制游标所在行到第一行的所有数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;yG&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制游标所在行到最后一行的所有数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;y0&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制游标所在的那个字符到该行行首的所有数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;y$&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复制游标所在的那个字符到该行行尾的所有数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;p, P&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;p 将已复制的数据在光标下一行贴上，P 则贴在游标上一行(常用)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;J&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;将光标所在行与下一行的数据结合成同一行&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重复删除多个数据，例如向下删除 10 行，[ 10cj ]&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;u&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;复原前一个动作。(常用)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;[Ctrl]+r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;重做上一个动作。(常用)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;(按下小数点)重复前一个动作。(常用)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="为什么是vi编辑器"&gt;为什么是vi编辑器&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%98%afvi%e7%bc%96%e8%be%91%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Vi 是 1976 年由 Bill Joy 开发的一款文本编辑器，最初是为 Unix 系统设计的。Vi 以其简洁、高效的操作方式而闻名，成为 Unix 和类 Unix 系统上的标准编辑器。Vim（Vi Improved）是 Vi 编辑器的改进版本，使用方法和Vi 编辑器相识相通。这里只Vi 编辑器
这个编辑器几乎不用下载，在各各电脑平台几乎都支持，由于其简洁稳定，功能强大，且支持插件等功能，熟练的Vi 编辑器操作工人可以在无鼠标的环境下正常操作。&lt;/p&gt;</description></item></channel></rss>