vim 入门级需要了解的一些快捷键

Vim 学习笔记

其实比较主要的是习惯 hjkl 移动光标而不是箭头,然后使用 ctrl + [ 或者 ctrl + o 切换插入和普通模式,最后常用 ctrl + h 或者 ctrl + w 删除少用 delete 这样你的手在键盘上的移动距离会显著减少。然后慢慢熟悉各种快捷键,就会越来越快

普通模式的一些操作

普通模式指的是代码区域的默认状态

常用快捷键:

  1. . 命令重复上次修改
  2. > 添加缩进
  3. < 取消缩进
  4. x 删除当前字符
  5. dd 删除当前行
  6. i 在当前字符前插入
  7. a 在当前字符之后插入
  8. o 在下一行插入
  9. O 在上一行插入
  10. h 将光标往左移动一个字符, 此命令可以加一个数字前缀
  11. l 将光标往右移动一个字符, 此命令可以加一个数字前缀
  12. j 将光标移动到下一行, 此命令可以加一个数字前缀
  13. k 将光标移动到上一行, 此命令可以加一个数字前缀
  14. ^ 将光标移动到行首
  15. $ 将光标移动到行尾
  16. gg 将光标移动到文件第一行
  17. G 将光标移动到文件最后一行
  18. 20G 将光标移动到第20行
  19. 10gg 等于 10G
  20. ctrl + o 跳转到上一个位置
  21. ctrl + i 跳转到下一个位置
  22. u 撤销
  23. yy 复制当前行
  24. 5yy 复制五行
  25. p 粘贴
  26. 5p 粘贴五次
  27. f 将光标移动到下一个输入的字符前(搜索字符) , 前一个 ; 后一个
  28. F 将光标移动到上一个输入的字符前(搜索字符) , 后一个 ; 前一个
  29. * 查找下一个单词
  30. b 移动到单词开头
  31. c 重写当前行
  32. R 替换模式
  33. 0 行首
  34. 0w 相当于 ^

复合快捷键

  1. A = $a 移动到行末
  2. I = ^i 移动到行首
  3. J = ji + delete
  4. O = ki + enter
  5. s = x + i

多键操作

  1. daw 也可以删掉一个单词

插入模式的一些操作

  1. ctrl + u 删除当前行
  2. ctrl + w 删除前一个单词
  3. ctrl + h 删除前一个字符
  4. ctrl + [ 切换到普通模式, 相当于 esc
  5. ctrl + o 从插入模式切换到普通模式,输入一个命令后切换回插入模式

可视模式

  1. V 开启面向行的可视模式
  2. 10V 选中十行
  3. gv 选中上一次的选区
  4. o 选到一半发现开始或者结束的位置时按 o 可以修改起始位置
  5. = 自动对齐
  6. 可视模式可以使用大部分普通模式的快捷键比如 hjkl ctrl+[ 等等

命令行模式

常用命令

  1. :s/abc/bac 将当前行的 abc 替换为 bac
  2. :/abc 在文档中查找下一个 abc, 查找模式下 n 下一个 N 上一个
  3. :?abc 在文档中查找上一个 abc, 查找模式下 n 下一个 N 上一个
  4. :12 跳转到第12行
  5. :1,20 1-20行 但是实际上光标会移动到 20
  6. :. 当前行
  7. :% 表示所有行
  8. :ctrl + d

常用设置

  1. :\set nu 显示行号
  2. :\set hls 显示高亮
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7
陈先生

:+1: 呐,这个就叫专业

1个月前 评论
徵羽宫 (楼主) 1个月前
徵羽宫 (楼主) 1个月前
徵羽宫 (楼主) 1个月前
Slowlyo

phpstorm + IdeaVim = 世界上最好的php编辑器

尽量减少组合键, 用起来会更舒服


Jetbrains 系列的编辑器中, 可以通过键入 :actionlist 命令查看 ide 操作与 vim 命令的映射表, 然后就可以通过添加 vim 映射的方式来调用 ide 的功能, 比如:

" 格式代码 (顺序键入 空格 f m)
nnoremap <Space>fm :action ReformatCode<CR>
" 优化import (顺序键入 空格 o i)
nnoremap <Space>oi :action OptimizeImports<CR>
" 打开最近项目 (顺序键入 , n)
nnoremap <Leader>n :action ManageRecentProjects<CR>
" 打开文件 (顺序键入 , k)
nnoremap <Leader>k :action OpenFile<CR>
" 重命名文件 (顺序键入 空格 r f)
nnoremap <Leader>rf :action RenameFile<CR>
" 快速文档 (顺序键入 , q)
nnoremap <Leader>q :action QuickJavaDoc<CR>
" 自动补全 (顺序键入 , 空格)
nnoremap <Leader><Space> :action SmartTypeCompletion<CR>
" 随处搜索 (双击 ,)
nnoremap <Leader><Leader> :action SearchEverywhere<CR>


最最核心的一个映射:

" 在插入模式下, 通过双击 j 键退出插入模式
inoremap jj <Esc>

doge



vimrc 配置分享

1个月前 评论
长日将尽

我现在有意识的使用 Ctrl-n/p/f/b 来移动光标,许多编辑不是远距离移动,用 vim 还要切换模式。其他的最常用的是 <action>i/a<range>,比如 ci(ci" 直接删除括号、双引号内的内容重新编辑,ca(ca" 会把括号、双引号也一并删除。

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!