Please enable Javascript to view the contents

Vim Tips

 ·   ·  ☕ 3 分钟  ·  ✍️ starifly · 👀... 阅读

Vim Tips.

General

操作 说明
i 光标前
a 光标后
I 行首
A 行尾
x 删除光标所在字符
D 删除从当前光标到本行末尾的字符
r 替换光标处的字符
U 取消当前行中所有的改动
= 自动缩进
. (点)会重做最后一个命令
V 按行选择

Jump

操作 说明
0 跳到第一列
^ 跳到本行第一个非空字符
$ 跳到本行末尾
g_ 跳到本行最后一个非空字符
w 跳到下一个单词的开头
e 跳到这个单词的末尾
W 跳到下一个由空格分隔的单词的开头
E 跳到这个由空格分隔的单词的末尾
  • | 跳到当前光标的下一个相同单词的地方

| 跳到当前光标的上一个相同单词的地方

`. | 返回最后一次编辑位置
[[ | 到函数头
[{ | 到块开始位置
]} | 到块结束位置
gf | 打开以光标所在字符串为文件名的文件
gd | 跳转到局部变量的定义处
gD | 跳转到全局变量的定义处,从当前文件开头开始搜索
g] | 展示匹配tags的文件
E | INSERT 模式下移动光标到行尾
B | INSERT 模式下光标左移一位
ctrl+w-f | 同gf,不过会水平分割一个窗口
ctrl-^ | 跳转到上一个编辑的文件

Pattern

操作 说明
:/ pattern 单词前加空格,精确匹配
:/^pattern 搜索仅在行首出现
:/pattern$ 搜索仅在行末出现

Buffer

操作 说明
:5,10bd 删除编号5到10的buffer
:ba 把所有缓冲区在当前页中
:sb 3 分屏打开编号为3的buffer
:vertical sb 3 同上,垂直分屏

File

操作 说明
:1,10 w outfile 1到10行内容写到outfile
:1,10 w » outfile 1到10行内容追加到outfile
:r infile 插入文件内容
:23r infile 插入文件23行的内容
:e#或ctrl+^ 回到刚才编辑的文件9(貌似只有:e#有效)
:f或ctrl+g 显示文件是否被修改
:f filename 改变编辑的文件名
:e! 强制回到文件原始状态

Object

操作 说明
dip 删除所有临近的空白行
cab 等同于ca)
yiB 等同于yi}
cw 替换从光标到单词结束
dib 删除括号内的内容

Modify

操作 说明
c[n]l 改写光标后n个字母
c[n]h 改写光标前n个字母
[n]cc 修改当前n行

Replace

操作 说明
:s/old/new 用new替换行中首次出现的old
:s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g 用new替换从第#行到第#行中出现的old
:% s/old/new/g 用new替换整篇中出现的old
  • 如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

相对屏幕移动

  • 通过c-f向下翻页,c-b向上翻页;c-e逐行下滚,c-y逐行上滚。这在几乎所有Unix软件中都是好使的,比如man和less。 H可以移动到屏幕的首行,L到屏幕尾行,M到屏幕中间。

Others

  • 30i+ — 插入30个+组成的分割线
  • ctrl+v 下移 I // Esc
  • zt可以置顶当前行,通常用来查看完整的下文,比如函数、类的定义。 zz将当前行移到屏幕中部,zb移到底部。
  • :packadd termdebug,然后Termdebug 可执行程序名字可在vim里启用GDB1

  1. 需要vim版本8.1以上 ↩︎

-------他日江湖相逢 再当杯酒言欢-------
分享

飞鸟
作者: starifly ❉
天无边,智无限。


目录

点击屏幕右上角的 ···
在弹出的窗口中选择 在浏览器中打开