VIM备忘单
#javascript #网络开发人员 #web3 #web

当然!这是一个VIM备忘单,其中包括一些常见的命令和快捷方式:

模式:

  • 正常模式:导航和执行命令的默认模式。
  • 插入模式:用于插入或编辑文本。
  • 视觉模式:用于选择和操纵文本块。
  • 命令行模式:用于输入命令。

导航:

  • h:向左移动光标。
  • j:向下移动光标。
  • k:移动光标向上。
  • l:移动光标右。
  • w:将光标移至下一个单词的开头。
  • b:将光标移至上一个单词的开头。
  • gg:将光标移至文档的第一行。
  • G:将光标移至文档的最后一行。
  • 0(零):将光标移至行的开头。
  • $:将光标移至行末端。
  • Ctrl + f:向前滚动一页。
  • Ctrl + b:向后滚动一页。

编辑:

  • i:在当前光标位置输入插入模式。
  • a:当前光标位置后输入插入模式。
  • A:在当前行末尾输入插入模式。
  • o:插入当前行以下的新线路并输入插入模式。
  • O:插入当前行上方的新线路并输入插入模式。
  • x:删除光标下的字符。
  • dd:删除当前行。
  • yy:yank(复制)当前行。
  • p:粘贴光标下方的洋基或删除的文本。
  • u:撤消最后一个更改。
  • Ctrl + r:重做最后一个更改。
  • .(周期):重复最后一个更改。

视觉选择:

  • v:输入视觉模式并选择字符。
  • V:输入视觉模式并选择整行。
  • Ctrl + v:输入视觉块模式,然后选择矩形块。
  • y:yank(复制)选定的文本。
  • d:删除选定的文本。
  • ~:更改选定文本的情况。

搜索和替换:

  • /:输入搜索模式。
  • n:移至搜索模式的下一个发生。
  • N:移至搜索模式的先前发生。
  • :%s/old/new/g:用整个文件中的“ new”替换所有“旧”的出现。

保存和退出:

  • :w:保存文件。
  • :q:退出vim。
  • :wq:x:保存和退出。
  • :q!:戒烟而不保存。

此备忘单仅涵盖基础知识,但是VIM是功能强大的编辑

编辑:

  • r:替换光标下的字符。
  • s:在光标下替换字符并输入插入模式。
  • S:替换整个行并输入插入模式。
  • ciw:更改光标下的整个单词。
  • cw:从光标位置更改为单词的末尾。
  • C:从光标位置更改为行末端。
  • x:删除光标下的字符。
  • X:删除光标之前的字符。
  • D:从光标位置删除到线的末端。
  • J:将当前线与下面的线一起加入。

撤消和重做:

  • u:撤消最后一个更改。
  • Ctrl + r:重做最后一个更改。

视觉块选择:

  • Ctrl + v:输入视觉块模式,然后选择矩形块。
  • I:在每个选定行的开头插入文本。
  • A:在每个选定行的末尾附加文本。
  • r:用类型的文本替换所选块。
  • d:删除选定的块。
  • I(资本I):缩进选定的块。
  • Shift + >:增加所选块的缩进。
  • Shift + <:减少所选块的缩进。

搜索并替换:

  • *:搜索光标下的单词。
  • #:在相反方向搜索光标下的单词。
  • :%s/old/new/gc:用整个文件中的“ new”替换所有“旧”的出现,并确认每个替换。

复制和粘贴:

  • yy:yank(复制)当前行。
  • p:粘贴光标下方的洋基或删除的文本。
  • P:粘贴了光标上方的洋基或删除的文本。

标记:

  • m<letter>:在当前光标位置设置标记(例如,ma设置标记'a')。
  • `<letter>`: Jump to the line of the mark (e.g., a跳到标记'a')。

标签和窗口:

  • :tabnew:打开一个新标签。
  • :tabnextgt:移至下一个选项卡。
  • :tabpreviousgT:移至上一个选项卡。
  • :tabclose:tabc:关闭当前选项卡。
  • :split:水平拆分当前窗口。
  • :vsplit:垂直分开当前窗口。
  • Ctrl + w,其次是hjkl:将光标移动到左侧,下方,上方或右侧的窗口。
  • Ctrl + w接着是Ctrl + hCtrl + jCtrl + kCtrl + l:分别在左侧,下方,上方或右侧的窗口大小。

