一入 Vim 深似海,从此 IDE 是路人

更新中…

目录

1. 基本操作

移动光标

       ^
       k          Hint:  The h key is at the left and moves left.
 < h       l >           The l key is at the right and moves right.
       j                 The j key looks like a down arrow.
       v

文件保存与退出

待补充

  • :w
  • :wq
  • :q!
  • :qa

删除字符

  • x删除光标选中的字符

插入字符

  • i:进入编辑模式

行末添加新字符

  • A:可在当前光标行末添加新字符

2. 删除/撤销

d 命令及其参数

Many commands that change text are made from an operator and a motion.
The format for a delete command with the  d  delete operator is as follows:

    d   motion

Where: 
  d      - is the delete operator.
  motion - is what the operator will operate on (listed below).

A short list of motions:
  w - until the start of the next word, EXCLUDING its first character.
  e - to the end of the current word, INCLUDING the last character.
  $ - to the end of the line, INCLUDING the last character.
  • dw删除光标后的单词,光标停留在下一个单词的开头
  • de删除光标后的单词,光标停留在下一个单词开头的前一个字符
  • d$删除至行末

w/e 移动光标

  • w:移动至下一个单词的开头,可与数字连用,例如2w会移动至后数第二个单词的开头
  • e:移动至下一个单词的末尾,可与数字连用,例如3e会移动至后数第三个单词的末尾
  • 0:移动至光标所在行的开头(类似Home
  • d2w删除光标后数的两个单词,光标停留在第三个单词的首字符
  • d2e删除光标后数的两个单词,光标停留在第三个单词首字符的前一个字符

dd 删除整行

  • dd:删除当前行
  • 2dd:删除包括当前行之后的 2 行

Undo/Redo

  • u撤销最近的一次更改
  • U:撤销整行的更改
  • Ctrl+RRedo

3. 插入/替换/编辑

p 命令

  • p:将上一次删除的内容插入到光标之后

r 命令

  • r替换光标选中的字符

c 命令

d命令类似,满足以下格式:

> c [number] motion
  • ce:编辑光标之后的单词直至其末尾
  • c2e:编辑光标之后的 2 个单词直至其末尾
  • c$:编辑光标至行末的内容

4 定位/搜索替换/括号匹配

快速定位

  • Ctrl+G显示当前位置及行号
  • G:移动至文件末尾
  • gg:移动至文件开头
  • 313 G:移动至第313

搜索

  • /pattern向后查找包含pattern的字符串
  • ?pattern向前查找包含pattern的字符串
  • n下一个匹配
  • N上一个匹配
  • Ctrl+O:跳转至光标上一次所在位置
  • Ctrl+I:跳转至光标下一次所在位置

替换

  • :s/old/new:将该行第一个出现的old替换为new
  • :s/old/new/g:将该行所有出现的old替换为new
  • :#,#s/old/new/g:将两行之间所有出现的old替换为new
  • :%s/old/new/g:将文件中所有出现的old替换为new
  • :%s/old/new/g:查找文件中所有出现的old,并提示用户是否用new进行替换

括号匹配

  • %:查找与光标后最近的左括号([{匹配的右括号

5. 运行终端命令/保存至文件

运行终端命令

  • :!command:例如:!pwd将打印当前工作目录路径

保存至文件

  • :w FILENAME:将更改保存至FILENAME

保存选中内容

  1. 首先在起始行按下v进入可视化选择模式
  2. 移动光标,选中想要保存的内容
  3. 之后按下:,屏幕下方会出现:'<,'>
  4. 输入w TEST,即屏幕下方显示:'<,'>w TEST将选中内容保存至TEST

插入文件内容

  • :r TEST:在光标后插入文件TEST的内容
  • :r !pwd:在光标后插入pwd命令输出的内容

6. 新行插入/连续替换/复制粘贴/搜索选项

o 命令

  • :o:在光标下方插入新行,并进入编辑模式
  • :O:在光标上方插入新行,并进入编辑模式

a 命令

  • :a:在当前光标之后插入新内容,并进入编辑模式

R 命令

  • :R:进入编辑模式,并用输入的字符替换当前光标选中的字符

复制/粘贴

  • y复制选中内容
  • y2w:复制光标之后的两个单词
  • p:在光标之后粘贴内容

设置搜索选项

  • :set ic:Ignore Case,忽略大小写
  • :set noic开启大小写
  • :set hls:Highlight Search,高亮搜索
  • :nohlsearch取消当前的高亮,可简写为:nohl:noh
  • :set is:Increasing Search,递进搜索
  • :set nois取消递进搜索

7. 获取帮助/自动补全

获取帮助

  • :help:打开帮助文档

自动补全

  • Ctrl+D:显示所有匹配开头的命令
  • Tab自动补全至下一项

8. .vimrc 设置快捷键

Ctrl+S 保存

参考 Vim 实现 Ctrl+S 为保存快捷键 | 博客园

~/.vimrc中加入以下内容:

我用的是nvim,所以配置文件在~/.config/nvim/目录下

" 快捷键设置
nmap <F2> :NERDTreeToggle<cr>
nmap <F3> :TagbarToggle<cr>
nmap <F6> :GoFmt<cr>
nmap <C-s> :w<cr>

参考文章

  1. Learning Vim: What I Wish I Knew | Hacker Noon
  2. Introduction To Vim Customization | Linode
  3. The Ultimate vimrc | Github
  4. Vim Dracula Theme | Github
  5. Vundle.vim | Github
  6. lexVim - lexkong | Github
  7. 138 条 Vim 命令、操作、快捷键全集 | 马哥 Linux 运维
  8. 练了一年再来总结的 vim 使用技巧 | CU 技术社区
  9. 哈哈:180万程序员不知如何退出Vim编辑器 | 实验楼
  10. 精通 VIM ,此文就够了 | zempty 笔记
  11. 超酷的 Vim 搜索技巧 | Linux 中国
  12. Vim 系列教程 | 卡瓦邦噶