常见工具及使用技巧
VIM
粘贴
1. 普通模式下的粘贴
p
:在光标后粘贴内容(默认粘贴 Vim 的匿名寄存器""
中的内容)。P
(大写):在光标前粘贴内容。"+p
或"*p
:粘贴系统剪贴板内容(需确保 Vim 支持系统剪贴板,例如在 Linux 安装vim-gtk
或vim-gnome
)。
示例:
vim
复制
|
|
2. 插入模式下的粘贴
-
**
1
Ctrl+R
+ 寄存器名**:在插入模式下粘贴指定寄存器的内容。
Ctrl+R "
:粘贴匿名寄存器的内容。Ctrl+R +
:粘贴系统剪贴板内容(+
寄存器)。
示例:
vim
复制
|
|
3. 粘贴模式(避免自动缩进)
当粘贴代码时,自动缩进可能导致格式混乱。解决方式:
:set paste
:进入粘贴模式(禁用自动缩进)。:set nopaste
:退出粘贴模式。
或者用快捷键:
vim
复制
|
|
4. 选择系统剪贴板寄存器
"+y
:复制内容到系统剪贴板。"+p
:粘贴系统剪贴板内容。
系统差异:
- Linux:通常使用
"+
寄存器。 - Windows/macOS:
"+
和"*
可能通用。
5. 可视化模式下的粘贴
-
在可视化模式(
1
v
/
1
V
/
1
Ctrl+V
)中选择文本后:
y
复制,d
剪切,p
粘贴。
6. 常见问题
- 粘贴时代码缩进错乱:使用
:set paste
或"+p
从系统剪贴板粘贴。 - 无法访问系统剪贴板:确保 Vim 支持
+clipboard
(终端输入vim --version
检查)。
撤销
1. 基础撤销与重做
u
(普通模式下):撤销最近一次操作(可重复按u
逐步回退)。Ctrl-R
(普通模式下):重做被撤销的操作(恢复最后一次撤销)。
示例:
vim
复制
|
|
2. 多步撤销与重做
-
多次按
u
:逐次撤销更早的操作(Vim 会记录完整的操作历史)。 -
多次按
Ctrl-R
:逐次重做被撤销的操作。
3. 撤销到指定状态
:undo N
:直接回退到第N
次修改前的状态(例如:undo 5
)。:earlier 5s
:回退到 5 秒前的状态(支持s
/m
/h
单位,如:earlier 2m
)。:later 5s
:向未来恢复 5 秒后的状态。
4. 撤销分支(Undo Tree)
Vim 的撤销历史是一个树形结构(分支),允许在不同修改路径间切换:
g+
或:earlier 1f
:跳转到更新的分支版本。g-
或:later 1f
:跳转到更旧的分支版本。- 插件推荐:使用 undotree 可视化撤销历史。
5. 撤销插入模式内容
- 在插入模式(
i
)中输入大量文本后,退出到普通模式按u
,会撤销整个插入过程(视为一次操作)。
示例:
vim
复制
|
|
6. 重置修改点
:w
(保存文件):保存后会重置撤销历史的起点(无法撤销保存前的操作)。:e!
:强制重新加载文件(丢弃所有未保存的修改,回到保存状态)。
7. 查看撤销历史
:undolist
:显示所有可撤销的修改点(版本号和编号)。:changes
:显示最近的修改列表(结合g;
和g,
跳转)。
常见问题
- 误操作后无法撤销:确保未执行保存(
:w
)或外部命令打断了撤销链。 - 撤销粒度问题:Vim 将一次连续操作视为一个撤销单位(例如插入模式中的输入视为一次操作)。
Google搜索
序号 | 语法 | 语法说明 | 示例 | 示例说明 |
---|---|---|---|---|
1 | + | 同AND,搜索包含多个关键词的结果 | 搜索 + 引擎 | 搜索包含【搜索】和【引擎】两个词的页面 |
2 | OR | 或者 | 搜索 OR 引擎 | 搜索包含【搜索】或【引擎】两个词的页面 |
3 | - | 减号,不包含减号后面词的页面 | 搜索引擎 -百度 | 搜索不包括【百度】的【搜索引擎】的页面 |
4 | “” | 双引号,精确匹配 | “搜索引擎” | 精确匹配【搜索引擎】这个关键词的页面 |
5 | ***** | 星号,通配符,模糊搜索,星号代替某个字 | 搜*引擎 | 星号可以为任何字 |
6 | @ | 在用于搜索社交媒体的字词前加上@ | trump @twitter | 搜索trump的twitter |
7 | $ | 在数字前加上$搜索特定价格 | camera $400 | 搜索400$的camera |
8 | # | 搜索 # 标签 | #throwbackthursday | 搜索标签throwbackthursday |
9 | .. | 两个点,在两个数字之间加上.. 在数字范围内执行搜索 | camera 500..1000 | 搜索500−1000的camera |
10 | filetype | 搜索某一种文件类型的资源 | C++ filetype:pdf | 搜索类型为pdf的C++网页资源 |
11 | site | 在指定站点搜索 | C++ site:https://www.zhihu.com | 在知乎中搜索和C++相关的网页 |
12 | cache | 查看网站的 Google 缓存版本,会直接显示缓存页面 | cache:weibo.com | 查看微博的谷歌快照 |
13 | info | 在网址前加info:,获取网站详情 | info:github.com | 搜索github网站详情 |
14 | related | 搜索与某个网站有关联的页面 | related:sina.com | 和新浪网网站结构内容相似的一些其它网站 |
15 | link | 返回所有链接到某个URL地址的网页 | link:www.csdn.net | 搜索所有含指向【www.csdn.net】链接的网页 |
16 | inurl | 搜索查询词出现在url 中的页面 | inurl:搜索引擎 | 搜索链接url中有【搜索引擎】的网页 |
17 | intitle | 搜索查询词出现在页面标题(title)中的页面,支持中文和英文 | intitle:搜索引擎 | 搜索页面标题中有【搜索引擎】的网页 |
18 | intext | 搜索查询词出现在页面正文(title)中的页面,支持中文和英文 | SEO intext:搜索引擎 | 在正文包含【搜索引擎】的网页中搜索【SEO】 |
19 | inanchor | 搜索链接锚文字(即链接显示的文字)中包含搜索词的页面 | inanchor:前端 | 搜索链接锚文字中包含【前端】的页面 |
20 | allinurl | 即all+inurl 页面url中包含多个关键词的页面 | allinurl:SEO 搜索引擎优化 | 相当于 :inurl:SEO inurl:搜索引擎优化 |
21 | allintitle | 即all+intitle 页面标题中包含多个关键词的页面 | allintitle:SEO 搜索引擎优化 | 相当于:intitle:SEO intitle:搜索引擎优化 |
22 | allintext | 即all+inanchor 页面正文包含多个关键词的页面 | allintext:SEO 搜索引擎优化 | 相当于:intext:SEO intext:搜索引擎优化 |
23 | allinanchor | 即all+inanchor 页面链接锚文字包含多个关键词的页面 | allinanchor:SEO 搜索引擎优化 | 相当于:inanchor:SEO inanchor:搜索引擎优化 |
24 | weather | weather/time/sunrise/sundown+城市名,返回城市的天气/时间/日出时间/日落时间 | weather:beijing | 显示北京的天气 |
25 | music | 或者用songs,歌手名字+music/songs | 周杰伦 music | 返回周杰伦的各首歌曲 |