编辑器之神-Vim学习

Posted by 瞿广 on Saturday, July 20, 2019

TOC

编辑器之神-vim,神的编辑器-emacs

最近开始使用vim键盘流,写代码时真心不想再去碰鼠标,来回切换很麻烦。以下是记录了一些常用但是我不会的快捷键

环境准备

  • 安装vim
  • sublime、vscode、idea等编辑器安装vim插件

学习方法论

  • 一个前提:键盘映射
  • 一个定则:2 8
  • 一个要求:不用鼠标
  • 一个方法:刻意练习
  • 一个重要的事情:得不到重复的技能回遗忘
  • 一个终极目标:写作速度与思维速度一致

知识点

1. 选中模式

v V ctrol-v

2. 基于单词的移动

词首w b 词尾e ge

3. 基于字符的查找移动

f F 所在 ; 重复 ,回退

t T 之前 ; ,

4. 文本对象

x = dl X = dh D = d$ C = c$

分隔符文本对象

ib 小括号

ab

iB i} 花括号

aB a}

i>

a>

范围文本对象

iw word

aw

is sentence as

ip part ap

i-in a-around

5. 操作符待决模式

d{motion} delete

c{motion} change

y{motion} yank

v view

6. 设置标记、快速回跳

m{mark}

`{mark}

7. 复制 粘贴 翻页

y

p

ctrol f b \ d u

8. 查找替换

#

:set hls

/pattern n跳转

:%s/pattern/string/g 使用c替换确认

在命令行模式下,实现替换7,8行的字符b,用字符a替换字符b

输入:7,8s/b/a/g

其中:b就是旧的(之前的)字符 a是新的(现在的)字符

9.分屏

垂直:vs close 水平:sv 切屏:ctrl+w+w

10.滑动屏幕

zt(top) zz 滑动屏幕使当前行置于屏幕中央 zb(bottom)

ctrl+e 滑动一行 ctrl+y 滑动一行

ctrl+d 滑动半屏 ctrl+u 滑动半屏

ctrl+f 滑动一屏 ctrl+b 滑动一屏

11.大小写

~ gu gU

改善编程体验: IdeaVimExtension介绍

Intellij IDEA是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用IDE.

另外官方还提供了IdeaVim插件,熟悉vim的用户可以使用几乎与vim相同的方式操作IDEA的编辑器来编写代码.但是作为非英文用户,却有一个”输入法切换”的痛点.

考虑如下两种情况:

编辑器中在insert模式下,编写了一段中文注释,然后需要回到normal模式移动光标到其他位置继续编写代码. 正在编辑器normal模式下操作,此时突然有紧急邮件或者钉钉消息需要回复,输入法切换为中文回复后再回到编辑器. 类似上面两种场景,当回到normal模式编辑器时,我们都不得不人工操作一次输入法切换,即使您已经为输入法切换设置了非常好用的快捷键(按一下Shift),这个操作依然是恼人的,经常会忘记,输入几个字符后才发现,这可能带来误操作.

我们的期望只有一个:

在任何情况下,进入normal模式,输入法必是英文状态.

因此我基于IdeaVim的扩展点开发了一个帮助切换输入法的小插件IdeaVimExtension

IdeaVimExtension安装使用

如果您已经是IdeaVim的用户,那么直接在Intellj IDEA的插件中心搜索IdeaVimExtension进行安装.或者到IdeaVimExtension插件主页进行下载安装. IdeaVimExtension是依赖IdeaVim的,需要事先安装IdeaVim

确保你的操作系统已经开启了英文输入法

Windows需要开启en_US输入法 macOS需要开启ABC或en_US输入法 Linux 不支持 安装重启IDEA后,打开任意代码编辑器在normal模式下输入如下两个命令来激活IdeaVimExtension插件

  • :set keep-english-in-normal : 在normal模式保持英文状态
  • :set keep-english-in-normal-and-restore-in-insert : 在normal模式保持英文状态,并在回到insert时恢复输入法到原来的状态.例如,编写一段中文注释,用中文输入法写了一段文字,进入normal模式移动光标到下一行,再回到插入模式继续使用中文编辑.

上面两个命令在每次IDEA重启后都需要重新输入,也可以通过在用户目录下添加 .ideavimrc文件,将命令添加到该文件中,这样在IDEA重启时可以自动执行该文件中的指令.另外,该文件中也可以添加其他受支持的vim指令.类似vim的.vimrc文件.

https://blog.csdn.net/u012260238/article/details/81141158