vscode vim 常用快捷键

770 阅读2分钟

vim 移动光标

  • z  +  z 将当前行置于屏幕中央
  • z + t 将当前行置于屏幕顶部
  • z + b 将当前行置于屏幕底部
  • g + g 调到文件首部
  • G 调到文件尾部
  • 行数 + g + g 调到指定行
  • 行数  + G 调到指定

vim-easymotion

基于单词的移动

  • <leader> + <leader> + w 快速移动到单词的头部(向光标下面进行移动)
  • <leader> + <leader> + b 快速移动到单词的尾部(向光标上面进行移动)
  • <leader> + <leader> + e 快速移动到字符的尾部(向光标下面进行移动)
  • <leader> + <leader> + g + e 快速移动到字符的尾部(向光标上面进行移动)

基于行的移动

  • <leader> + <leader> + j 快速移动到某行(向光标下面进行移动)
  • <leader> + <leader> + k 快速移动到某行(向光标上面进行移动)
  • <leader> + <leader> + h 快速移动到某行开头、结尾、大小写、_,#(向光标上面进行移动)
  • <leader> + <leader> + l 快速移动到某行开头、结尾、大小写、_,#(向光标下面进行移动)
  • <leader> + <leader> + <leader> + j 快速移动到某行(向光标上下任意进行移动)

单行内搜索

  • t+单个字符+回车 正向移动到下一个字符所在之处的前一个字符上
  • T +单个字符+回车反向移动到上一个字符所在之处的后一个字符上
  • f +单个字符+回车正向移动到下一个字符所在之处
  • F +单个字符+回车反向移动到上一个字符所在之处

选中函数

  • v + a + I 选中当前整个函数

  • v + a + i 选中当前整个函数(不包含最后一个括号)

  • v + i + i 选中当前函数中的内容

  • d + a + a 删除一个参数

  • c + i + a 修改一个参数

配置

{
    "editor.fontFamily": "Fira Code",
    "editor.fontLigatures": true,
    "editor.mouseWheelZoom": true,
    "cSpell.enabledLanguageIds": [
        "!markdown"
    ],
    "easymotionMarkerBackgroundColor": "green",
    "vim.easymotion": true,
    //使用系统剪贴板为寄存器
    "vim.useSystemClipboard": true,
    "workbench.iconTheme": "material-icon-theme",
    "editor.lineNumbers": "on",
    // 自定义按键绑定 
    "vim.handleKeys": {
        "<C-f>": true,
        "<C-b>": true,
        "<C-u>": true,
        "<C-e>": true,
        "<C-y>": true,
        "<C-s>": false,
        "<C-z>": false,
        "<C-c>": false,
        "<C-v>": false,
        "<C-x>": false,
        "<C-a>": false
    },
    //按键重映射
    "vim.insertModeKeyBindings": [
        {
            "before": [ "j", "j" ],
            "after": [ "<Esc>" ]
        }
    ],
    // <<// le> 视为快捷键'\'ad>>>' 视为快捷键'\'
    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": [ "<leader>", "b" ],
            "commands": [ "workbench.action.quickOpen" ]
        },
        {
            "before": [ "<leader>", "f" ],
            "commands": [ "editor.action.formatDocument" ]
        },
        {
            "before": [ "<leader>", "/" ],
            "after": [],
            "commands": [ ":set wrapscan<CR>/"
            ]
        },
        {
            "before": [ "<leader>", "?" ],
            "after": [],
            "commands": [ ":set wrapscan<CR>?" ]
        }
    ],
    "workbench.preferredLightColorTheme": "GitHub Light Colorblind (Beta)",
    "window.autoDetectColorScheme": true,
}