承接婚庆公司网站建设,免费网络电话排行,做网站有维护费是什么费用,写入网站文件文章目录 1.1 vim 递归映射和非递归映射1.1.1 vim 可视模式 1.2 map nmap vnormap nnoremap inoremap 区别 1.1 vim 递归映射和非递归映射
递归映射和非递归映射是 Vim 中两种不同的键盘映射方式。 递归映射#xff08;recursive map#xff09;是指在定义键盘映射时#x… 文章目录 1.1 vim 递归映射和非递归映射1.1.1 vim 可视模式 1.2 map nmap vnormap nnoremap inoremap 区别 1.1 vim 递归映射和非递归映射
递归映射和非递归映射是 Vim 中两种不同的键盘映射方式。 递归映射recursive map是指在定义键盘映射时映射的右侧的命令会触发其他映射。例如假设你已经有一个映射 map j dd它将 j 键映射为删除一行的命令。然后你又定义了一个新的映射 map k j它将 k 键映射为 j 命令。当你按下 k 键时由于使用的是递归映射j 命令会触发 j 到 dd 的映射所以结果是删除一行。
非递归映射non-recursive map是指在定义键盘映射时映射的右侧的命令不会触发其他映射。还是以上面的例子为例如果你使用的是非递归映射例如 nnoremap k j那么当你按下 k 键时j 命令不会触发其他映射所以结果是将光标向下移动一行而不是删除一行。
在大多数情况下使用非递归映射是更好的选择因为它可以避免可能的循环和混淆。在 Vim 中你可以使用 map 和 noremap 来定义递归映射和非递归映射例如 nmap 和 nnoremap 分别用于在普通模式下定义递归映射和非递归映射。
1.1.1 vim 可视模式
Vim 的可视模式是 Vim 的三种主要模式之一另外两种是普通模式和插入模式。在可视模式下你可以选择文本块并对其执行操作类似于其他文本编辑器中的选择并操作的工作方式。
你可以通过以下方式进入可视模式 v字符可视模式。在普通模式下按 v 将进入字符可视模式在这个模式下你可以通过移动光标来选择文本。 V行可视模式。在普通模式下按 V 将进入行可视模式在这个模式下你可以通过上下移动光标来选择整行文本。 块可视模式。在普通模式下按 将进入块可视模式在这个模式下你可以通过移动光标来选择一个文本块。
在可视模式下选择文本后你可以执行各种命令比如复制 (y)、粘贴 (p)、删除 (d) 或者修改 (c)。
例如你可以进入行可视模式 (V), 选择几行文本然后按 d 来删除这些行或者按 y 来复制这些行。
因此Vim 的可视模式提供了一种直观的方式来选择和操作文本。
1.2 map nmap vnormap nnoremap inoremap 区别
Vim 使用了一种强大的键盘映射系统可以让你自定义或修改键盘命令。以下部分将详细解释和示例 vmap, nmap, map, nnoremap, inoremap。 vmap在可视模式下创建键盘映射。例如vmap F2 y 在可视模式下将 F2 键映射为复制命令。 nmap在普通模式下创建键盘映射。例如nmap F2 :wCR 在普通模式下将 F2 键映射为保存文件的命令。 map在普通、可视和操作符等待模式下创建键盘映射。例如map F2 :wCR 在这些模式下将 F2 键映射为保存文件的命令。 nnoremap在普通模式下创建非递归键盘映射。非递归映射意味着映射的右侧的命令不会再触发其他映射从而避免了可能的循环。例如nnoremap j gj 将 j 键映射为 gj 命令即使 gj 也被映射到其他命令j 键仍然只会执行 gj 命令。 inoremap在插入模式下创建非递归键盘映射。例如inoremap jj Esc 将 jj 映射为 Esc 命令这意味着你可以通过输入 jj 来退出插入模式而不需要按 Esc 键。
这些命令都可以在 vimrc 文件中设置或者在 Vim 的命令模式下输入以立即生效。记住为了避免映射冲突或无法预料的结果最好在创建新的键盘映射之前先使用 unmap 命令来取消任何现有的映射。