<!DOCTYPE html>
<html lang="zh-Hans">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5">
    <title>Vim 入门：基础 | 云图网</title>
    <meta name="keywords" content="# 编辑器,GitHub,go,https,macOS,shell,Ubuntu,windows,操作系统,文本编辑器,程序员">
<meta name="description" content="为工作或者新项目学习足够的 Vim 知识。 我还清晰地记得我第一次接触 Vim 的时候。那时我还是一名大学生，计算机学院的机房里都装着 Ubuntu 系统。尽管我在上大学前也曾接触过不同的 Linux 发行版（比如 RHEL &mdash;&mdash; Red Hat 在百思买出售它的 CD），但这却是我第一次要在日…">
<meta property="og:type" content="article">
<meta property="og:url" content="https://blog.ytso.com/tech/pnotes/255136.html">
<meta property="og:site_name" content="云图网">
<meta property="og:title" content="Vim 入门：基础">
<meta property="og:image" content="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161214361.jpg">
<meta property="og:description" content="为工作或者新项目学习足够的 Vim 知识。 我还清晰地记得我第一次接触 Vim 的时候。那时我还是一名大学生，计算机学院的机房里都装着 Ubuntu 系统。尽管我在上大学前也曾接触过不同的 Linux 发行版（比如 RHEL &mdash;&mdash; Red Hat 在百思买出售它的 CD），但这却是我第一次要在日…">
<link rel="canonical" href="https://blog.ytso.com/tech/pnotes/255136.html">
<meta name="applicable-device" content="pc,mobile">
<meta http-equiv="Cache-Control" content="no-transform">
<link rel="shortcut icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg">
<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
<style id='wp-img-auto-sizes-contain-inline-css' type='text/css'>
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link rel='stylesheet' id='stylesheet-css' href='https://blog.ytso.com/wp-content/themes/justnews/css/style.css?ver=6.21.5' type='text/css' media='all' />
<link rel='stylesheet' id='material-icons-css' href='https://blog.ytso.com/wp-content/themes/justnews/themer/assets/css/material-icons.css?ver=6.21.5' type='text/css' media='all' />
<link rel='stylesheet' id='remixicon-css' href='https://cdnjs.cloudflare.com/ajax/libs/remixicon/4.2.0/remixicon.min.css?ver=6.9.4' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://blog.ytso.com/wp-content/themes/justnews/themer/assets/css/font-awesome.css?ver=6.21.5' type='text/css' media='all' />
<style id='wp-block-library-inline-css' type='text/css'>
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*wp_block_styles_on_demand_placeholder:69c6d91c509a4*/
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
/*# sourceURL=/wp-includes/css/classic-themes.min.css */
</style>
<link rel='stylesheet' id='wpcom-member-css' href='https://blog.ytso.com/wp-content/plugins/wpcom-member/css/style.css?ver=1.7.19' type='text/css' media='all' />
<script type="text/javascript" src="https://blog.ytso.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://blog.ytso.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.ytso.com/xmlrpc.php?rsd" />
<meta name='description' content='为工作或者新项目学习足够的 Vim 知识。 我还清晰地记得我第一次接触 Vim 的时候。那时我还是一名大学生，计算机学院的机房里都装着 Ubuntu 系统。尽管我在上大学前也曾接触过不同的 Linux 发行版（比如 RHEL &amp;mdas…' />
<meta name='keywords' content='# 编辑器,GitHub,go,https,macOS,shell,Ubuntu,windows,操作系统,文本编辑器,程序员' />
<style>:root{--theme-color: #08c; --theme-hover: #07c; --logo-height: 32px; --logo-height-mobile: 26px; --menu-item-gap: 28px; --member-login-bg: url('https://blog.ytso.com/loginwall.jpg'); --header-bg-color: #fff; --header-bg-image: none; --theme-border-radius-s: 3px; --theme-border-radius-m: 5px; --theme-border-radius-l: 8px; --theme-border-radius-xl: 12px; --thumb-ratio-default: 480 / 300; --thumb-ratio-post: 480 / 300; --post-video-ratio: 860 / 482;}</style>
<link rel="icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" sizes="32x32" />
<link rel="icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" sizes="192x192" />
<link rel="apple-touch-icon" href="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" />
<meta name="msapplication-TileImage" content="https://imgcdn.ytso.com/wp-content/uploads/2024/10/20241015181503433.jpg" />
    <!--[if lte IE 11]><script src="https://blog.ytso.com/wp-content/themes/justnews/js/update.js"></script><![endif]-->
</head>
<body class="wp-singular post-template-default single single-post postid-255136 single-format-standard wp-theme-justnews lang-cn el-boxed header-fixed">
<header class="header header-fluid">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse" aria-label="menu">
                <span class="icon-bar icon-bar-1"></span>
                <span class="icon-bar icon-bar-2"></span>
                <span class="icon-bar icon-bar-3"></span>
            </button>
                        <div class="logo">
                <a href="https://blog.ytso.com/" rel="home">
                    <img src="https://imgcdn.ytso.com/wp-content/uploads/2021/12/20211207181156143.png" alt="云图网">
                </a>
            </div>
        </div>
        <div class="collapse navbar-collapse mobile-style-0">
            <nav class="primary-menu"><ul id="menu-justnews-footer-menu" class="nav navbar-nav wpcom-adv-menu"><li class="menu-item"><a href="https://blog.ytso.com/category/industrynews">业界资讯</a></li>
<li class="menu-item current-post-ancestor active menu-item-style menu-item-style-1 dropdown"><a target="_blank" href="https://blog.ytso.com/category/tech" class="dropdown-toggle">技术专区</a>
<ul class="dropdown-menu menu-item-wrap menu-item-col-5">
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/cloud">云计算</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/ai">人工智能</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/safety">信息安全</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/bigdata">大数据</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/dev">研发管理</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/webdev">大前端</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/opensource">开源</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/aiops">智能运维</a></li>
	<li class="menu-item current-post-ancestor current-post-parent active"><a href="https://blog.ytso.com/category/tech/pnotes">编程笔记</a></li>
	<li class="menu-item"><a href="https://blog.ytso.com/category/tech/wp">WordPress</a></li>
</ul>
</li>
<li class="menu-item"><a href="https://blog.ytso.com/category/enterprise-strategic-planning">企业战略规划</a></li>
<li class="menu-item"><a href="https://blog.ytso.com/category/download">下载专区</a></li>
<li class="menu-item"><a href="https://blog.ytso.com/category/it%e6%b1%9f%e6%b9%96%e5%8f%b2">江湖史</a></li>
<li class="menu-item"><a href="https://blog.ytso.com/category/notes">随笔记录</a></li>
</ul></nav>            <div class="navbar-action">
                <div class="navbar-search-icon j-navbar-search"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-search"></use></svg></i></div><form class="navbar-search" action="https://blog.ytso.com/" method="get" role="search"><div class="navbar-search-inner"><i class="wpcom-icon wi navbar-search-close"><svg aria-hidden="true"><use xlink:href="#wi-close"></use></svg></i><input type="text" name="s" class="navbar-search-input" autocomplete="off" maxlength="100" placeholder="输入关键词搜索..." value=""><button class="navbar-search-btn" type="submit" aria-label="搜索"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-search"></use></svg></i></button></div></form>                    <div id="j-user-wrap">
                        <a class="login" href="https://blog.ytso.com/login">登录</a>
                        <a class="login register" href="https://blog.ytso.com/register">注册</a>
                    </div>
                                            <a class="wpcom-btn btn-primary btn-xs publish" href="https://blog.ytso.com/contribute">
                            <i class="fa fa-edit"></i> 投稿                        </a>
                                </div>
        </div>
    </div><!-- /.container -->
</header>

<div id="wrap">    <div class="wrap container">
        <ol class="breadcrumb" vocab="https://schema.org/" typeof="BreadcrumbList"><li class="home" property="itemListElement" typeof="ListItem"><a href="https://blog.ytso.com" property="item" typeof="WebPage"><span property="name" class="hide">云图网</span>首页</a><meta property="position" content="1"></li><li property="itemListElement" typeof="ListItem"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-3"></use></svg></i><a href="https://blog.ytso.com/category/tech" property="item" typeof="WebPage"><span property="name">技术专区</span></a><meta property="position" content="2"></li><li property="itemListElement" typeof="ListItem"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-3"></use></svg></i><a href="https://blog.ytso.com/category/tech/pnotes" property="item" typeof="WebPage"><span property="name">编程笔记</span></a><meta property="position" content="3"></li></ol>        <main class="main">
                            <article id="post-255136" class="post-255136 post type-post status-publish format-standard hentry category-pnotes tag-11609 tag-github tag-go tag-https tag-macos tag-shell tag-ubuntu tag-windows tag-140 tag-1059 tag-76 entry">
                    <div class="entry-main">
                                                                        <div class="entry-head">
                            <h1 class="entry-title">Vim 入门：基础</h1>
                            <div class="entry-info">
                                                                <time class="entry-date published" datetime="2022-05-18T11:55:30+08:00" pubdate>
                                    2022年5月18日 11:55                                </time>
                                <span class="dot">•</span>
                                <a href="https://blog.ytso.com/category/tech/pnotes" rel="category tag">编程笔记</a>                                                            </div>
                        </div>
                        
                                                <div class="entry-content text-indent text-justify">
                            <div id="toc">
<p class="toc-title"><strong>文章目录</strong><span class="toc-controller toc-controller-show">[隐藏]</span></p>
<ul>
<li class="toc-level3"><a href="#toc_1">第 0 步：打开一个控制台窗口</a></li>
<li class="toc-level3"><a href="#toc_2">第 1 步：创建一个 Vim 文件和不保存退出</a></li>
<li class="toc-level3"><a href="#toc_3">第 2 步：在 Vim 中修改并保存</a></li>
<li class="toc-level3"><a href="#toc_4">第 3 步：Vim 中的基本导航</a></li>
<li class="toc-level3"><a href="#toc_5">第 4 步：Vim 中的基本编辑</a></li>
<li class="toc-level3"><a href="#toc_6">第 5 步：Vim 中的基本搜索</a></li>
<li class="toc-level3"><a href="#toc_7">附加步骤：Vim 中的分割模式</a></li>
<li class="toc-level3"><a href="#toc_8">Vim 速查表</a></li>
</ul>
</div>
<blockquote>
<p>为工作或者新项目学习足够的 Vim 知识。</p>
</blockquote>
<p>我还清晰地记得我第一次接触 Vim 的时候。那时我还是一名大学生，计算机学院的机房里都装着 Ubuntu 系统。尽管我在上大学前也曾接触过不同的 Linux 发行版（比如 RHEL &mdash;&mdash; Red Hat 在百思买出售它的 CD），但这却是我第一次要在日常中频繁使用 Linux 系统，因为我的课程要求我这样做。当我开始使用 Linux 时，正如我的前辈和将来的后继者们一样，我感觉自己像是一名&ldquo;真正的程序员&rdquo;了。</p>
<p><noscript><img decoding="async" title="Real Programmers comic" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161214361.jpg" alt="Real Programmers comic" /></noscript><img decoding="async" title="Real Programmers comic" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161214361.jpg" alt="Real Programmers comic" /></p>
<p><em>真正的程序员，来自 <a href="https://xkcd.com/378/">xkcd</a></em></p>
<p>学生们可以使用像 <a href="https://kate-editor.org">Kate</a> 一样的图形文本编辑器，这也安装在学校的电脑上了。对于那些可以使用 shell 但不习惯使用控制台编辑器的学生，最流行的选择是 <a href="https://www.nano-editor.org">Nano</a>，它提供了很好的交互式菜单和类似于 Windows 图形文本编辑器的体验。</p>
<p>我有时会用 Nano，但当我听说 <a href="https://www.vim.org">Vi/Vim</a> 和 <a href="https://www.gnu.org/software/emacs">Emacs</a> 能做一些很棒的事情时我决定试一试它们（主要是因为它们看起来很酷，而且我也很好奇它们有什么特别之处）。第一次使用 Vim 时吓到我了 &mdash;&mdash; 我不想搞砸任何事情！但是，一旦我掌握了它的诀窍，事情就变得容易得多，我就可以欣赏这个编辑器的强大功能了。至于 Emacs，呃，我有点放弃了，但我很高兴我坚持和 Vim 在一起。</p>
<p>在本文中，我将介绍一下 Vim（基于我的个人经验），这样你就可以在 Linux 系统上用它来作为编辑器使用了。这篇文章不会让你变成 Vim 的专家，甚至不会触及 Vim 许多强大功能的皮毛。但是起点总是很重要的，我想让开始的经历尽可能简单，剩下的则由你自己去探索。</p>
<h3 id="toc_1">第 0 步：打开一个控制台窗口</h3>
<p>在使用 Vim 前，你需要做一些准备工作。在 Linux 操作系统打开控制台终端。（因为 Vim 也可以在 MacOS 上使用，Mac 用户也可以使用这些说明）。</p>
<p>打开终端窗口后，输入 <code>ls</code> 命令列出当前目录下的内容。然后，输入 <code>mkdir Tutorial</code> 命令创建一个名为 <code>Tutorial</code> 的新目录。通过输入 <code>cd Tutorial</code> 来进入该目录。</p>
<p><noscript><img decoding="async" title="Create a folder" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161215454.jpg" alt="Create a folder" /></noscript><img decoding="async" title="Create a folder" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161215454.jpg" alt="Create a folder" /></p>
<p>这就是全部的准备工作。现在是时候转到有趣的部分了&mdash;&mdash;开始使用 Vim。</p>
<h3 id="toc_2">第 1 步：创建一个 Vim 文件和不保存退出</h3>
<p>还记得我一开始说过我不敢使用 Vim 吗？我当时在害怕&ldquo;如果我改变了一个现有的文件，把事情搞砸了怎么办？&rdquo;毕竟，一些计算机科学作业要求我修改现有的文件。我想知道：<u>如何在不保存更改的情况下打开和关闭文件？</u></p>
<p>好消息是你可以使用相同的命令在 Vim 中创建或打开文件：<code>vim &lt;FILE_NAME&gt;</code>，其中 <code>&lt;FILE_NAME&gt;</code> 表示要创建或修改的目标文件名。让我们通过输入 <code>vim HelloWorld.java</code> 来创建一个名为 <code>HelloWorld.java</code> 的文件。</p>
<p>你好，Vim！现在，讲一下 Vim 中一个非常重要的概念，可能也是最需要记住的：Vim 有多种模式，下面是 Vim 基础中需要知道的的三种：</p>
<table>
<thead>
<tr>
<th>模式</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>正常模式</td>
<td>默认模式，用于导航和简单编辑</td>
</tr>
<tr>
<td>插入模式</td>
<td>用于直接插入和修改文本</td>
</tr>
<tr>
<td>命令行模式</td>
<td>用于执行如保存，退出等命令</td>
</tr>
</tbody>
</table>
<p>Vim 也有其他模式，例如可视模式、选择模式和命令模式。不过上面的三种模式对我们来说已经足够用了。</p>
<p>你现在正处于正常模式，如果有文本，你可以用箭头键移动或使用其他导航键（将在稍后看到）。要确定你正处于正常模式，只需按下 <code>esc</code> (Escape）键即可。</p>
<blockquote>
<p><strong>提示：</strong> <code>Esc</code> 切换到正常模式。即使你已经在正常模式下，点击 <code>Esc</code> 只是为了练习。</p>
</blockquote>
<p>现在，有趣的事情发生了。输入 <code>:</code> （冒号键）并接着 <code>q!</code> （完整命令：<code>:q!</code>）。你的屏幕将显示如下：</p>
<p><noscript><img decoding="async" title="Editing Vim" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161216705.jpg" alt="Editing Vim" /></noscript><img decoding="async" title="Editing Vim" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161216705.jpg" alt="Editing Vim" /></p>
<p>在正常模式下输入冒号会将 Vim 切换到命令行模式，执行 <code>:q!</code> 命令将退出 Vim 编辑器而不进行保存。换句话说，你放弃了所有的更改。你也可以使用 <code>ZQ</code> 命令；选择你认为更方便的选项。</p>
<p>一旦你按下 <code>Enter</code> （回车），你就不再在 Vim 中。重复练习几次来掌握这条命令。熟悉了这部分内容之后，请转到下一节，了解如何对文件进行更改。</p>
<h3 id="toc_3">第 2 步：在 Vim 中修改并保存</h3>
<p>通过输入 <code>vim HelloWorld.java</code> 和回车键来再次打开这个文件。你可以在插入模式中修改文件。首先，通过 <code>Esc</code> 键来确定你正处于正常模式。接着输入 <code>i</code> 来进入插入模式（没错，就是字母 <strong>i</strong>）。</p>
<p>在左下角，你将看到 <code>-- INSERT --</code>，这标志着你这处于插入模式。</p>
<p><noscript><img decoding="async" title="Vim insert mode" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161216231.jpg" alt="Vim insert mode" /></noscript><img decoding="async" title="Vim insert mode" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161216231.jpg" alt="Vim insert mode" /></p>
<p>写一些 Java 代码。你可以写任何你想写的，不过这也有一份你可以参照的例子。你的屏幕将显示如下：</p>
<pre class="prettyprint linenums"><code>public class HelloWorld {
  public static void main([String][11][] args) {
  }
}</code></pre>
<p>非常漂亮！注意文本是如何在 Java 语法中高亮显示的。因为这是个 Java 文件，所以 Vim 将自动检测语法并高亮颜色。</p>
<p>保存文件：按下 <code>Esc</code> 来退出插入模式并进入命令行模式。输入 <code>:</code> 并接着 <code>x!</code> （完整命令：<code>:x!</code>），按回车键来保存文件。你也可以输入 <code>wq</code> 来执行相同的操作。</p>
<p>现在，你知道了如何使用插入模式输入文本并使用以下命令保存文件：<code>:x!</code> 或者 <code>:wq</code>。</p>
<h3 id="toc_4">第 3 步：Vim 中的基本导航</h3>
<p>虽然你总是可以使用上箭头、下箭头、左箭头和右箭头在文件中移动，但在一个几乎有数不清行数的大文件中，这将是非常困难的。能够在一行中跳跃光标将会是很有用的。虽然 Vim 提供了不少很棒的导航功能，不过在一开始，我想向你展示如何在 Vim 中到达某一特定的行。</p>
<p>单击 <code>Esc</code> 来确定你处于正常模式，接着输入 <code>:set number</code> 并键入回车。</p>
<p>瞧！你现在可以在每一行的左侧看到行号。</p>
<p><noscript><img decoding="async" title="Showing Line Numbers" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161216873.jpg" alt="Showing Line Numbers" /></noscript><img decoding="async" title="Showing Line Numbers" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161216873.jpg" alt="Showing Line Numbers" /></p>
<p>好，你也许会说，&ldquo;这确实很酷，不过我该怎么跳到某一行呢？&rdquo;再一次的，确认你正处于正常模式。接着输入 <code>:&lt;LINE_NUMBER&gt;</code>，在这里 <code>&lt;LINE_NUMBER&gt;</code> 是你想去的那一行的行数。按下回车键来试着移动到第二行。</p>
<pre class="prettyprint linenums"><code>:2</code></pre>
<p>现在，跳到第三行。</p>
<p><noscript><img decoding="async" title="Jump to line 3" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161217944.jpg" alt="Jump to line 3" /></noscript><img decoding="async" title="Jump to line 3" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161217944.jpg" alt="Jump to line 3" /></p>
<p>但是，假如你正在处理一个一千多行的文件，而你正想到文件底部。这该怎么办呢？确认你正处于正常模式，接着输入 <code>:$</code> 并按下回车。</p>
<p>你将来到最后一行！</p>
<p>现在，你知道如何在行间跳跃了，作为补充，我们来学一下如何移动到一行的行尾。确认你正处于有文本内容的一行，如第三行，接着输入 <code>$</code>。</p>
<p><noscript><img decoding="async" title="Go to the&nbsp;last character" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161217464.jpg" alt="Go to the&nbsp;last character" /></noscript><img decoding="async" title="Go to the&nbsp;last character" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161217464.jpg" alt="Go to the&nbsp;last character" /></p>
<p>你现在来到这行的最后一个字节了。在此示例中，高亮左大括号以显示光标移动到的位置，右大括号被高亮是因为它是高亮的左大括号的匹配字符。</p>
<p>这就是 Vim 中的基本导航功能。等等，别急着退出文件。让我们转到 Vim 中的基本编辑。不过，你可以暂时顺便喝杯咖啡或茶休息一下。</p>
<h3 id="toc_5">第 4 步：Vim 中的基本编辑</h3>
<p>现在，你已经知道如何通过跳到想要的一行来在文件中导航，你可以使用这个技能在 Vim 中进行一些基本编辑。切换到插入模式。（还记得怎么做吗？是不是输入 <code>i</code> ？）当然，你可以使用键盘逐一删除或插入字符来进行编辑，但是 Vim 提供了更快捷的方法来编辑文件。</p>
<p>来到第三行，这里的代码是 <code>public static void main(String[] args) {</code>。双击 <code>d</code> 键，没错，就是 <code>dd</code>。如果你成功做到了，你将会看到，第三行消失了，剩下的所有行都向上移动了一行。（例如，第四行变成了第三行）。</p>
<p><noscript><img decoding="async" title="Deleting A Line" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161218130.jpg" alt="Deleting A Line" /></noscript><img decoding="async" title="Deleting A Line" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161218130.jpg" alt="Deleting A Line" /></p>
<p>这就是<ruby>删除<rt>delete</rt></ruby>命令。不要担心，键入 <code>u</code>，你会发现这一行又回来了。喔，这就是<ruby>撤销<rt>undo</rt></ruby>命令。</p>
<p><noscript><img decoding="async" title="Undoing a change in Vim" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161218480.jpg" alt="Undoing a change in Vim" /></noscript><img decoding="async" title="Undoing a change in Vim" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161218480.jpg" alt="Undoing a change in Vim" /></p>
<p>下一课是学习如何复制和粘贴文本，但首先，你需要学习如何在 Vim 中突出显示文本。按下 <code>v</code> 并向左右移动光标来选择或反选文本。当你向其他人展示代码并希望标识你想让他们注意到的代码时，这个功能也非常有用。</p>
<p><noscript><img decoding="async" title="Highlighting text in Vim" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161219431.jpg" alt="Highlighting text in Vim" /></noscript><img decoding="async" title="Highlighting text in Vim" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161219431.jpg" alt="Highlighting text in Vim" /></p>
<p>来到第四行，这里的代码是 <code>System.out.println("Hello, Opensource");</code>。高亮这一行的所有内容。好了吗？当第四行的内容处于高亮时，按下 <code>y</code>。这就叫做<ruby>复制<rt>yank</rt></ruby>模式，文本将会被复制到剪贴板上。接下来，输入 <code>o</code> 来创建新的一行。注意，这将让你进入插入模式。通过按 <code>Esc</code> 退出插入模式，然后按下 <code>p</code>，代表<ruby>粘贴<rt>paste</rt></ruby>。这将把复制的文本从第三行粘贴到第四行。</p>
<p><noscript><img decoding="async" title="Pasting in Vim" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161219143.jpg" alt="Pasting in Vim" /></noscript><img decoding="async" title="Pasting in Vim" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161219143.jpg" alt="Pasting in Vim" /></p>
<p>作为练习，请重复这些步骤，但也要修改新创建的行中的文字。此外，请确保这些行对齐工整。</p>
<blockquote>
<p><strong>提示：</strong> 您需要在插入模式和命令行模式之间来回切换才能完成此任务。</p>
</blockquote>
<p>当你完成了，通过 <code>x!</code> 命令保存文件。以上就是 Vim 基本编辑的全部内容。</p>
<h3 id="toc_6">第 5 步：Vim 中的基本搜索</h3>
<p>假设你的团队领导希望你更改项目中的文本字符串。你该如何快速完成任务？你可能希望使用某个关键字来搜索该行。</p>
<p>Vim 的搜索功能非常有用。通过 <code>Esc</code> 键来进入命令模式，然后输入冒号 <code>:</code>，我们可以通过输入 <code>/&lt;SEARCH_KEYWORD&gt;</code> 来搜索关键词， <code>&lt;SEARCH_KEYWORD&gt;</code> 指你希望搜索的字符串。在这里，我们搜索关键字符串 <code>Hello</code>。在下面的图示中没有显示冒号，但这是必须输入的。</p>
<p><noscript><img decoding="async" title="Searching in Vim" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161220941.jpg" alt="Searching in Vim" /></noscript><img decoding="async" title="Searching in Vim" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161220941.jpg" alt="Searching in Vim" /></p>
<p>但是，一个关键字可以出现不止一次，而这可能不是你想要的那一个。那么，如何找到下一个匹配项呢？只需按 <code>n</code> 键即可，这代表<ruby>下一个<rt>next</rt></ruby>。执行此操作时，请确保你没有处于插入模式！</p>
<h3 id="toc_7">附加步骤：Vim 中的分割模式</h3>
<p>以上几乎涵盖了所有的 Vim 基础知识。但是，作为一个额外奖励，我想给你展示 Vim 一个很酷的特性，叫做<ruby>分割<rt>split</rt></ruby>模式。</p>
<p>退出 <code>HelloWorld.java</code> 并创建一个新文件。在控制台窗口中，输入 <code>vim GoodBye.java</code> 并按回车键来创建一个名为 <code>GoodBye.java</code> 的新文件。</p>
<p>输入任何你想输入的让内容，我选择输入 <code>Goodbye</code>。保存文件（记住你可以在命令模式中使用 <code>:x!</code> 或者 <code>:wq</code>）。</p>
<p>在命令模式中，输入 <code>:split HelloWorld.java</code>，来看看发生了什么。</p>
<p><noscript><img decoding="async" title="Split mode in Vim" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161220284.jpg" alt="Split mode in Vim" /></noscript><img decoding="async" title="Split mode in Vim" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161220284.jpg" alt="Split mode in Vim" /></p>
<p>Wow！快看！ <code>split</code> 命令将控制台窗口水平分割成了两个部分，上面是 <code>HelloWorld.java</code>，下面是 <code>GoodBye.java</code>。该怎么能在窗口之间切换呢？ 按住 <code>Control</code> 键（在 Mac 上）或 <code>Ctrl</code> 键（在 PC 上），然后按下 <code>ww</code> (即双击 <code>w</code> 键)。</p>
<p>作为最后一个练习，尝试通过复制和粘贴 <code>HelloWorld.java</code> 来编辑 <code>GoodBye.java</code> 以匹配下面屏幕上的内容。</p>
<p><noscript><img decoding="async" title="Modify GoodBye.java file in Split Mode" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161221171.jpg" alt="Modify GoodBye.java file in Split Mode" /></noscript><img decoding="async" title="Modify GoodBye.java file in Split Mode" class="j-lazy" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161221171.jpg" alt="Modify GoodBye.java file in Split Mode" /></p>
<p>保存两份文件，成功！</p>
<blockquote>
<p><strong>提示 1：</strong> 如果你想将两个文件窗口垂直分割，使用 <code>:vsplit &lt;FILE_NAME&gt;</code> 命令。（代替 <code>:split &lt;FILE_NAME&gt;</code> 命令，<code>&lt;FILE_NAME&gt;</code> 指你想要使用分割模式打开的文件名）。</p>
<p><strong>提示 2：</strong> 你可以通过调用任意数量的 <code>split</code> 或者 <code>vsplit</code> 命令来打开两个以上的文件。试一试，看看它效果如何。</p>
</blockquote>
<h3 id="toc_8">Vim 速查表</h3>
<p>在本文中，您学会了如何使用 Vim 来完成工作或项目，但这只是你开启 Vim 强大功能之旅的开始，可以查看其他很棒的教程和技巧。</p>
<p>为了让一切变得简单些，我已经将你学到的一切总结到了 <a href="https://opensource.com/downloads/cheat-sheet-vim">一份方便的速查表</a> 中。</p>
<hr />
<p>via: <a href="https://opensource.com/article/19/3/getting-started-vim">https://opensource.com/article/19/3/getting-started-vim</a></p>
<p>作者：<a href="https://opensource.com/users/brson">Bryant Son</a> 选题：<a href="https://github.com/lujun9972">lujun9972</a> 译者：<a href="https://github.com/Modrisco">Modrisco</a> 校对：<a href="https://github.com/wxy">wxy</a></p>
<p>本文由 <a href="https://github.com/LCTT/TranslateProject">LCTT</a> 原创编译，<a href="https://linux.cn/">Linux中国</a> 荣誉推出</p>
<section><noscript><img decoding="async" style="width:24px;height: 24px;float: right;" alt="Vim 入门：基础" src="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161222534.svg"></noscript><img decoding="async" style="width:24px;height: 24px;float: right;" class="j-lazy" alt="Vim 入门：基础" src="https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161222534.svg"><br class="clear"></section>
<div class="entry-readmore"><div class="entry-readmore-btn"></div></div>                                                        <div class="entry-copyright"><p>原创文章，作者：ItWorker，如若转载，请注明出处：https://blog.ytso.com/tech/pnotes/255136.html</p></div>                        </div>

                        <div class="entry-tag"><a href="https://blog.ytso.com/tag/%e7%bc%96%e8%be%91%e5%99%a8" rel="tag"># 编辑器</a><a href="https://blog.ytso.com/tag/github" rel="tag">GitHub</a><a href="https://blog.ytso.com/tag/go" rel="tag">go</a><a href="https://blog.ytso.com/tag/https" rel="tag">https</a><a href="https://blog.ytso.com/tag/macos" rel="tag">macOS</a><a href="https://blog.ytso.com/tag/shell" rel="tag">shell</a><a href="https://blog.ytso.com/tag/ubuntu" rel="tag">Ubuntu</a><a href="https://blog.ytso.com/tag/windows" rel="tag">windows</a><a href="https://blog.ytso.com/tag/%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f" rel="tag">操作系统</a><a href="https://blog.ytso.com/tag/%e6%96%87%e6%9c%ac%e7%bc%96%e8%be%91%e5%99%a8" rel="tag">文本编辑器</a><a href="https://blog.ytso.com/tag/%e7%a8%8b%e5%ba%8f%e5%91%98" rel="tag">程序员</a></div>
                        <div class="entry-action">
                            <div class="btn-zan" data-id="255136"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-thumb-up-fill"></use></svg></i> 赞 <span class="entry-action-num">(0)</span></div>
                                                    </div>

                        <div class="entry-bar">
                            <div class="entry-bar-inner">
                                                                <div class="entry-bar-info entry-bar-info2">
                                    <div class="info-item meta">
                                                                                    <a class="meta-item j-heart" href="javascript:;" data-id="255136"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-star"></use></svg></i> <span class="data">0</span></a>                                        <a class="meta-item" href="#comments"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-comment"></use></svg></i> <span class="data">0</span></a>                                                                            </div>
                                    <div class="info-item share">
                                                                                    <a class="meta-item mobile j-mobile-share" href="javascript:;" data-id="255136" data-qrcode="https://blog.ytso.com/tech/pnotes/255136.html">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-share"></use></svg></i> 生成海报                                            </a>
                                                                                    <a class="meta-item wechat" data-share="wechat" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-wechat"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item weibo" data-share="weibo" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-weibo"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item qq" data-share="qq" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-qq"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item qzone" data-share="qzone" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-qzone"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item douban" data-share="douban" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-douban"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item linkedin" data-share="linkedin" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-linkedin"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item facebook" data-share="facebook" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-facebook"></use></svg></i>                                            </a>
                                                                                    <a class="meta-item twitter" data-share="twitter" target="_blank" rel="nofollow noopener noreferrer" href="#">
                                                <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-twitter"></use></svg></i>                                            </a>
                                                                            </div>
                                    <div class="info-item act">
                                        <a href="javascript:;" id="j-reading"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-article"></use></svg></i></a>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                                            <div class="entry-page">
                    <div class="entry-page-prev j-lazy" style="background-image: url('https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png');" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517231040350.jpg">
                <a href="https://blog.ytso.com/tech/pnotes/255861.html" title="又闹分裂？Node.js 被分叉出一个项目 — Ayo.js" rel="prev">
                    <span>又闹分裂？Node.js 被分叉出一个项目 — Ayo.js</span>
                </a>
                <div class="entry-page-info">
                    <span class="pull-left"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-left-double"></use></svg></i> 上一篇</span>
                    <span class="pull-right">2022年5月18日 11:54</span>
                </div>
            </div>
                            <div class="entry-page-next j-lazy" style="background-image: url('https://blog.ytso.com/wp-content/themes/justnews/themer/assets/images/lazy.png');" data-original="http://ytso-blog-oss-img.oss-accelerate.aliyuncs.com/wp-content/uploads/2022/05/17/20220517161235835.jpg">
                <a href="https://blog.ytso.com/tech/pnotes/255137.html" title="解决 Ubuntu 在启动时冻结的问题" rel="next">
                    <span>解决 Ubuntu 在启动时冻结的问题</span>
                </a>
                <div class="entry-page-info">
                    <span class="pull-right">下一篇 <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-right-double"></use></svg></i></span>
                    <span class="pull-left">2022年5月18日 11:57</span>
                </div>
            </div>
            </div>
                                                                <div class="entry-related-posts">
                            <h3 class="entry-related-title">相关推荐</h3><ul class="entry-related cols-3 post-loop post-loop-list"><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/255384.html" target="_blank" rel="bookmark">
        <span>Android团队项目开发之统一代码规范</span>
    </a>
    <span class="date">2022年5月18日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/48808.html" target="_blank" rel="bookmark">
        <span>如何在 Ubuntu 和其他 Linux 发行版中启动、停止和重启服务</span>
    </a>
    <span class="date">2021年8月6日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/download/164752.html" target="_blank" rel="bookmark">
        <span>ieaseMusic &#8211; 可能是目前最好的网易云音乐播放器 [macOS/Linux]</span>
    </a>
    <span class="date">2021年9月20日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/47551.html" target="_blank" rel="bookmark">
        <span>Linux 文件系统详解</span>
    </a>
    <span class="date">2021年8月6日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/214724.html" target="_blank" rel="bookmark">
        <span>Win10小技巧：修复损坏的系统内置图标</span>
    </a>
    <span class="date">2021年12月21日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/industrynews/103545.html" target="_blank" rel="bookmark">
        <span>Win11 突现新 bug，这次是安全中心部分功能打不开（附临时解决方法）</span>
    </a>
    <span class="date">2021年8月25日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/59165.html" target="_blank" rel="bookmark">
        <span>文件加密</span>
    </a>
    <span class="date">2021年8月9日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/261864.html" target="_blank" rel="bookmark">
        <span>网站建设者在夜间做得更好的6个理由</span>
    </a>
    <span class="date">2022年5月25日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/aiops/252693.html" target="_blank" rel="bookmark">
        <span>CSDN免积分下载，0积分下载！免费提供CSDN下载服务！</span>
    </a>
    <span class="date">2022年5月4日</span>
</li><li class="item">
    <a href="https://blog.ytso.com/tech/pnotes/50157.html" target="_blank" rel="bookmark">
        <span>利用 Python 探究 Google 的自然语言 API</span>
    </a>
    <span class="date">2021年8月6日</span>
</li></ul>                        </div>
                    
<div id="comments" class="entry-comments">
    <error>
    <code>wp_die</code>
    <title><![CDATA[WordPress &amp;rsaquo; Error]]></title>
    <message><![CDATA[&lt;h1&gt;Error establishing a Redis connection&lt;/h1&gt;
&lt;p&gt;To disable Redis, delete the &lt;code&gt;object-cache.php&lt;/code&gt; file in the &lt;code&gt;/wp-content/&lt;/code&gt; directory.&lt;/p&gt;
]]></message>
    <data>
        <status>500</status>
    </data>
</error>
<!--
Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com

Retrieved 2277 objects (388 KB) from Redis using Predis (v2.4.0).
-->
