登录 主页

vim 快捷键

2023-02-27 10:26AM

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

使用插件: Greplace

  1. Gsearch -F '要替换的字符串' . -R --include=*rb这里的 -F, -R --include=*rb 这些参数,跟grep中的一样。

  1. 在返回的结果中,把该替换的替换。

  1. Greplace 然后选择 y/a/n 来决定是否替换。

  1. 最后, 输入 wa 保存所有文件的改动

输入文本:

从导航模式到编辑模式,有下面几种方法:

  • 在光标前输入: i ( insert )

  • 在光标后输入: a (append / after )

  • 在行首增加内容: shift + i

  • 在行末增加内容: shift + a

  • 在光标下行增加内容: o

  • 在光标上行增加内容: shift + o

删除:

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

  • 删掉一个字母:x

  • 删掉一个单词: dw

  • 删掉一行: dd

  • 删掉多行: shift +v, 然后 x 或者 d

复制与粘贴:

复制,或者删除(vim认为删除就是剪切,所有被删掉的内容,都会被放到复制缓冲区中)后,就可以粘贴了。

  • 复制一个单词: yw

  • 复制当前行: yy

  • 粘贴: p

自动补全:

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

  • 从上到下选择候选词: ctrl + n

  • 从下到上选择候选词: ctrl + p

多重复制与粘贴:

现在在 Windows, Mac 和 Linux下的复制操作,都不支持多种复制。 很奇怪。

Vim中支持。 使用YRShow 插件。

在我的个人配置中.  , + a 即可。原始命令: :YRShow 。 在弹出的“复制历史列表”中, 上下移动, 找到合适的后直接按回车即可

分割屏幕:

  • 竖屏分割: vs (vertical split缩写)

  • 横屏分割: sp (split缩写)

  • 来回跳换: ctrl + w + w (跳到下一个小窗口), 或者 ctrl + w + <j/k/h/l> (跳到某个方向的小窗口)

注释多行:

这里使用了插件: nerd-commentor. 为它配置了自己的快捷键。

  1. 选中多行 (shift + v)

  1. ,cb (逗号 c b 三个键要快速按)

取消注释: 使用传统的替换即可

为多行代码格式化:

多行选中后, 按 = 即可。 (注意:不是100%好用。 因为有的代码本身就是不完整的)

快速跳到当前光标所属文件(如果可能的话):

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

  • 在 View 中, 快速跳到一个 partial.

  • 在 config/routes.rb 中跳到controller

Rails插件:

Rails插件允许我们快速的在各种文件中跳来跳去(相信Vim 也有 Django, Spring, angular, 这样的插件.)

  • 跳转到 controller: ctrl + c

  • 跳转到 model : ctrl + m

  • 跳转到 view : 先移动到对应的action, 再 ctrl + v

显示/隐藏行数:

  • :set number 显示行数

  • :set nonumber 取消行数

折叠/取消折叠过长的行:

  • :set wrap 折叠

  • :set nowrap 取消折叠

粘贴模式:

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

  • :set paste 进入到粘贴模式

  • :set nopaste 取消粘贴模式

代码左移/右移 与 重复上一次操作:

在我们格式化代码时会用到 (极度好用)

  • 左移: 选多行后, < ( shift + , )

  • 右移: 选多行后, > ( shift + . )

  • 重复上次操作: .

vim的使用:

  • 上下左右: jkhl

  • 下一个单词: w (word)

[按一下w 相当于按多下l]

  • 前一个单词: b (backword)

  • 下一屏: ctrl + f (f = forward)

  • 上一屏 : ctrl + b (b = backward)

  • 搜索some_string: /some_string

  • 把全局的some_string 替换成 new_string : %s/some_string/new_string/g

(替换也叫全局替换 :%s/原来的字符串/新字符串/)

  • 局部替换:1.先 shift + v 选中若干行

2. :s/原来的/新的字符串

  • 继续搜索下一个: n

  • 继续搜索前一个 : N (shift + n)

  • 下一个候选: ctrl + n (next)

  • 上一个候选: ctrl + p (previous)

  • 删掉一个字母: x

  • 删掉一个单词: dw

  • 删掉一行: dd

  • 删掉3行: 3d

  • 复制一个单词: yw

  • 复制当前行: yy

  • 粘贴: p

  • 然后上下移动:shift + v

(也可以 直接 v然后上下左右移动, 这也是选择多行,只是不是整行整行的选择)

  • 选中N行: shift + v , 再 jk

  • 快速打开一个文件: ctrl + t

  • 快速打开前一个文件: ctrl + e

  • 跳到当前行的末尾: shift + 4 (意为 $ , 这是正则表达式中 末尾的意思)

  • 跳到当前行的行首: 0

  • 跳到文件头: gg

  • 跳到文件末尾: shift + g

  • 在光标前新增内容: i (insert的缩写)

  • 在光标后新增内容: a (add的缩写)

  • 快速的跳到该行最后: shift + 4

  • 快速的跳到该行最前: 0

  • 快速返回上一次编辑的文件: ctrl + o ( o 意为 outer )

  • 快速返回下一次编辑的文件: ctrl + i ( i 意为 inner )

  • 上一次编辑的地方: g;

  • 下一次编辑的地方: g,

 

参考:http://vim_book.siwei.me/lesson3.html

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论