vim + Vscode / WebStorm

Vim + VScode / WebStorm

使用 vim 快捷键的好处:

  1. 提高效率。
  2. 统一 WebStorm(JetBrains 系列软件) 和 VScode 的快捷键操作。

安装插件

  1. VScode

​ 插件市场搜索 [vim](Vim - Visual Studio Marketplace) , 安装。

  1. WebStorm(JetBrains 系列软件都可使用)

​ 插件市场搜索 IdeaVim , 安装。

配置

共享系统剪贴板

vim 复制的内容无法复制到系统的剪贴板中,需要配置才能使用。

  1. webStorm

    1. 在用户根目录创建 .vimrc
    1
    set clipboard=unnamed
    1. 在用户根目录创建 .ideavimrc
    1
    2
    3
    source ~/.vimrc
    set ideajoin
    set clipboard+=ideaput
  2. vscode 无需配置

更多个性化配置可在 .vimrc 中配置。

使用编辑器快捷键

安装 vim 插件后,插件会接管所有快捷键,一些常用的快捷键会被映射为 vim 的操作

但又需要使用原本编辑这些快捷键,例如:搜索(ctrl + f)、全选(ctrl + a)等。

  1. vscode

    在 settings.json 中添加:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "vim.handleKeys": {
    "<C-a>": false, // ctrl + a
    "<C-x>": false, // ctrl + x
    "<C-c>": false, // ...
    "<C-f>": false,
    "<C-n>": false,
    "<C-w>": false,
    "<C-b>": false,
    },
    // ctrl + ... 这些快捷键会使用 vscode 的操作
  2. webstorm

    emm… 忘了

vim 四种模式

Vim 是一款非常强大的文本编辑器,它有四种不同的模式:普通模式、插入模式、可视模式和命令行模式。下面对这四种模式进行详细地介绍:

  1. 普通模式(Normal Mode):

    普通模式是 Vim 启动后默认的模式。在这个模式下,你可以使用不同的命令来对文本进行操作。

    例如,可以使用 h、j、k 和 l 键在文本中移动;

    使用 dd 将一行文本删除,使用 yy 将一行文本复制,等等。

    普通模式下不会出现光标闪烁。按下 i 或 a 可以进入插入模式。

  2. 插入模式(Insert Mode):

    插入模式下,可以像在其他文本编辑器中一样编辑文本。

    进入此模式方法:

    1. 小写 i,大写 I。
    2. 小写 a,大写 A。

    ESC 返回普通模式。

  3. 可视模式(Visual Mode)

    在可视模式下,可以使用不同的命令来选择文本。

    进入此模式方法:

    1. 小写 v,自由选择区域。
    2. 大写 V,整行的选择。

    选择后可以进行复制、删除等操作。

    ESC 返回普通模式。

  4. 命令行模式(Command-line Mode)

    在普通模式下按下冒号 (:) 将进入命令行模式。

    在这个模式下,可以执行一些高级的操作,例如打开文件、保存文件、退出 Vim 等。

    此模式下常用命令:wq 保存并退出,w保存,q!强制退出

    ESC 返回普通模式。

命令

基础命令:

hjkl

上:k

下:j

左:h

右:l

y

复制,可以用来复制指定的文本。

yy

复制当前行,可以将当前光标所在的行复制到剪贴板中。

p

粘贴,将之前复制或剪切到剪贴板中的内容粘贴到当前光标所在位置后面。

x

删除命令,用来删除光标所在位置处的一个字符。

dd

删除一整行。具体来说,可以通过以下操作实现:

如果在执行 dd 命令之前输入了数字 n,那么会删除当前行及其后面的 n - 1 行。比如执行 3dd 命令会删除当前行及其下面的两行。

e / b

用于移动光标到单词的开头 / 结尾。

  • b 命令表示将光标移动到当前单词的开头。

  • e 命令表示将光标移动到当前单词的结尾。

这两个命令通常用于快速跳转到当前单词的开头或结尾,便于对单词进行编辑操作,如复制、删除、替换等。

gg / G

  • gg 用于将光标移动到文件的第一行。

  • G 用于将光标移动到文件的最后一行。

这两个命令通常用于快速跳转到文件的开头或结尾,便于查看或编辑文本。

