登录 主页

vim的快捷键

2023-04-26 08:54AM

自动补全:

凡是在vim缓冲区中(近期打开过的文件)的代码,都可以补全

  • ctrl + n 从上到下选择候选词
  • ctrl + p 从下到上选择候选词
  • <( shift + , )左移:选多行后
  • >( shift + . )右移:选多行后
  • .  重复操作

粘贴模式:

Vim 正常模式下的粘贴,会导致粘贴的代码一行接一行的缩进。 如果要取消这种缩进的话,就要进入到 "粘贴模式". (记得在这个模式下,无法使用 ctrl + t 命令来快速打开文件。 )

: set paste 进入到粘贴模式

: set nopaste 取消粘贴模式

三种模式的切换:字母切换输入模式,esc切换导航模式,:切换命令模式

  • k 上   j 下  l 左  g 右
  •  shift + v  然后上下移动(就是选中)
  • w  下一个词。 (word)
  • b  上一个词。 (backword)
  • ctrl + f  向下一屏(f = forward)
  • ctrl + b  向上一屏(b = backward)

分屏

  • vs 竖屏分割 (vertical split缩写)
  • sp  横屏分割 (split缩写)
  • ctrl + w + w  来回跳换(跳到下一个小窗口), 或者 ctrl + w + <j/k/h/l> (跳到某个方向的小窗口)

多行注释

  • shift + v  选中多行
  • ,cb  (逗号 c b 三个键要快速按)
  • 取消注释: 使用传统的替换即可。

多行代码格式化

多行选中后, 按 = 即可。比如多行缩进对齐

:%s/原来的字符串/新字符串/ 查找替换(所有都替换的话,就在末尾加个g    :%s/原来的字符串/新字符串/g )   

shift + v 选中若干行 :s/原来的/新的字符串 替换

  • ctrl + n  下一个候选
  • ctrl + p  上一个候选

搜索 some_thing: /some_thing 继续搜索下一个: n 搜索前一个: shift + n 

快速打开文件

使用的插件: fuzzy find

ctrl + t, 就会弹出 >file> 这样的标志,然后输入:**/文件名 即可。 文件名是模糊查询。输入 ab, vim 也会把 aub 的结果列出来

Ctrl  + e  打开最近编辑的文件

快速进另一个文件:

在 Rails的 路由或者 视图文件中,很好用gf 即可 (gf = go to file)

  • shift + 4 跳到当前行的末尾
  • 0  跳到当前行的行首
  • gg 第一行
  • shift + g  末行
  • g;  跳到 上一次编辑的地方
  • g,  跳到 下一次编辑的地方
  • ctrl + o  快速返回上一次编辑的文件 ( o 意为 outer )
  • ctrl + i  快速返回下一次编辑的文件 ( i 意为 inner )
  • shift+8  跳到光标位置相同的标签或者单词处

输入文本

  • 在光标前输入 ( insert )
  • 在光标后输入 (append / after )
  • shift + i 在行首增加内容
  • shift + a 在行末增加内容
  • o 在光标下行增加内容
  • shift + o 在光标上行增加内容

删除

以下删除都以当前光标作为起始位置

    x  删掉一个字母
    dw  删掉一个单词
    dd  删掉一行
    shift + v,然后 x 或者 d  删掉多行

  • yw  复制一个单词
  • yy  复制当前行
  • 粘贴
  • ,a查看历史复制的内容,enter选中粘贴的内容

针对多个文件进行 查找和替换

使用插件: Greplace

  1. Gsearch -F '要替换的字符串' . -R --include=*rb 这里的 -F, -R --include=*rb 这些参数grep中的一样
  2. 在返回的结果中,把该替换的替换。
  3. Greplace 然后选择 y/a/n 来决定是否替换。
  4. 最后, 输入 wa 保存所有文件的改动。

切换背景色

  • :set background=dark 深色背景色
  • :set background=light 亮色 

显示/隐藏行数

  • :set number 显示行数
  • :set nonumber 取消行数

折叠/取消折叠过长的行

  • :set wrap 折叠
  • :set nowrap 取消折叠
  • :set paste 进入到粘贴模式
  • :set nopaste 取消粘贴模式

参考:Blogs

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论