Vim技巧收集
Vim小技巧收集
- :up newfile.txt
只有真正修改了文件才更新文件的元属性,例如,文件更改的时间。
而:w newfile.txt则是,无论你是否真的修改了文件,都会更新文件的元属性。
- :qa
关闭所有打开的文件。
- 翻屏
| 按键 | 描述 |
|---|---|
| CTRL-F | 下翻一屏 |
| CTRL-B | 上翻一屏 |
| CTRL-D | 下翻半屏 |
| CTRL-U | 上翻半屏 |
| CTRL-E | 下翻一行 |
| CTRL-Y | 上翻一行 |
- 重画屏幕上的当前行,底部或中部
| 按键 | 描述 |
|---|---|
| z<ENTER> | 重新绘制当前行在下面的屏幕光标在屏幕的顶部 |
| z- | 重新绘制当前行在下面的屏幕光标在屏幕的底部 |
| zz | 重新绘制当前行在下面的屏幕光标在屏幕的中部 |
| z. | 重新绘制当前行在下面的屏幕光标在屏幕的中部 |
- 导航到第N个字符,文件N个百分比
| 按键 | 描述 |
|---|---|
| 50% | 跳转到文件的50%位置 |
| 100| | 跳转到行中的100列 |
- 源代码导航
| 按键 | 描述 |
|---|---|
| % | 跳转到匹配的括号()或花括号{}或方括号[]。 |
| [( | 跳转到匹配的括号( |
| [{ | 跳转到匹配的括号{ |
- 在一行中导航(这一行很长,以至于warp了)
1 这是一行这是一行这是一行这是一行这是一行这是一行
这是一行这是一行这是一行这是一行
2 这是第二行
| 按键 | 描述 |
|---|---|
| gj | 向下滚动一条视线 |
| gk | 向上滚动一条视线 |
| g^ | 当前行的行首 |
| g$ | 当前行的行尾 |
| gm | 当前行的行中 |
- 标记
ma 表示标记了个命名为a的标记
`a 表示跳转到标记a的位置
'a 表示跳转到标记a的行首
mA 用大写字母的话,表示全局标记,可以跨文件跳转
- 插入文本
:r! COMMAND
插入当前命令执行后的结果到当前文本
- 替换或修改文本
| key | desc |
|---|---|
| r{c} | 替换一个字符 |
| R | 替换字符,直到按<ESC> |
| s | 用新的字符替换当前字符,并处于insert模式 |
| S | 替换当前行 |
| cc | 修改当前行,跟S类似 |
| C | 修改当前光标到行末尾 |
- 粘贴
| key | desc |
|---|---|
| “*p | 共享系统粘贴板 |
| “ayy | 复制当前行到buffer a |
| “ap | 粘贴buffer a内容 |
- 查看当前文件位置细节
CTRL-G
- 修改字符大小写
| key | desc |
|---|---|
| ~ | 当前字母修改为大(小)写 |
| gUaw | 当前单词修改为大写 |
| guaw | 当前单词修改为小写 |
- 在一行中查找字符
| key | desc |
|---|---|
| fX | 跳到当前光标当前行向后第一个X字符位置 |
| FX | 跳到当前光标当前行向前第一个X字符位置 |
| tX | 跳到当前光标当前行向后第一个X字符前一个字符位置 |
| TX | 跳到当前光标当前行向前第一个X字符前一个字符位置 |
-
gv Reselect the previous selection
-
set paste Tells vim not to auto-indent lines; useful when you're pasting pre-indented code so that you don't end up with multiple indents on every line.
-
:%!xxd You can edit binary files like in hexedit
-
:vert diffs b Easy diff between two files. Say there are two files 'a' and 'b'. To find the diff of 'a' with respect to 'b'
-
:vsp %:h Directory Listing without NERDTree
-
=<next position> For example, To indent the current line, press == To indent the code till next closing flower brace, press =} Here is an example of indenting the entire code block. Place the cursor on { and then press =%
-
:w !sudo tee % 权限不足时不用退出而强制保存
-
vim session

-
:g/func 查看当前文件函数列表
-
:e . 查看当前目录下的目录结构
以上,是笔者觉得常用的一些有利于提高编辑效率的技巧记录。
如果对Vim有兴趣的话,可以参考一下《Vim 101 Hacks》这本书。