diff --git "a/\351\273\204\346\265\201\346\266\233/20240605 vim\347\274\226\350\276\221\345\231\250.md" "b/\351\273\204\346\265\201\346\266\233/20240605 vim\347\274\226\350\276\221\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..2443c922d57ca59c9f55c9bc27c7578f4025cf5e --- /dev/null +++ "b/\351\273\204\346\265\201\346\266\233/20240605 vim\347\274\226\350\276\221\345\231\250.md" @@ -0,0 +1,378 @@ +# 笔记 + +# vim + + + +## 光标移动 + +​ 单位级: + +h 向左移动一个单位 + +j 向下移动一个单位 + +k 向上移动一个单位 + +l 向右衔动一个单位 + +​ 单词级 + +w 向右移动到下一单词开头 + +e 向右移动到下一单词结尾 + +b 向左移动到下一单词开头 + +​ 块级 + +gg 移动光标到文档第一行 + +G 移动光标到文档最后一行 + +0 移动光标所在行的第一列 + +^ 移动光标到非空的第一个字符 + +$ 移动光标到所在行的最后一列 + +H 移动光标到屏幕顶端 + +M 移动光标到屏幕中间 + +L 移动光标到屏幕底部 + +gg 或者: 移动光标到第n行 + +k 或者:- 移动光标到向上n行 + +j 或者:+ 移动光标到向下n行 + + + +## 模式 + +#### 字符模式,在命令模式中按v键进入 + +#### 行模式,在命令模式中按V键进入 + +#### 块模式,在命令模式中按Ctrl+ v键进入 + + + +## vim内打开文件 + +#### :e <文件名称> 打开名为 filename 的文件,若文件不存在则创建之 + +#### :Ex 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:- 进入上级目录 ) + + + +## 内容查找 + +#### 文档内查找 + +`*` 向后查找当前光标所在单词 + +`#` 向前查找当前光标所在单词 + +/ 向后查找指定字符串 + +? 向前查找指定字符串 + +n 继续查找下一个N 继续查找上一个 + + #### 行内查找 + +f 当前行内向行尾查找定位X字符 + +t 当前行内向行尾查找定位X字符前一字符 + +F 当前行内向行首查找定位X字符 + +T 当前行内向行首查找定位X字符后一字符 + +; 向当前方向查找下一个字符 + +, 向当前反方向查找下一个字符 + + + +## 文档修改与保存 + +### 插入 + +i 当前字符前插入 + +I 当前行首插入 + +a 当前字符后插入 + +A 当前行尾插入 + +o 在下一行插入 + +O 在上一行插入 + +### 删除 + +x 删除当前字符,相当于 insert 模式下的 Delete + +X 删除前一个字符,相当于 insert 模式下的 Backspace + +d 删除指定内容并保存到 Vim 剪贴板 + +dd 删除当前行,并将删除的内容保存到 Vim 剪贴板 + +cc 删除当前行并保存到 Vim 剪贴板,同时进入 INSERT 模式 + +c 删除指定内容并保存到 Vim 剪贴板,同时进入 INSERT 模式 + +### 复制 + +y 复制指定字符串到粘贴板 + +yy 复制整行到粘贴板 + +### 粘贴 + +p 在当前位置后粘贴 + +P 在当前位置前粘贴 + +### 合并 + +J 合并当前行和下一行 + +### 替换 + +r 将当前字符替换为 X + +gu 将指定的文本转换为小写 + +gU 将指定的文本转换为大写 + +:%s/// 查找 search 内容并替换为 replace 内容(常用) + +### 缩进 + +( >> 向右缩进当前行 ) + +( << 向左缩进当前行 ) + +### 撤销与重做 + +u 撤销 + +Ctrl-r 重做 + +. 重复上一个动作, 3. 重复上次动作3次 + +### 保存修改 + +:w 保存当前文件 + +:wa 保存全部文件 + +:wq or ZZ 保存并退出 + +:q! or ZQ 强制退出,不保存 + +:saveas 文件另存为 + +:w 文件另存一份名为 的副本并继续编辑原文件 + +# 练习 + +1. vi 编辑器有几种模式? + + 1.命令模式,一进入vim就是命令模式 + + 2.编辑模式,在命令模式按i进入编辑模式 + + 3.末行模式,在命令模式按shift+:进入 + + 4.字符模式,在命令模式中按v键进入 + + 5.行模式,在命令模式中按V键进入 + + 6.块模式,在命令模式中按Ctrl+ v键进入 + + + +2. 如何进入 vi 编辑器的插入模式 + + 按i 当前字符前插入 + + 按I 当前行首插入 + + 按a 当前字符后插入 + + 按A 当前行尾插入 + + 按o 在下一行插入 + + 按O 在上一行插入 + +3. 如何进入 vi 编辑器的可视化模式 + + 可视化字符模式,在命令模式中按v键进入 + + 可视化行模式,在命令模式中按V键进入 + + 可视化块模式,在命令模式中按Ctrl+ v键进入 + +4. 在 vi 编辑器中如何复制一行 + + 将光标移动到要复制行处,按yy + +5. 在 vi 编辑器中如何进行粘贴 + + 将光标移动到要粘贴处,p 在当前位置后粘贴,P 在当前位置前粘贴 + +6. 如何删除从 3 行到 15 行的所有数据 + + 先将光标移动至第三行,进入可视化行模式,选中3到15行,按yy复制。 + +7. vim练习: + + - 光标移动练习,命令模式下: + + - 单位级 h j k l + - 单词级 w e b + - 块级 gg G 0 ^ $ H M L ngg nj nk + + 把下列句子按照第一句的正确顺序修改好并把多余的空行删除 + + ``` + this is a simple easy vim tutorial + + tutorial simple a easy this vim is + is this tutorial vim simple a easy + + + tutorial vim this is a easy simple + tutorial easy vim simple a this is + simple a vim easy tutorial is this + + tutorial is easy vim a simple this + + + vim simple this tutorial a easy is + a vim tutorial simple easy is this + + + easy a simple vim is tutorial this + vim tutorial is a easy simple this + a this vim tutorial is easy simple + this tutorial simple easy a is vim + + + easy tutorial this simple a is vim + a tutorial easy is this simple vim + + a tutorial vim is easy this simple + simple this easy is vim tutorial a + + this tutorial is a easy simple vim + vim is tutorial simple this easy a + + vim is simple this tutorial easy a + easy a simple is vim this tutorial + vim is tutorial simple a easy this + this vim is tutorial simple easy a + + this is a simple easy vim tutorial + tutorial simple a easy this vim is + is this tutorial vim simple a easy + tutorial vim this is a easy simple + tutorial easy vim simple a this is + simple a vim easy tutorial is this + tutorial is easy vim a simple this + vim simple this tutorial a easy is + a vim tutorial simple easy is this + easy a simple vim is tutorial this + vim tutorial is a easy simple this + a this vim tutorial is easy simple + this tutorial simple easy a is vim + easy tutorial this simple a is vim + a tutorial easy is this simple vim + a tutorial vim is easy this simple + simple this easy is vim tutorial a + this tutorial is a easy simple vim + vim is tutorial simple this easy a + vim is simple this tutorial easy a + easy a simple is vim this tutorial + vim is tutorial simple a easy this + this vim is tutorial simple easy a + ``` + + 先敲出以下代码,然后修正以下代码中的错误单词、重复单词、错误格式、多余行,修改函数名为 typing 并为定时器添加 300 毫秒延迟 + + ``` + const bbb = () => { + // this is is a description + // + // another descriptttion + const timer = setTimeout(( ) => { + console.log(that) alert('cool!') + // awosome man ! + }) + } + ``` + + 尝试在下面的文本中进行复制粘贴练习 + + ``` + 删除这一行 + 粘贴到这一行下面 + 剪切 ABC 并把它粘贴到 XYZ 前面,使这部分内容看起来像 + 剪切 并把它粘贴到 ABC XYZ 前面。 + + + 粘贴到这一行下面 + 删除这一行 + 剪切 并把它粘贴到 ABC XYZ 前面,使这部分内容看起来像 + 剪切 并把它粘贴到 ABC XYZ 前面。 + ``` + + 尝试修改下列文本的大小写 + + ``` + Change this line to UPPERCASE, THEN TO lowercase. + + gu + change this line to uppercase, then to lowercase. + gU + CHANGE THIS LINE TO UPPERCASE, THEN TO LOWERCASE. + + ``` + + 按下面的说明进行操作 + + ``` + 按 dd 删除本行 + 按 . 重复删除操作 + 2. 再删除两行 + 这行也没了 + p 把刚才删掉的粘回来 + 3. 又多出 6 行 + + p 把刚才删掉的粘回来 + 2. 再删除两行 + 这行也没了 + 3. 又多出 6 行 + 2. 再删除两行 + 这行也没了 + 2. 再删除两行 + 这行也没了 + 2. 再删除两行 + 这行也没了 + ``` + + 左缩进、右缩进练习 + + ``` + 在这一行上依次按 3>>,<< 和