如何理解学习Vim编辑器语言
2019-01-26 本文已影响6人
linc2046
如何理解并学习 vim 语言
目的和弯路
1.sublime/xxxstorm/vscode 之外,接触一门新编辑器
2.linux 使用人员必备掌握
-
记忆练习, 收集各种快捷键大全,坚持练习,殊不知,vim 键盘命令组合超过 2000 种,在不断忘记和重复中,时间不超过一周,放弃;
-
尝试安装各种插件,打造最神的 IDE, 折腾一番,最后坚持不下一周, 放弃;
以上是学习使用 vim 编辑器的一些经历,我相信也是大部分同学的使用经历。
Vim 高难度的学习曲线,不掌握方法的情况下让从入门到放弃成为必然。
在看了很多文章后,我发现转换思路,将 VIM 当做一门语言来理解学习,让 vim 学习变得略微轻松些。
理解 vim 语言模式
将 vim 当成语言学习,意味和其他编程语言一样,首先要掌握基础语法,Vim 的基础语法可以用一个公式来形容:
Number + Verb Command(change) + Preposition(inside) + Objects(w)
Number 阿拉伯数字
3yy 复制三行
Verb Command 命令
单字符操作
Verb | Action |
---|---|
xX | 删除光标后的字符 |
r | 替换 |
s | 删除并插入 |
多字符操作
Verb | Action |
---|---|
dD | delete 删除指定文本 |
cC | change/insert 删除并插入 |
y | yank 复制文本 |
单行快捷操作
Verb | Action |
---|---|
yy | 复制一行 |
dd | 删除一行 |
cc | 替换一行 |
Preposition 位置描述
-
a surround/around 文本结构外部,包括环绕空格
-
i inside/inner 文本结构内部
Objects 对象
Text Objects
缩写 | 表示 | 示例 |
---|---|---|
" | 双引号 | i" |
' | 单引号 | a' |
` | 反引号 | a` |
[/{/( | 小/中/大括号 | i{ |
,w | camel 驼峰单词 | BeanFactoryTransactionAttributeSourceAdvisor |
a | argument 函数参数 | foo(42, bar(5), 'hello'); |
i | indent 缩进 | def foo(): |
r | ruby block | hash.each do |
w | word 单词 | abd cjk |
t | html xml tag 标签 | <div></div> |
s | sentence 语句 | start middle end |
p | paragraph 段落 | start middle end \n next line |
Motions 动作
-
前进一行
-
后退一页
-
跳到行尾