mirror of
https://github.com/jaywcjlove/reference
synced 2026-04-30 01:36:52 +00:00
doc: Update react.md cheatsheet. a723b97df5
This commit is contained in:
166
docs/vim.html
166
docs/vim.html
@@ -39,36 +39,36 @@
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="运动图"><a aria-hidden="true" tabindex="-1" href="#运动图"><span class="icon icon-link"></span></a>运动图</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">▼/▶ 光标 ▽/▷ 目标
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">▼/▶ 光标 ▽/▷ 目标
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="左右动作"><a aria-hidden="true" tabindex="-1" href="#左右动作"><span class="icon icon-link"></span></a>左右动作</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">╭┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token operator">|</span>
|
||||
</span><span class="code-line line-number" line="2">├┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token number">0</span> $ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line line-number" line="3">┆ ╭┈┈┈┈┈┈┈┈┈┈ ^ fe ┈┈┈┈┈┈┈┈╮ ┆
|
||||
</span><span class="code-line line-number" line="4">┆ ┆ ╭┈┈┈┈┈┈┈ Fo te ┈┈┈┈┈┈┈╮┆ ┆
|
||||
</span><span class="code-line line-number" line="5">┆ ┆ ┆╭┈┈┈┈┈┈ To <span class="token number">30</span><span class="token operator">|</span> ┈┈┈╮ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="6">┆ ┆ ┆┆ ╭┈┈┈┈ ge w ┈┈┈╮ ┆ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="7">┆ ┆ ┆┆ ┆ ╭┈┈ b e ┈╮ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="8">┆ ┆ ┆┆ ┆ ┆ ╭h l╮ ┆ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="9">▽ ▽ ▽▽ ▽ ▽ ▽▼ ▼▽ ▽ ▽ ▽ ▽▽ ▽
|
||||
</span><span class="code-line line-number" line="10"> <span class="token builtin class-name">echo</span> <span class="token string">"A cheatsheet from quickReference"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">╭┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token operator">|</span>
|
||||
</span><span class="code-line">├┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token number">0</span> $ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line">┆ ╭┈┈┈┈┈┈┈┈┈┈ ^ fe ┈┈┈┈┈┈┈┈╮ ┆
|
||||
</span><span class="code-line">┆ ┆ ╭┈┈┈┈┈┈┈ Fo te ┈┈┈┈┈┈┈╮┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆╭┈┈┈┈┈┈ To <span class="token number">30</span><span class="token operator">|</span> ┈┈┈╮ ┆┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆┆ ╭┈┈┈┈ ge w ┈┈┈╮ ┆ ┆┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆┆ ┆ ╭┈┈ b e ┈╮ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆┆ ┆ ┆ ╭h l╮ ┆ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line">▽ ▽ ▽▽ ▽ ▽ ▽▼ ▼▽ ▽ ▽ ▽ ▽▽ ▽
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"A cheatsheet from quickReference"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="上下动作"><a aria-hidden="true" tabindex="-1" href="#上下动作"><span class="icon icon-link"></span></a>上下动作</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"> - SCREEN <span class="token number">1</span> START
|
||||
</span><span class="code-line line-number" line="2"> ╭┈┬┈┈┈┈┈┈┈┈┈▷ <span class="token comment">#!/usr/bin/python</span>
|
||||
</span><span class="code-line line-number" line="3"> ┆ ┆ ╭┈┈┈▷
|
||||
</span><span class="code-line line-number" line="4"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> ┆ ┆ <span class="token punctuation">{</span> <span class="token punctuation">}</span> ▶ print<span class="token punctuation">(</span><span class="token string">"Vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"!"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> ┆ ┆ └┈▷
|
||||
</span><span class="code-line line-number" line="8"> ┆ ┆ ╭┈┈┈┬┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"Welcome"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9">G gg H M L k j ▶ print<span class="token punctuation">(</span><span class="token string">"to"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10">┆ ┆ └┈▷ print<span class="token punctuation">(</span><span class="token string">"Quick Reference"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11">┆ ┆ print<span class="token punctuation">(</span><span class="token string">"/vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="12">┆ ┆
|
||||
</span><span class="code-line line-number" line="13">┆ ╰┈┈┈┈┈▷
|
||||
</span><span class="code-line line-number" line="14">┆ - SCREEN <span class="token number">1</span> END
|
||||
</span><span class="code-line line-number" line="15">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"SCREEN 2"</span><span class="token punctuation">)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"> - SCREEN <span class="token number">1</span> START
|
||||
</span><span class="code-line"> ╭┈┬┈┈┈┈┈┈┈┈┈▷ <span class="token comment">#!/usr/bin/python</span>
|
||||
</span><span class="code-line"> ┆ ┆ ╭┈┈┈▷
|
||||
</span><span class="code-line"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> ┆ ┆ <span class="token punctuation">{</span> <span class="token punctuation">}</span> ▶ print<span class="token punctuation">(</span><span class="token string">"Vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"!"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> ┆ ┆ └┈▷
|
||||
</span><span class="code-line"> ┆ ┆ ╭┈┈┈┬┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"Welcome"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">G gg H M L k j ▶ print<span class="token punctuation">(</span><span class="token string">"to"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">┆ ┆ └┈▷ print<span class="token punctuation">(</span><span class="token string">"Quick Reference"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">┆ ┆ print<span class="token punctuation">(</span><span class="token string">"/vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">┆ ┆
|
||||
</span><span class="code-line">┆ ╰┈┈┈┈┈▷
|
||||
</span><span class="code-line">┆ - SCREEN <span class="token number">1</span> END
|
||||
</span><span class="code-line">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"SCREEN 2"</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="动作"><a aria-hidden="true" tabindex="-1" href="#动作"><span class="icon icon-link"></span></a>动作</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
@@ -647,8 +647,8 @@
|
||||
<table class="show-header"><thead><tr><th align="left">组合</th><th>说明</th></tr></thead><tbody><tr><td align="left"><code>d</code><yel>d</yel></td><td>删除当前行</td></tr><tr><td align="left"><code>d</code><yel>j</yel></td><td>删除两行</td></tr><tr><td align="left"><code>d</code><yel>w</yel></td><td>删除到下一个单词</td></tr><tr><td align="left"><code>d</code><yel>b</yel></td><td>删除到单词的开头</td></tr><tr><td align="left"><code>d</code><yel>fa</yel></td><td>删除直到 <code>a</code> 字符</td></tr><tr><td align="left"><code>d</code><yel>/hello</yel></td><td>删除直到 <code>hello</code></td></tr><tr><td align="left"><code>c</code><yel>c</yel></td><td>更改当前行,与 <code>S</code> 同义</td></tr><tr><td align="left"><code>y</code><yel>y</yel></td><td>复制当前行</td></tr><tr><td align="left"><code>></code><yel>j</yel></td><td>缩进 2 行</td></tr><tr><td align="left">gg<code>d</code><yel>G</yel></td><td>删除完整的文档</td></tr><tr><td align="left">gg<code>=</code><yel>G</yel></td><td>缩进一个完整的文档</td></tr><tr><td align="left">gg<code>y</code><yel>G</yel></td><td>复制整个文档</td></tr></tbody></table>
|
||||
<!--rehype:className=show-header-->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="计数"><a aria-hidden="true" tabindex="-1" href="#计数"><span class="icon icon-link"></span></a>计数</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
</span><span class="code-line"><span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@@ -1101,7 +1101,7 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>/foo</code></td><td>向前搜索</td></tr><tr><td align="left"><code>/foo\c</code></td><td>向前搜索 <em>(不区分大小写)</em></td></tr><tr><td align="left"><code>?foo</code></td><td>向后搜索</td></tr><tr><td align="left"><code>/\v\d+</code></td><td>使用 <a href="./regex.html">regex</a> 搜索</td></tr><tr><td align="left"><code>n</code></td><td>下一个匹配的搜索模式</td></tr><tr><td align="left"><code>N</code></td><td>上一场比赛</td></tr><tr><td align="left"><code>*</code></td><td>向前搜索当前单词</td></tr><tr><td align="left"><code>#</code></td><td>向后搜索当前单词</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="更换行"><a aria-hidden="true" tabindex="-1" href="#更换行"><span class="icon icon-link"></span></a>更换行</h3><div class="wrap-body">
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@@ -1139,7 +1139,7 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>:s/old/new</code></td><td>先更换</td></tr><tr><td align="left"><code>:s/old/new/g</code></td><td>全部替换</td></tr><tr><td align="left"><code>:s/\vold/new/g</code></td><td>全部替换为 <a href="./regex.html">regex</a></td></tr><tr><td align="left"><code>:s/old/new/gc</code></td><td>全部替换_(确认)_</td></tr><tr><td align="left"><code>:s/old/new/i</code></td><td>先忽略大小写替换</td></tr><tr><td align="left"><code>:2,6s/old/new/g</code></td><td>在 <code>2</code>-<code>6</code> 行之间替换</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="替换文件"><a aria-hidden="true" tabindex="-1" href="#替换文件"><span class="icon icon-link"></span></a>替换文件</h3><div class="wrap-body">
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token operator">%</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token operator">%</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@@ -1222,7 +1222,7 @@
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>%</code></td><td>整个文件</td></tr><tr><td align="left"><code>’<,’></code></td><td>当前选择</td></tr><tr><td align="left"><code>5</code></td><td>第 <code>5</code> 行</td></tr><tr><td align="left"><code>5,10</code></td><td>第 <code>5</code> 行到第 <code>10</code> 行</td></tr><tr><td align="left"><code>$</code></td><td>最后一行</td></tr><tr><td align="left"><code>2,$</code></td><td>第 <code>2</code> 行到最后</td></tr><tr><td align="left"><code>.</code></td><td>当前行</td></tr><tr><td align="left"><code>,3</code></td><td>接下来的 <code>3</code> 行</td></tr><tr><td align="left"><code>-3,</code></td><td>转发 <code>3</code> 行</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="全局命令"><a aria-hidden="true" tabindex="-1" href="#全局命令"><span class="icon icon-link"></span></a>全局命令</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>g<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>g<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@@ -1264,7 +1264,7 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>:g/foo/d</code></td><td>删除包含 <code>foo</code> 的行</td></tr><tr><td align="left"><code>:g!/foo/d</code></td><td>删除不包含 <code>foo</code> 的行</td></tr><tr><td align="left"><code>:g/^\s*$/d</code></td><td>删除所有空行</td></tr><tr><td align="left"><code>:g/foo/t$</code></td><td>将包含 <code>foo</code> 的行复制到 EOF</td></tr><tr><td align="left"><code>:g/foo/m$</code></td><td>将包含 <code>foo</code> 的行移动到 EOF</td></tr><tr><td align="left"><code>:g/^/m0</code></td><td>反转文件</td></tr><tr><td align="left"><code>:g/^/t.</code></td><td>复制每一行</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="inverse逆-g"><a aria-hidden="true" tabindex="-1" href="#inverse逆-g"><span class="icon icon-link"></span></a>Inverse(逆) :g</h3><div class="wrap-body">
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>v<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>v<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@@ -1353,33 +1353,33 @@
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>&</code> <em>|</em> <code>\0</code></td><td>替换为整个匹配的</td></tr><tr><td align="left"><code>\1</code>...<code>\9</code></td><td>替换为 0-9 组</td></tr><tr><td align="left"><code>\u</code></td><td>大写下一个字母</td></tr><tr><td align="left"><code>\U</code></td><td>后面的大写字符</td></tr><tr><td align="left"><code>\l</code></td><td>小写下一个字母</td></tr><tr><td align="left"><code>\L</code></td><td>后面的字符小写</td></tr><tr><td align="left"><code>\e</code></td><td><code>\u</code>、<code>\U</code>、<code>\l</code> 和 <code>\L</code> 的结尾</td></tr><tr><td align="left"><code>\E</code></td><td><code>\u</code>、<code>\U</code>、<code>\l</code> 和 <code>\L</code> 的结尾</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="例子-1"><a aria-hidden="true" tabindex="-1" href="#例子-1"><span class="icon icon-link"></span></a>例子</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:s/a<span class="token punctuation">\</span><span class="token operator">|</span>b/xxx<span class="token punctuation">\</span>0xxx/g <span class="token comment"># 将 "a b" 修改为 "xxxaxxx xxxbxxx"</span>
|
||||
</span><span class="code-line line-number" line="2">:s/test/<span class="token punctuation">\</span>U<span class="token operator">&</span> file/ <span class="token comment"># 将 "test" 修改为 "TEST FILE"</span>
|
||||
</span><span class="code-line line-number" line="3">:s/<span class="token punctuation">\</span><span class="token punctuation">(</span>test<span class="token punctuation">\</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>U<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>e file/ <span class="token comment"># 将 "test" 修改为 "TEST file"</span>
|
||||
</span><span class="code-line line-number" line="4">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>abc<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">[</span>efg<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span><span class="token number">2</span><span class="token punctuation">\</span><span class="token number">1</span>/g <span class="token comment"># 将 "af fa bg" 修改为 "fa fa gb"</span>
|
||||
</span><span class="code-line line-number" line="5">:s/<span class="token punctuation">\</span>v<span class="token punctuation">\</span>w+/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">0</span>/g <span class="token comment"># 将 "bla bla" 修改为 "Bla Bla"</span>
|
||||
</span><span class="code-line line-number" line="6">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>ab<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">|</span><span class="token punctuation">(</span><span class="token punctuation">[</span>cd<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>1x/g <span class="token comment"># 将 "a b c d" 修改为 "ax bx x x"</span>
|
||||
</span><span class="code-line line-number" line="7">:%s/.*/<span class="token punctuation">\</span>L<span class="token operator">&</span>/ <span class="token comment"># 将 "HTML" 修改为 "html"</span>
|
||||
</span><span class="code-line line-number" line="8">:s/<span class="token punctuation">\</span>v<span class="token operator"><</span><span class="token punctuation">(</span><span class="token builtin class-name">.</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w*<span class="token punctuation">)</span>/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>L<span class="token punctuation">\</span><span class="token number">2</span>/g <span class="token comment"># 将单词的每个首字母大写</span>
|
||||
</span><span class="code-line line-number" line="9">:%s/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span>/<span class="token punctuation">\</span><span class="token number">1</span>/ <span class="token comment"># 删除重复行</span>
|
||||
</span><span class="code-line line-number" line="10">:%s/<span class="token operator"><</span><span class="token punctuation">\</span>/<span class="token punctuation">\</span><span class="token operator">=</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w<span class="token punctuation">\</span>+<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token operator">></span>/<span class="token punctuation">\</span>U<span class="token operator">&</span>/g <span class="token comment"># 将 HTML 标记转换为大写</span>
|
||||
</span><span class="code-line line-number" line="11">:g/^pattern/s/$/mytext <span class="token comment"># 查找文本并将其附加到末尾</span>
|
||||
</span><span class="code-line line-number" line="12">:g/pattern/norm<span class="token operator">!</span> @i <span class="token comment"># 在匹配行上运行宏</span>
|
||||
</span><span class="code-line line-number" line="13">/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r<span class="token punctuation">\</span>?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>+$ <span class="token comment"># 查看重复行</span>
|
||||
</span><span class="code-line line-number" line="14">/<span class="token punctuation">\</span>v^<span class="token punctuation">(</span>.*<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">)</span>+$ <span class="token comment"># 查看重复行(非常神奇)</span>
|
||||
</span><span class="code-line line-number" line="15">:v/./,/./-j <span class="token comment"># 将空行压缩成空行</span>
|
||||
</span><span class="code-line line-number" line="16">:g/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">1</span>></span>/,/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">2</span>></span>/d <span class="token comment"># 从 <p1> 到 <p2> 包含删除</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:s/a<span class="token punctuation">\</span><span class="token operator">|</span>b/xxx<span class="token punctuation">\</span>0xxx/g <span class="token comment"># 将 "a b" 修改为 "xxxaxxx xxxbxxx"</span>
|
||||
</span><span class="code-line">:s/test/<span class="token punctuation">\</span>U<span class="token operator">&</span> file/ <span class="token comment"># 将 "test" 修改为 "TEST FILE"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span><span class="token punctuation">(</span>test<span class="token punctuation">\</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>U<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>e file/ <span class="token comment"># 将 "test" 修改为 "TEST file"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>abc<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">[</span>efg<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span><span class="token number">2</span><span class="token punctuation">\</span><span class="token number">1</span>/g <span class="token comment"># 将 "af fa bg" 修改为 "fa fa gb"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token punctuation">\</span>w+/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">0</span>/g <span class="token comment"># 将 "bla bla" 修改为 "Bla Bla"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>ab<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">|</span><span class="token punctuation">(</span><span class="token punctuation">[</span>cd<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>1x/g <span class="token comment"># 将 "a b c d" 修改为 "ax bx x x"</span>
|
||||
</span><span class="code-line">:%s/.*/<span class="token punctuation">\</span>L<span class="token operator">&</span>/ <span class="token comment"># 将 "HTML" 修改为 "html"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token operator"><</span><span class="token punctuation">(</span><span class="token builtin class-name">.</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w*<span class="token punctuation">)</span>/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>L<span class="token punctuation">\</span><span class="token number">2</span>/g <span class="token comment"># 将单词的每个首字母大写</span>
|
||||
</span><span class="code-line">:%s/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span>/<span class="token punctuation">\</span><span class="token number">1</span>/ <span class="token comment"># 删除重复行</span>
|
||||
</span><span class="code-line">:%s/<span class="token operator"><</span><span class="token punctuation">\</span>/<span class="token punctuation">\</span><span class="token operator">=</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w<span class="token punctuation">\</span>+<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token operator">></span>/<span class="token punctuation">\</span>U<span class="token operator">&</span>/g <span class="token comment"># 将 HTML 标记转换为大写</span>
|
||||
</span><span class="code-line">:g/^pattern/s/$/mytext <span class="token comment"># 查找文本并将其附加到末尾</span>
|
||||
</span><span class="code-line">:g/pattern/norm<span class="token operator">!</span> @i <span class="token comment"># 在匹配行上运行宏</span>
|
||||
</span><span class="code-line">/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r<span class="token punctuation">\</span>?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>+$ <span class="token comment"># 查看重复行</span>
|
||||
</span><span class="code-line">/<span class="token punctuation">\</span>v^<span class="token punctuation">(</span>.*<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">)</span>+$ <span class="token comment"># 查看重复行(非常神奇)</span>
|
||||
</span><span class="code-line">:v/./,/./-j <span class="token comment"># 将空行压缩成空行</span>
|
||||
</span><span class="code-line">:g/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">1</span>></span>/,/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">2</span>></span>/d <span class="token comment"># 从 <p1> 到 <p2> 包含删除</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="vimdiff"><a aria-hidden="true" tabindex="-1" href="#vimdiff"><span class="icon icon-link"></span></a>Vimdiff</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 style="background:#d7a100;" id="用法-2"><a aria-hidden="true" tabindex="-1" href="#用法-2"><span class="icon icon-link"></span></a>用法</h3><div class="wrap-body">
|
||||
<!--rehype:style=background:#d7a100;-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ vimdiff file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">vim</span> <span class="token parameter variable">-d</span> file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ vimdiff file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
</span><span class="code-line">$ <span class="token function">vim</span> <span class="token parameter variable">-d</span> file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="编辑"><a aria-hidden="true" tabindex="-1" href="#编辑"><span class="icon icon-link"></span></a>编辑</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">:[range]diffget [bufspec]
|
||||
</span><span class="code-line line-number" line="2">:[range]diffput [bufspec]
|
||||
<pre><code class="code-highlight"><span class="code-line">:[range]diffget [bufspec]
|
||||
</span><span class="code-line">:[range]diffput [bufspec]
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@@ -1913,66 +1913,66 @@
|
||||
<!--rehype:className=shortcuts-->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="技巧"><a aria-hidden="true" tabindex="-1" href="#技巧"><span class="icon icon-link"></span></a>技巧</h3><div class="wrap-body">
|
||||
<p>删除重复行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:sort <span class="token operator">|</span> %<span class="token operator">!</span>uniq <span class="token parameter variable">-u</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:sort <span class="token operator">|</span> %<span class="token operator">!</span>uniq <span class="token parameter variable">-u</span>
|
||||
</span></code></pre>
|
||||
<p>对文件中的行进行编号</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:%<span class="token operator">!</span>cat <span class="token parameter variable">-n</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:%<span class="token operator">!</span>cat <span class="token parameter variable">-n</span>
|
||||
</span></code></pre>
|
||||
<p>将整个文档复制到剪贴板</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:%w <span class="token operator">!</span>pbcopy <span class="token comment"># Mac OS X</span>
|
||||
</span><span class="code-line line-number" line="2">:%w <span class="token operator">!</span>xclip <span class="token parameter variable">-i</span> <span class="token parameter variable">-sel</span> c <span class="token comment"># GNU/Linux</span>
|
||||
</span><span class="code-line line-number" line="3">:%w <span class="token operator">!</span>xsel <span class="token parameter variable">-i</span> <span class="token parameter variable">-b</span> <span class="token comment"># GNU/Linux</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:%w <span class="token operator">!</span>pbcopy <span class="token comment"># Mac OS X</span>
|
||||
</span><span class="code-line">:%w <span class="token operator">!</span>xclip <span class="token parameter variable">-i</span> <span class="token parameter variable">-sel</span> c <span class="token comment"># GNU/Linux</span>
|
||||
</span><span class="code-line">:%w <span class="token operator">!</span>xsel <span class="token parameter variable">-i</span> <span class="token parameter variable">-b</span> <span class="token comment"># GNU/Linux</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="理解-vim"><a aria-hidden="true" tabindex="-1" href="#理解-vim"><span class="icon icon-link"></span></a>理解 Vim</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="动词理解"><a aria-hidden="true" tabindex="-1" href="#动词理解"><span class="icon icon-link"></span></a>动词理解</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">d <span class="token comment"># 表示删除delete</span>
|
||||
</span><span class="code-line line-number" line="2">r <span class="token comment"># 表示替换replace</span>
|
||||
</span><span class="code-line line-number" line="3">c <span class="token comment"># 表示修改change</span>
|
||||
</span><span class="code-line line-number" line="4">y <span class="token comment"># 表示复制yank</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">v</span> <span class="token comment"># 表示选取visual select</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">d <span class="token comment"># 表示删除delete</span>
|
||||
</span><span class="code-line">r <span class="token comment"># 表示替换replace</span>
|
||||
</span><span class="code-line">c <span class="token comment"># 表示修改change</span>
|
||||
</span><span class="code-line">y <span class="token comment"># 表示复制yank</span>
|
||||
</span><span class="code-line"><span class="token function">v</span> <span class="token comment"># 表示选取visual select</span>
|
||||
</span></code></pre>
|
||||
<p>动词代表了我们打算对文本进行什么样的操作</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="名词理解"><a aria-hidden="true" tabindex="-1" href="#名词理解"><span class="icon icon-link"></span></a>名词理解</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">w <span class="token comment"># 表示一个单词word</span>
|
||||
</span><span class="code-line line-number" line="2">s <span class="token comment"># 表示一个句子sentence</span>
|
||||
</span><span class="code-line line-number" line="3">p <span class="token comment"># 表示一个段落paragraph</span>
|
||||
</span><span class="code-line line-number" line="4">t <span class="token comment"># 表示一个 HTML 标签tag</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">w <span class="token comment"># 表示一个单词word</span>
|
||||
</span><span class="code-line">s <span class="token comment"># 表示一个句子sentence</span>
|
||||
</span><span class="code-line">p <span class="token comment"># 表示一个段落paragraph</span>
|
||||
</span><span class="code-line">t <span class="token comment"># 表示一个 HTML 标签tag</span>
|
||||
</span></code></pre>
|
||||
<p>名词代表了我们即将处理的文本。引号或者各种括号所包含的文本称作一个文本块。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="介词理解"><a aria-hidden="true" tabindex="-1" href="#介词理解"><span class="icon icon-link"></span></a>介词理解</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">i <span class="token comment"># 表示在...之内 inside</span>
|
||||
</span><span class="code-line line-number" line="2">a <span class="token comment"># 表示环绕... around</span>
|
||||
</span><span class="code-line line-number" line="3">t <span class="token comment"># 表示到...位置前 to</span>
|
||||
</span><span class="code-line line-number" line="4">f <span class="token comment"># 表示到...位置上 forward</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">i <span class="token comment"># 表示在...之内 inside</span>
|
||||
</span><span class="code-line">a <span class="token comment"># 表示环绕... around</span>
|
||||
</span><span class="code-line">t <span class="token comment"># 表示到...位置前 to</span>
|
||||
</span><span class="code-line">f <span class="token comment"># 表示到...位置上 forward</span>
|
||||
</span></code></pre>
|
||||
<p>介词界定了待编辑文本的范围或者位置。</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="数词理解"><a aria-hidden="true" tabindex="-1" href="#数词理解"><span class="icon icon-link"></span></a>数词理解</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<p>数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。引入数词之后,文本编辑命令的语法就升级成了下面这样:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">动词 介词/数词 名词
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">动词 介词/数词 名词
|
||||
</span></code></pre>
|
||||
<p>下面是几个例子:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">c3w <span class="token comment"># 修改三个单词:change three words</span>
|
||||
</span><span class="code-line line-number" line="2">d2w <span class="token comment"># 删除两个单词:delete two words</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">c3w <span class="token comment"># 修改三个单词:change three words</span>
|
||||
</span><span class="code-line">d2w <span class="token comment"># 删除两个单词:delete two words</span>
|
||||
</span></code></pre>
|
||||
<p>另外,数词也可以修饰动词,表示将操作执行 <code>n</code> 次。于是,我们又有了下面的语法:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">数词 动词 名词
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">数词 动词 名词
|
||||
</span></code></pre>
|
||||
<p>示例</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">2dw <span class="token comment"># 两次删除单词(等价于删除两个单词): twice delete word</span>
|
||||
</span><span class="code-line line-number" line="2">3x <span class="token comment"># 三次删除字符(等价于删除三个字符): three times delete character</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">2dw <span class="token comment"># 两次删除单词(等价于删除两个单词): twice delete word</span>
|
||||
</span><span class="code-line">3x <span class="token comment"># 三次删除字符(等价于删除三个字符): three times delete character</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="组词为句理解"><a aria-hidden="true" tabindex="-1" href="#组词为句理解"><span class="icon icon-link"></span></a>组词为句理解</h3><div class="wrap-body">
|
||||
<p>有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。文本编辑命令的基本语法如下:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">动词 介词 名词
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">动词 介词 名词
|
||||
</span></code></pre>
|
||||
<p>下面是一些例子</p>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">dip <span class="token comment"># 删除一个段落: delete inside paragraph</span>
|
||||
</span><span class="code-line line-number" line="2">vis <span class="token comment"># 选取一个句子: visual select inside sentence</span>
|
||||
</span><span class="code-line line-number" line="3">ciw <span class="token comment"># 修改一个单词: change inside word</span>
|
||||
</span><span class="code-line line-number" line="4">caw <span class="token comment"># 修改一个单词: change around word</span>
|
||||
</span><span class="code-line line-number" line="5">dtx <span class="token comment"># 删除文本直到字符“x”(不包括字符“x”): delete to x</span>
|
||||
</span><span class="code-line line-number" line="6">dfx <span class="token comment"># 删除文本直到字符“x”(包括字符“x”): delete forward x</span>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">dip <span class="token comment"># 删除一个段落: delete inside paragraph</span>
|
||||
</span><span class="code-line">vis <span class="token comment"># 选取一个句子: visual select inside sentence</span>
|
||||
</span><span class="code-line">ciw <span class="token comment"># 修改一个单词: change inside word</span>
|
||||
</span><span class="code-line">caw <span class="token comment"># 修改一个单词: change around word</span>
|
||||
</span><span class="code-line">dtx <span class="token comment"># 删除文本直到字符“x”(不包括字符“x”): delete to x</span>
|
||||
</span><span class="code-line">dfx <span class="token comment"># 删除文本直到字符“x”(包括字符“x”): delete forward x</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body">
|
||||
|
||||
Reference in New Issue
Block a user