文件操作:

  • :e <filename>:打开一个用于编辑的文件。
  • :saveas <filename>:保存新名称的当前文件。
  • :b <filename>:切换到其他缓冲区/文件。
  • :bd:关闭当前的缓冲/文件。
  • :ls:列出所有开放缓冲区。
  • :sp <filename>:水平拆分窗口并打开文件。
  • :vsp <filename>:垂直分开窗口并打开文件。
  • :tabe <filename>:在新标签中打开文件。

使用多个文件:

  • :next:n:转到参数列表中的下一个文件。
  • :prev:N:转到参数列表中的上一个文件。
  • :first:转到参数列表中的第一个文件。
  • :last:转到参数列表中的最后一个文件。
  • :args:列出参数列表中的所有文件。
  • :argdo <command>:在参数列表中的每个文件上执行命令。

宏:

  • q<letter>:开始将宏记录到指定的寄存器中(例如,qa开始记录到寄存器'A')。
  • q:停止记录宏。
  • @<letter>:执行存储在指定寄存器中的宏(例如,@a执行存储在寄存器'a'''的宏)。

折叠:

  • zf<motion>:使用指定的运动创建一个折叠(例如,zfap在段落周围创建一个折叠)。
  • zo:打开一个折叠。
  • zc:关闭折叠。
  • zm:增加整个缓冲区的折叠水平。
  • zr:降低整个缓冲区的折叠水平。
  • zi:切换折叠/关闭。

视觉凹痕:

  • =:自动指示代码的选定块。
  • ==:自动识别当前行。
  • >:缩进右侧的选定块。
  • <:缩进左侧的选定块。

命令行模式:

  • :!<command>:从vim内执行shell命令。
  • :set <option>:设置一个特定选项(例如,:set number显示行号)。
  • :normal <command>:在范围内的每行上执行一个普通模式命令(例如,:%normal dd删除所有行)。

标记:

-' + <letter>:跳到包含标记的行的第一个非空白字符(例如,'a跳到Mark'A'的线路)。


`+ `<letter>`: Jump to the exact cursor position of the mark (e.g.,

a跳到标记'a')的确切光标位置。

窗口管理:

  • Ctrl + w + s:水平拆分窗口。
  • Ctrl + w + v:垂直分开窗口。
  • Ctrl + w + c:关闭当前窗口。
  • Ctrl + w + o:关闭所有窗口,除了活动。
  • Ctrl + w + h:将光标移动到左窗口。
  • Ctrl + w + j:将光标移动到下面的窗口。
  • Ctrl + w + k:将光标移动到上方的窗口。
  • Ctrl + w + l:将光标移动到右窗口。
  • Ctrl + w + =:使所有窗户都相等。
  • Ctrl + w + [number]+:将当前窗口的大小增加指定的线数。
  • Ctrl + w + [number]-:将当前窗口的大小减少指定数量的行。

选项卡:

  • :tabnew <filename>:使用指定文件打开一个新选项卡。
  • :tabclose:关闭当前选项卡。
  • :tabonly:关闭除当前一个选项卡外的所有其他选项卡。
  • :tabnextgt:移至下一个选项卡。
  • :tabpreviousgT:移至上一个选项卡。
  • :tabfirst:移至第一个选项卡。
  • :tablast:移至最后一个选项卡。
  • :tabmove <N>:将当前选项卡移至特定位置(例如,:tabmove 3将当前选项卡移至第三位置)。

搜索并替换:

  • :%s/old/new/:在整个文件的每一行中替换“旧”的第一次出现。
  • :%s/old/new/g:在整个文件的每一行中替换“旧”的所有“旧”的出现。
  • :%s/old/new/gc:在整个文件的每一行中替换“旧”的所有“旧”的出现,并确认每个替换。

使用寄存器:

  • "<register>yy:yank(复制)选定的文本到特定的寄存器(例如,"ayy yanks要注册'a')。
  • "<register>p:粘贴特定寄存器的内容(例如,"ap粘贴寄存器'a'的内容)。

多个光标:

  • Ctrl + v:输入视觉块模式,然后使用“移动命令”创建多个光标。
  • Ctrl + n:选择当前单词的下一个出现并添加光标。
  • Ctrl + x:跳过下一个单词的下一个出现并添加光标。

使用VIM时,这些附加命令和快捷方式应为您提供更多的多功能性和效率。请记住定期练习并参考VIM的文档以进一步探索其广泛的功能。

关于作者。 Geoffrey Callaghan是Fabform.io的程序员,在form backend service团队中工作。