Featured image of post 常见工具及使用技巧

常见工具及使用技巧

T常见工具及使用技巧

常见工具及使用技巧

VIM

粘贴

1. 普通模式下的粘贴

  • p:在光标粘贴内容(默认粘贴 Vim 的匿名寄存器 "" 中的内容)。
  • P(大写):在光标粘贴内容。
  • "+p"*p:粘贴系统剪贴板内容(需确保 Vim 支持系统剪贴板,例如在 Linux 安装 vim-gtkvim-gnome)。

示例

vim

复制

1
2
3
4
yy    # 复制当前行到匿名寄存器
p     # 在光标后粘贴
"+yy  # 复制当前行到系统剪贴板
"+p   # 粘贴系统剪贴板内容

2. 插入模式下的粘贴

  • **

    1
    
    Ctrl+R
    

    + 寄存器名**:在插入模式下粘贴指定寄存器的内容。

    • Ctrl+R ":粘贴匿名寄存器的内容。
    • Ctrl+R +:粘贴系统剪贴板内容(+ 寄存器)。

示例

vim

复制

1
2
i                # 进入插入模式
Ctrl+R +         # 粘贴系统剪贴板内容

3. 粘贴模式(避免自动缩进)

当粘贴代码时,自动缩进可能导致格式混乱。解决方式:

  • :set paste:进入粘贴模式(禁用自动缩进)。
  • :set nopaste:退出粘贴模式。

或者用快捷键

vim

复制

1
2
" 在插入模式下直接粘贴系统剪贴板(自动处理格式)
Shift + Insert    # 部分终端支持

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

复制

1
2
3
dd    # 删除一行
u     # 撤销删除恢复该行Ctrl-R # 重做删除再次删除该行

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

复制

1
2
3
i     # 进入插入模式
Hello World<Esc> # 输入文本并退出
u     # 撤销整个插入文本消失

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 返回周杰伦的各首歌曲
使用 Hugo 构建
主题 StackJimmy 设计