Blog
Blog copied to clipboard
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》这本书。