Blog icon indicating copy to clipboard operation
Blog copied to clipboard

Vim技巧收集

Open codcodog opened this issue 8 years ago • 0 comments

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 djvio0ixgaewu9l

  • :g/func 查看当前文件函数列表

  • :e . 查看当前目录下的目录结构

以上,是笔者觉得常用的一些有利于提高编辑效率的技巧记录。

如果对Vim有兴趣的话,可以参考一下《Vim 101 Hacks》这本书。

codcodog avatar Dec 22 '16 03:12 codcodog