Vim初体验

发布于 2022-01-13  13 次阅读


老实说之前有人让我学习用vim编程我是不肯的,原因有以下:

  • 有GUI的Text Editor太香了
  • 只有editor功能,想要当作IDE用还要自己装插件
  • 快捷键繁多,不记就无法使用vim
  • ……

但是在终端敲vim实在太帅了,所以我还是屁颠屁颠的来学了
Vim的核心目标好像就是抛弃鼠标来着,学会vim以后我能拿vim打游戏吗(胡言乱语中)

Environment

不管是服务器还是本地WSL,我使用的都是ubuntu系统,ubuntu也是很常用的linux系统之一,有很强大的社群。ubuntu官网

  • 这样报错就可以很容易找到解决方案
  • 虽然系统有中文,但是官网似乎没有中文支持

安装了来自amix/vimrc的插件,功能很强大,等我摸索完了再开篇文章讲一下用了哪些插件怎么用哪些插件

具体安装方法在库中有写,且作者做了一键式处理,具体可以看库中描述。应该不会有人看不懂英文吧
代码如下:

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
  • git clone 就是从库中克隆整个项目
  • ~/.vim_runtime指将该项目放入你的主目录~./vim_runtime文件夹下
  • 后面一段就是执行一键式sh脚本,安装完以后就可以轻松使用啦

Vim Learning

说来惭愧键位太多一下子记不全,只能先记一些常用的。

Vim Modes

  • 输入模式,在正常模式(Normal Mode)中按下 下列键即可进入
    • i: 在输入指针前进入输入模式
    • a: 在输入指针后进入输入模式
    • I: 在输入指针行的行头进入输入模式
    • A: 在输入指针行的行尾进入输入模式
    • s: 删除输入指针后一格进入输入模式
    • S: 删除输入指针行进入输入模式
  • : -> 进入 命令模式(Command Mode)
    • 在vim下方会出现一行指令行,以:开头
    • 注意 指令有没有:表示了模式的不同,在装了插件后正常模式指令也会显示在下方千万不要弄错
  • Esc -> 进入 正常模式
  • v -> 进入 浏览模式(View Mode)

Direction

要学会vim,首先得记住:

  • h: 对标左方向键,向左一格
  • j: 对标下方向键,向下一行
  • k: 对标上方向键,向上一行
  • l: 对标右方向键,向右一格

有方向键当然用方向键操作方便啊kora

Command Mode

注意!!!我所有的列出的子项指令,皆需跟上其本身指令,例如w为保存,wq为保存并退出。

  • w: 保存当前更改
    • q: 保存并退出vim
  • x: 保存并退出vim
  • saveas filename: 另存为filename文件
  • e: 重新加载该文件
    • !: 重新加载该文件并无视警告
  • %s/word1/word2/g: 找到所有word1 并替换为 word2

Insert Mode

你能指望输入模式有啥指令???

  • ctrl + p: 进行名字的补充

Normal Mode

  • ZZ: 保存并退出vim
  • d: 删除指令的开端,后面跟的指令有
    • d: 删除该行的所有内容
    • 1G: 删除从开头到该指标的所有内容
    • G: 删除从该指标到结尾的所有内容
    • 0: 删除从行头到指标的所有内容
    • $: 删除从指标到行尾的所有内容
    • num hjkl: 删除num数量的 对应行/格
  • D: 删除从该指标到结尾的所有内容
  • Ctrl + f: 向上一页
  • Ctrl + b: 向下一页
  • Ctrl + u: 向上半页
  • Ctrl + d: 向下半页
  • H: 去往当前屏幕下的首行
  • M: 去往当前屏幕下的中间行
  • L: 去往当前屏幕下的尾行
  • 0: 去往行头
  • $: 去往行尾
  • number: 在输入指标处做出:
    • : 去往 后number
      - 该指令为: 输入数字后按下空格
    • : 去往 后number
      - 该指令为: 输入数字后按下回车
    • x: 删掉后面number
    • X: 删掉前面number
    • dd: 删掉后面number
    • yy: 复制后面number
    • hjkl: 跳转指 对应的 之前/之后的 number 行/格
  • y: 复制指令开头
    • y: 复制该行
    • 1G: 从开头复制到输入指标
    • G: 从输入指标复制到结尾
    • 0: 从行头复制到输入指标
    • $: 从输入指标复制到行尾
    • aw: 复制所有内容
    • num hjkl: 复制 对应的 num 行/格
  • p: 在输入指标之后粘贴内容
  • P: 在输入指标之前粘贴内容
  • .: 执行前一个操作
  • x: 删除指标后的一格
  • X: 删除指标前的一格
  • w: 去向下一个单词
  • b: 去向前一个单词
  • gg: 返回至开头
  • G: 去向结尾
  • fchar: 找到并去向下一个 char
Searching & Replacing
  • /word: 找到 下一个 word
  • ?word: 找到 前一个 word
    在进行查找后,可用下面指令继续进行查找
  • n: 找到 下一个 word
  • N: 找到 前一个 word

Conclusion

其实如果认真的学下来,会发现很多键位都是combination,所以只要熟练起来打代码速度就会很快,一起加油吧!


浊酒情殇逝,失心狂傲往。 无情者伤人,有情者自伤。