mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-08-01 09:19:32 -04:00
update:all
This commit is contained in:
@ -121,10 +121,13 @@
|
||||
<p>前言 LazyVim 是一个基于 Neovim 的现代化配置框架,易于定制和扩展,这里对其介绍并说明使用方法。</p>
|
||||
<span id="continue-reading"></span><h2 id="lazy">Lazy!</h2>
|
||||
<blockquote>
|
||||
<p>Vim 是从早期的 vi 编辑器发展而来的增强版,其名称代表“Vi IMproved”。由荷兰程序员 Bram Moolenaar 于 1991 年首次发布。Vim 是开源软件,支持多种操作系统,包括 Unix、Linux、Windows 和 macOS 等。</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>LazyVim 是一个基于 Neovim 的现代化配置框架,旨在简化 Neovim 的配置过程。它通过集成的 lazy.nvim 插件管理器,提供了一种易于定制和扩展配置的方式,结合了从头开始配置的灵活性和预配置设置的便利性 。</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>LazyVim 是在Neovim的基础上进行配置,Neovim又继承了vim的操作模式,对vim不熟悉的同学可以看<a href="https://vimsheet.com/">这里</a>。</p>
|
||||
<p>LazyVim 是在Neovim的基础上进行配置,Neovim又继承了vim的操作模式,对vim不熟悉的同学可以看<a href="https://vimsheet.com/">这里</a>或者本文末尾的 Vim 速查表.</p>
|
||||
</blockquote>
|
||||
<h2 id="an-zhuang">安装</h2>
|
||||
<p>首先安装neovim,在arch linux上是:</p>
|
||||
@ -382,15 +385,15 @@
|
||||
</span></code></pre>
|
||||
<h2 id="tips">tips</h2>
|
||||
<ul>
|
||||
<li>lazyvim中的行号是非自然序的,这是为了方便光标移动而设置的:你可以在正常模式中通过10k快速移动光标到10行前,10j,10h,10l同理。</li>
|
||||
<li>lazyvim的字体是和终端相同的,不同单独设置;</li>
|
||||
<li>lazyvim中在侧边栏选择文件按d删除,按y复制,按p粘贴,按a创建,按r重命名;</li>
|
||||
<li>gcc:注释当前行;</li>
|
||||
<li>g+ctrl+g:显示信息;</li>
|
||||
<li>alt+h:显示隐藏文件;</li>
|
||||
<li>space+c+f:将当前代码格式化;</li>
|
||||
<li>设置文件编码<code>:set fileencoding?</code></li>
|
||||
<li>设置换行符<code>:set fileformat=unix</code></li>
|
||||
<li>lazyvim的字体是和终端相同的,不同单独设置;</li>
|
||||
<li>lazyvim中在侧边栏选择文件按d删除,按y复制,按p粘贴,按a创建,按r重命名;</li>
|
||||
<li>lazyvim中的行号是非自然序的,这是为了方便光标移动而设置的:你可以在正常模式中通过10k快速移动光标到10行前,10j,10h,10l同理。</li>
|
||||
<li>LSP快捷操作:</li>
|
||||
</ul>
|
||||
<table><thead><tr><th>快捷键</th><th>功能</th></tr></thead><tbody>
|
||||
@ -432,6 +435,155 @@
|
||||
<li>Git支持</li>
|
||||
<li>主题与显示效果</li>
|
||||
</ul>
|
||||
<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>></code>:缩进一级</li>
|
||||
<li><code><</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>🔗</p>
|
||||
<p><a href="https://yelog.org/2024/08/02/write-markdown-in-neovim-experience-and-tips/">用 neovim 写 markdown 是一种什么样的体验</a></p>
|
||||
<hr />
|
||||
|
Reference in New Issue
Block a user