1. 入门
  2. 修改键位
  3. 练习笔记

1. 入门

1.1 概述

看了一圈,最好的入门教程就是 Vim 自带的教程

安装 Vim 之后,运行

1
vimtutor

即可进入 Vim 自带的教程,完成新手教程大概需要一个小时吧
可以存活了…

做完这个新手教程之后再看后面进阶的内容,下面是新手教程每章后面的总结

1.2 总结

  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
    h (左移) j (下行) k (上行) l (右移)

  2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>

  3. 欲退出 Vim 编辑器,请输入 \ :q! <回车> 放弃所有改动。
    或者输入 \ :wq <回车> 保存改动。

  4. 在正常模式下删除光标所在位置的字符,请按: x

  5. 欲插入或添加文本,请输入:
    i 输入欲插入文本 \ 在光标前插入文本
    A 输入欲添加文本 \ 在一行后添加文本

  6. 欲从当前光标删除至下一个单词,请输入:dw

  7. 欲从当前光标删除至当前行末尾,请输入:d$
  8. 欲删除整行,请输入:dd
  9. 欲重复一个动作,请在它前面加上一个数字:2w
  10. 在正常模式下修改命令的格式是:
    operator [number] motion
    其中:
    operator - 操作符,代表要做的事情,比如 d 代表删除
    [number] - 可以附加的数字,代表动作重复的次数
    motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),
    $ 代表行末等等。

  11. 欲移动光标到行首,请按数字 0 键:0

  12. 欲撤消以前的操作,请输入:u (小写的 u)
    欲撤消在一行中所做的改动,请输入:U (大写的 U)
    欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R

  13. 要重新置入已经删除的文本内容,请按小写字母 p 键。
    该操作可以将已删除的文本内容置于光标之后。
    如果最后一次删除的是一个整行,那么该行将置
    于当前光标所在行的下一行。

  14. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字符即可。

  15. 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。
    比如输入 ce 可以替换当前光标到单词的末尾内容;
    输入 c$ 可以替换当
    前光标到行末的内容。

  16. 更改类命令的格式是:
    c [number] motion

  17. CTRL-G 用于显示当前光标所在位置和文件状态信息。
    G 用于将光标跳转至文件最后一行。
    先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
    gg 用于将光标跳转至文件第一行。

  18. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
    输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
    完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查找下一个匹配字符串所在;
    或者按大写 N 向相反方向查找下一匹配字符串所在。
    CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。

  19. 如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。

  20. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
    在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
    在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
    在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
    进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc

  21. :!command 用于执行一个外部命令 command。
    :!dir :!ls - 用于显示当前目录的内容。
    :!del FILENAME :!rm FILENAME - 用于删除名为 FILENAME 的文件。

  22. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。

  23. v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件 FILENAME 中。

  24. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。

  25. :r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。

  26. 输入小写的 o 可以在光标下方打开新的一行并进入插入模式。
    输入大写的 O 可以在光标上方打开新的一行。

  27. 输入小写的 a 可以在光标所在位置之后插入文本。
    输入大写的 A 可以在光标所在行的行末之后插入文本。

  28. e 命令可以使光标移动到单词末尾。

  29. 操作符 y 复制文本,p 粘贴先前复制的文本。

  30. 输入大写的 R 将进入替换模式,直至按 \ 键回到正常模式。

  31. 输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
    ‘ic’ ‘ignorecase’ 查找时忽略字母大小写
    ‘is’ ‘incsearch’ 查找短语时显示部分匹配
    ‘hls’ ‘hlsearch’ 高亮显示所有的匹配短语
    选项名可以用完整版本,也可以用缩略版本。

  32. 在选项前加上 no 可以关闭选项: :set noic

  33. 输入 :help 或者按 \ 键或 \ 键可以打开帮助窗口。

  34. 输入 :help cmd 可以找到关于 cmd 命令的帮助。

  35. 输入 CTRL-W CTRL-W 可以使您在窗口之间跳转。

  36. 输入 :q 以关闭帮助窗口

  37. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。

  38. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。按 \ 可以使用一个补全。

2. 修改键位

  1. hjkl 控制移动属实是阴间操作,我们修改为 ijkl 控制移动,原本的插入键 r 映射到 h(算了算了,还是自己适应吧)
  2. esc 的位置属实也有点偏远,CapsLk 键属实有点无用,把两个键调换一下(其实 ctrl-[和 esc 的码值是一样的,所以也行)(不过这个键位的改动不能呢通过 vimrc 改动,需要系统层面的设置)
  3. 使方向键无效,强制使用 vim 键位

调换 esc-capslk | 知乎

目前只改了 3,1 没啥用,2 太麻烦…
同时 esc 还可以用 ctrl-[ 来代替(这两种方式产生的键盘码是一模一样的)

掌握了这些之后就基本能够生存了,接着先练习一段时间,比如说写一个新东西的笔记,把这些基本操作练熟之后再进行后面的操作
(感觉 Vim 跟乐器比较类似,都是靠的肌肉记忆,跟练习打字也比较类似)

另外感觉用 Tmux 配合 Vim 使用比直接使用 Vim 的分屏要舒服…

哦对了,还有一个很重要的事情,卸载 Vscode(否则要编辑一个文件根本不会想到用 Vim…)

3. 练习笔记

3.1 Vim 粘贴系统剪切板的内容

参考博客:
Vim 在系统剪切板的复制粘贴 | CSDN

Vim 中复制粘贴指令的使用方法:
使用:help register 指令查看详细手册

3.2 Vim 安装插件

参考链接:
Vim 安装插件 | 知乎
Vim 安装插件 | 宅前疯

看了看感觉还是用插件管理器安装比较舒服一点

需要注意一点,不同的梯子代理端口不一样,需要自己看自己梯子的端口(socket5 端口)
Git 走梯子代理

Markdown 系列插件(感觉也不是那么好使,比 vscode 差多了…)

参考链接:
高效做笔记 | 知乎

1
2
3
4
5
6
7
8
9
10
11
"查看所有配置建议
:help vim-markdwon
[[ "跳转上一个标题
]] "跳转下一个标题
]c "跳转到当前标题
]u "跳转到副标题
zr "打开下一级折叠
zR "打开所有折叠
zm "折叠当前段落
zM "折叠所有段落
:Toc "显示目录