另外,还可以加上数字前缀,如 10G 可以将光标移动到文本的第 10 行,2gg 可以将光标移动到文本的第二行

zz / zt / zb

用于将当前行移动到窗口的中间位置。

具体来说,它会将当前行移动到屏幕的中间,以便更好地查看当前行上下文的内容。

该命令对于浏览较长的文件很有用,可以避免连续滚动以查看当前行的上下文。

如果你正在编辑一份文档,并且需要将某个地方的内容移到窗口的中间,那么可以使用 zz 命令轻松实现这一目的。

除了 zz 命令外,还可以使用 zt 将当前行移动到屏幕的顶部,或者使用 zb 将当前行移动到屏幕的底部。

J(大写)

用于将当前行与下一行合并为一行。

具体来说,它会删除当前行和下一行之间的换行符,并将它们合并成一行。

该命令对于快速将两行文本合并为一行很有用。

如果你需要将多个短语或句子合并成一行,可以使用 J 命令轻松实现这一目的。

组合命令:

daw 删除光标所在的单词及其周围的空格。

diw 删除光标所在的单词。

daw 和 diw 的区别

dw 删除光标所在位置到单词结尾的单词和单词后的一个空格。

cw 删除光标所在位置到单词结尾的单词和单词后的一个空格,并进入插入模式。

dit

用于删除当前所在 HTML/XML 标签的内容。

其中 d 表示删除操作,it 表示内部标签(inner tag),表示删除当前光标所在标签中间的内容。

具体来说,它会将当前光标定位到所在标签的内部,然后删除整个标签内的内容以及该标签本身,并将其存储在剪贴板中,以供后续使用。

这个命令通常用于快速删除 HTML 或 XML 文件中的特定标签及其内容。

di( / di{

用于删除当前圆括号 () 之间的内容。

其中 d 表示删除操作,i( 表示内部括号(inner parenthesis),表示删除当前光标所在位置所包含的一对圆括号 () 之间的内容。

具体来说,它会将当前光标定位到所在括号的内部,然后删除括号内的所有内容,并将其存储在剪贴板中,以供后续使用。

这个命令通常用于快速删除一对圆括号 () 中的文本内容。

di’ / di”

用于删除当前单引号 ‘’ 之间的内容。

其中 d 表示删除操作,i’ 表示内部引号(inner quote),表示删除当前光标所在位置所包含的一对单引号 ‘’ 之间的内容。

具体来说,它会将当前光标定位到所在字符串的内部,然后删除该字符串中的所有内容,并将其存储在剪贴板中,以供后续使用。

这个命令通常用于快速删除一对单引号 ‘’ 中的字符串文字。

修改键盘映射(window)

Esc 键使用频率很高,手移动太大,不方便故将 Caps Lock 键映射为 Esc 键。

修改

chatGPT 提供的步骤:

以下是使用 SharpKeys 将 Caps Lock 键映射为 Esc 键的步骤:

  1. 首先,下载并安装 SharpKeys。你可以在 SharpKeys 的 GitHub 页面上找到最新的发行版。
  2. 启动 SharpKeys,并点击“Add”按钮。
  3. 在“Map this key (from key)”下拉列表中选择“Special: Caps Lock”。
  4. 在“To this key (to key)”下拉列表中选择“Special: Escape”。
  5. 点击“OK”按钮,然后点击“Write to Registry”按钮。
  6. 最后,重新启动电脑,使更改生效。

完成以上步骤后,你的 Caps Lock 键就会被映射为 Esc 键了。这样,你就可以更方便地在 Vim 或其他编辑器中进行快速的光标移动了。

软件主界面

20230411180230

step 1

20230411180523

step2

20230411180631

step3

20230411180700

复原

chatGPT 提供:

如果你使用了 SharpKeys 将 Caps Lock 键映射为 Esc 键,想要恢复原来的功能,可以按照以下步骤操作:

  1. 启动 SharpKeys。
  2. 在 SharpKeys 界面中找到你之前创建的键盘映射,然后选中它。
  3. 点击“Delete”按钮,确认删除键盘映射。
  4. 点击“Write to Registry”按钮,保存更改。
  5. 最后,重新启动电脑,使更改生效。

完成以上步骤后,Caps Lock 键的功能就会恢复为原来的状态。