Files
My-Blog/public/about-vim/index.html
2025-06-18 21:17:41 +08:00

324 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<title>Dich&#x27;blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<meta name="robots" content="noodp"/>
<link rel="stylesheet" href="https://blog.dich.bid/style.css">
<link rel="stylesheet" href="https://blog.dich.bid/color/blue.css">
<link rel="stylesheet" href="https://blog.dich.bid/color/background_dark.css">
<link rel="stylesheet" href="https://blog.dich.bid/font-hack-subset.css">
<meta name="description" content="">
<meta property="og:description" content="">
<meta property="og:title" content="Dich'blog">
<meta property="og:type" content="article">
<meta property="og:url" content="https://blog.dich.bid/about-vim/">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:description" content="">
<meta name="twitter:title" content="Dich'blog">
<meta property="twitter:domain" content="blog.dich.bid">
<meta property="twitter:url" content="https://blog.dich.bid/about-vim/">
<link rel="alternate" type="application/atom+xml" title="Dich&#x27;blog Atom Feed" href="https://blog.dich.bid/atom.xml" />
<link rel="icon" type="image/png" href=&#x2F;dich.webp />
<!-- ✅ Added center alignment styles -->
<style>
.footer {
text-align: center;
padding: 1rem 0;
}
.footer__inner {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.copyright {
text-align: center;
}
</style>
</head>
<body class="">
<div class="container">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="https://blog.dich.bid" style="text-decoration: none;">
<div class="logo">
Dich&#x27;blog
</div>
</a>
</div>
</div>
<nav class="menu">
<ul class="menu__inner">
<li><a href="https://blog.dich.bid">blog</a></li>
<li><a href="https://blog.dich.bid/archive">archive</a></li>
<li><a href="https://blog.dich.bid/tags">tags</a></li>
<li><a href="https://blog.dich.bid/weekly">weekly</a></li>
<li><a href="https://blog.dich.bid/search">search</a></li>
<li class="active"><a href="https://blog.dich.bid/about">about me</a></li>
<li><a href="https://blog.dich.bid/links">links</a></li>
<li><a href="https://blog.dich.bid/atom.xml">rss</a></li>
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
</ul>
</nav>
</header>
<div class="content">
<div class="post">
<h1 class="post-title"><a href="https://blog.dich.bid/about-vim/">乱七八糟:Vim编辑器速查</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-08-15
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 Vim 是从早期的 vi 编辑器发展而来的增强版其名称代表“Vi IMproved”。由荷兰程序员 Bram Moolenaar 于 1991 年首次发布。Vim 是开源软件,支持多种操作系统,包括 Unix、Linux、Windows 和 macOS 等。</p>
<span id="continue-reading"></span>
<hr />
<h2 id="yi-fen-you-xiu-de-vim-su-cha-biao">一份优秀的 Vim 速查表</h2>
<blockquote>
<p>翻译自<code>https://vimsheet.com/</code></p>
</blockquote>
<p>我整理了一份我每天使用的 Vim 基本命令列表,并提供了一些配置建议,使 Vim 更加实用。因为没有配置的 Vim 使用起来会比较痛苦。</p>
<h2 id="ji-chu-ming-ling">基础命令</h2>
<h3 id="guang-biao-yi-dong-pu-tong-mo-shi-ke-shi-mo-shi">光标移动(普通模式/可视模式)</h3>
<ul>
<li><code>h</code> <code>j</code> <code>k</code> <code>l</code>:左、下、上、右移动</li>
<li><code>w</code> / <code>b</code>:下一个/上一个单词</li>
<li><code>W</code> / <code>B</code>:下一个/上一个以空格分隔的单词</li>
<li><code>e</code> / <code>ge</code>:下一个/上一个单词的结尾</li>
<li><code>0</code> / <code>$</code>:行首/行尾</li>
<li><code>^</code>:行首第一个非空白字符(等同于 <code>0w</code></li>
</ul>
<h3 id="bian-ji-wen-ben">编辑文本</h3>
<ul>
<li><code>i</code> / <code>a</code>:在光标处/之后进入插入模式</li>
<li><code>I</code> / <code>A</code>:在行首/行尾进入插入模式</li>
<li><code>o</code> / <code>O</code>:在当前行下方/上方插入空行</li>
<li><code>Esc</code><code>Ctrl+[</code>:退出插入模式</li>
<li><code>d</code>:删除</li>
<li><code>dd</code>:删除整行</li>
<li><code>c</code>:删除并进入插入模式</li>
<li><code>cc</code>:删除整行并进入插入模式</li>
</ul>
<h3 id="cao-zuo-fu">操作符</h3>
<ul>
<li>操作符也适用于可视模式</li>
<li><code>d</code>:从光标处删除到移动目标</li>
<li><code>c</code>:从光标处删除到移动目标,并进入插入模式</li>
<li><code>y</code>:从光标处复制到移动目标</li>
<li><code>&gt;</code>:缩进一级</li>
<li><code>&lt;</code>:取消缩进一级</li>
<li>操作符可与移动命令组合使用,例如:<code>d$</code> 删除从光标到行尾的内容</li>
</ul>
<h3 id="biao-ji-wen-ben-ke-shi-mo-shi">标记文本(可视模式)</h3>
<ul>
<li><code>v</code>:进入可视模式</li>
<li><code>V</code>:进入行可视模式</li>
<li><code>Ctrl+v</code>:进入块可视模式</li>
<li><code>Esc</code><code>Ctrl+[</code>:退出可视模式</li>
</ul>
<h3 id="jian-tie-ban-cao-zuo">剪贴板操作</h3>
<ul>
<li><code>yy</code>:复制整行</li>
<li><code>p</code>:在光标后粘贴</li>
<li><code>P</code>:在光标前粘贴</li>
<li><code>dd</code>:剪切整行</li>
<li><code>x</code>:删除当前字符</li>
<li><code>X</code>:删除前一个字符</li>
<li>默认情况下,<code>d</code> / <code>c</code> 会将删除的内容复制到剪贴板</li>
</ul>
<h3 id="tui-chu">退出</h3>
<ul>
<li><code>:w</code>:保存文件但不退出</li>
<li><code>:wq</code>:保存并退出</li>
<li><code>:q</code>:退出(如果有修改会失败)</li>
<li><code>:q!</code>:强制退出并放弃修改</li>
</ul>
<h3 id="sou-suo-ti-huan">搜索/替换</h3>
<ul>
<li><code>/pattern</code>:搜索 pattern</li>
<li><code>?pattern</code>:向上搜索 pattern</li>
<li><code>n</code>:重复上一次搜索(同方向)</li>
<li><code>N</code>:重复上一次搜索(反方向)</li>
<li><code>:%s/old/new/g</code>:全文件替换 old 为 new</li>
<li><code>:%s/old/new/gc</code>:全文件替换 old 为 new并逐个确认</li>
</ul>
<h3 id="chang-gui-ming-ling">常规命令</h3>
<ul>
<li><code>u</code>:撤销</li>
<li><code>Ctrl+r</code>:重做</li>
</ul>
<h2 id="gao-ji-ming-ling">高级命令</h2>
<h3 id="guang-biao-yi-dong">光标移动</h3>
<ul>
<li><code>Ctrl+d</code>:向下移动半页</li>
<li><code>Ctrl+u</code>:向上移动半页</li>
<li><code>}</code>:跳转到下一个段落(空行)</li>
<li><code>{</code>:跳转到上一个段落(空行)</li>
<li><code>gg</code>:跳转到文件顶部</li>
<li><code>G</code>:跳转到文件底部</li>
<li><code>:[num]</code>:跳转到指定行号</li>
<li><code>Ctrl+e</code> / <code>Ctrl+y</code>:向下/向上滚动一行</li>
</ul>
<h3 id="zi-fu-sou-suo">字符搜索</h3>
<ul>
<li><code>f [char]</code>:向前移动到指定字符</li>
<li><code>F [char]</code>:向后移动到指定字符</li>
<li><code>t [char]</code>:向前移动到指定字符之前</li>
<li><code>T [char]</code>:向后移动到指定字符之前</li>
<li><code>;</code> / <code>,</code>:重复上一次字符搜索(正向/反向)</li>
</ul>
<h3 id="bian-ji-wen-ben-1">编辑文本</h3>
<ul>
<li><code>J</code>:将下一行合并到当前行</li>
<li><code>r [char]</code>:用指定字符替换当前字符(不进入插入模式)</li>
</ul>
<h3 id="ke-shi-mo-shi">可视模式</h3>
<ul>
<li><code>O</code>:移动到块的另一个角</li>
<li><code>o</code>:移动到标记区域的另一端</li>
</ul>
<h3 id="wen-jian-biao-qian">文件标签</h3>
<ul>
<li><code>:e filename</code>:编辑文件</li>
<li><code>:tabe</code>:打开新标签页</li>
<li><code>gt</code>:切换到下一个标签页</li>
<li><code>gT</code>:切换到上一个标签页</li>
<li><code>:vsp</code>:垂直分割窗口</li>
<li><code>Ctrl+ws</code>:水平分割窗口</li>
<li><code>Ctrl+wv</code>:垂直分割窗口</li>
<li><code>Ctrl+ww</code>:在窗口间切换</li>
<li><code>Ctrl+wq</code>:关闭当前窗口</li>
</ul>
<h3 id="biao-ji">标记</h3>
<ul>
<li>标记允许你跳转到代码中的指定位置</li>
<li><code>m{a-z}</code>:在光标位置设置标记 {a-z}</li>
<li>大写标记 {A-Z} 是全局标记,可跨文件使用</li>
<li><code>'{a-z}</code>:跳转到设置标记的行首</li>
<li><code>''</code>:返回上一个跳转位置</li>
</ul>
<h3 id="wen-ben-dui-xiang">文本对象</h3>
<ul>
<li>例如:<code>def (arg1, arg2, arg3)</code>,光标在括号内</li>
<li><code>di(</code>:删除括号内的内容,即“删除最近括号内的内容”</li>
<li>如果没有文本对象,你需要使用 <code>T(dt)</code> 来实现相同的功能</li>
</ul>
<h3 id="chang-gui-ming-ling-1">常规命令</h3>
<ul>
<li><code>.</code>:重复上一次命令</li>
<li>在插入模式下,<code>Ctrl+r 0</code>:插入最近复制的文本</li>
<li><code>gv</code>:重新选择上一次选中的文本块</li>
<li><code>%</code>:在匹配的 <code>()</code><code>{}</code> 之间跳转</li>
</ul>
<hr />
<p>如果你希望将此速查表保存为 PDF 或打印出来,可以使用 Markdown 编辑器(如 Typora或在线工具如 Dillinger进行导出。</p>
<p>此外Vim 的默认配置可能不够友好,建议你参考以下资源进行配置优化:</p>
<ul>
<li><a href="https://github.com/tpope/vim-sensible">vim-sensible</a>:提供一套合理的默认配置</li>
<li><a href="https://github.com/tpope/vim-pathogen">vim-pathogen</a>:插件管理工具</li>
<li><a href="https://github.com/rking/ag.vim">ag.vim</a>:快速全局搜索插件</li>
<li><a href="https://github.com/ctrlpvim/ctrlp.vim">ctrlp.vim</a>:文件和缓冲区快速切换插件</li>
<li><a href="https://github.com/preservim/nerdcommenter">nerdcommenter</a>:代码注释插件</li>
</ul>
<p>这些插件可以显著提升 Vim 的功能,使其更接近一个完整的 IDE。</p>
<hr />
<p><strong>Done.</strong></p>
</div>
<div class="pagination">
<div class="pagination__title">
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
<hr />
</div>
<div class="pagination__buttons">
<span class="button previous">
<a href="https://blog.dich.bid/network-nginx/">
<span class="button__icon"></span>&nbsp;
<span class="button__text">Network的艺术:Docker建站与反向代理</span>
</a>
</span>
<span class="button next">
<a href="https://blog.dich.bid/about-2024/">
<span class="button__text">乱七八糟:2024年度总结</span>&nbsp;
<span class="button__icon"></span>
</a>
</span>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer__inner">
<div class="copyright">
<span>©
2025
Dichgrem</span>
<span class="copyright-theme">
<span class="copyright-theme-sep"> :: CC BY-SA 4.0 :: A friend comes from distant lands</span>
</a>
</span>
</div>
</div>
</footer>
</div>
</body>
</html>