美文网首页vim
VSCode Vim进阶操作

VSCode Vim进阶操作

作者: KaiW | 来源:发表于2018-12-21 22:08 被阅读688次
kbt
-----------updated 2019-1-30------------

近期笔者发现VSCode在vim 模式下CPU占用经常是200%左右,卡顿非常严重,看了官方issue。
关闭easymotion 和 statusbarcolorcontrol 可以解决此问题。

  "vim.easymotion": false,
  "vim.statusBarColorControl": false

继上篇鱼和熊掌:VSCode+Vim 介绍VSCode Vim使用后差不多有一个月了。陆续遇到了一些操作上的问题,经过不断改进,码字效率得到了一点点的提升。vim是个强大的工具,但同时也引入了不少概念和快捷键需要记,好记性不如烂笔头,整理了这些提高效率的操作以备后续查看。

什么是 text object?


vim 之所以高效一个原因是对文本进行了抽象,如一个单词 一个句子 一个段落,就是文本对象(text-objects )。配合 d(delete) c(change) 可以一次性操作不同大小的文本对象,如 ‘dap’ 可以删除一个函数所有内容, daw 删除光标所在的单词及周围的空格。

另外vim还提供了文本对象操作的范围关键字 a 和 i。
iw: inner word 光标在单词里面任何位置操作单词,如 diw 可以删除光标所在的单词,比dw方便很多。
aw: around word, 它会选中当前单词,同时包含当前单词之后的空格。比如 diw 可以删除当前单词。

快速移动


写代码,除了输入字符之外最常用的操作就是移动光标。vim除了hjkl ctrl+u ctr+f外还有更快捷的移动方式,这里介绍2个插件都是vscode自带的。
1.vim-easymotion
设置"vim.easymotion": true 开启这个模式。
<leader><leader> t/T <char> 能够向前/向后快速到达可见范围内的某字符(<char>)的位置。
<leader><leader> w/b 向前/向后到达可见范围内任何单词的开头。
<leader><leader> e/ge 向前/向后到达可见范围内任何单词的结尾。
<leader><leader> k/j 向前/向后到达可见范围内任何行的行首。

2.vim-sneak
sneak模式下键入s后,再输入2个字符就可以跳转到目标位置。
s<char><char> 往前跳转到目标位置。
S<char><char> 往后跳转到目标位置。

vim-surround


vim-surround 处理环绕文本操作,如引号 ” 括号()方括号[] 花括号{} xml html标签等。

命令 说明
d s <existing char> 删除两边的指定字符
c s <existing char> <desired char> 修改两边的指定字符
y s <motion> <desired char> 修改两边字符
S <desired char> visual modes 选中指定字符中间的内容

例子:

  • "test" 输入 cs"'修改为 'test'
  • "test" 输入ds" 修改为 test
  • "test" 输入 cs"t and enter 123>修改为<123>test</123>
  • test 输入 ysaw) 修改为 (test)

代码注释


代码注释vsc使用了类似vim-commentary的操作。
使用方法:

  • gc - 打开或关闭注释. 输入 gcc 打开或关闭某一行代码注释, gc2j 打开或关闭两行代码注释。
  • gC - 块代码注释.输入 gCi) 注释 括号()中的代码。

中文输入法切换问题


vim 常用是normal 和 insert 模式。 大部分时候都在两个模式下来回切换,如果在insert 模式下是中文输入,按esc 或者 ctrl+[ 切到了 normal 模式,这个时候问题来了,需要手动切换输入法到英文,否则会弹出中文提示。
还好官方给出了解决方案:

  1. 安装 im-select: Switch your input method from terminal

  2. 修改配置

"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.US",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}"

需要注意的是,mac下需要查明模式英文输入法是US 还是British ,然后修改defaultIM这个设置,否则会不起作用。

VSCodeVim 实用技巧


gd - Go to definition, 跳转到定义。
gb - 找出与光标下相同的下一个单词, 并添加一个光标 ,接下来就可以同时修改。
af - VISUAL 模式命令, 依据语法分析, 将选择区域向外扩展。
gh - 等同于将鼠标移至光标所在单词, 方便查看定义以及报错。

参考


https://github.com/VSCodeVim/Vim

相关文章

  • vscode 使用技巧

    之前笔者写过几篇关于vscode的文章 鱼和熊掌:VSCode+Vim , VSCode Vim进阶操作,VSC...

  • VSCode Vim进阶操作

    -----------updated 2019-1-30------------ 近期笔者发现VSCode在vim...

  • vscode + vim +markdown

    vscode + vim +markdown vscode直接安装,免费 vim:通过安装vscode插件 vim...

  • Vim

    vim 常用快捷键 VIM用法 vim入门进阶与折腾 shift + v 进入可视模式 然后用hjkl选中操作的行...

  • 共享代码目录,弃用vscode中的vim,代码编辑使用pycha

    我之前使用vim已经很长时间了,但是在使用vscode的过程中我发现code的vim插件的对vim很多操作根本就是...

  • VSCode 中 Vim 的常用操作

    Vim 常用的四种模式 normal(普通) 模式 insert(编辑) 模式 visual(可视) 模式 com...

  • vim使用指南

    下面主要是针对vscode-vim的使用指南,1-9节的内容是通用的,但是后面的内容是vscode-vim特有的功...

  • SOME

    1 编辑器,Atom、Vim、VSCode、Notepad++、SublimeText

  • Vim 配置 使用

    参考文档 vi/vim使用进阶vim编辑器技巧备忘Vim 的哲学(一) 将Vim改造为强大的IDE—Vim集成

  • 好用不贵

    vim进阶: https://github.com/wsdjeg/vim-galore-zh_cn redis设计...

网友评论

    本文标题:VSCode Vim进阶操作

    本文链接:https://www.haomeiwen.com/subject/yuavkqtx.html