Skip to content

Latest commit

 

History

History
494 lines (400 loc) · 21.6 KB

README_cn.md

File metadata and controls

494 lines (400 loc) · 21.6 KB

Colemak 用户使用的 NeoVim 配置文件

English Version

请不要只复制这份配置文件夹而不认真看它!请至少阅读一下这份自述文件!


第一版翻译: EvanMeek

第二版翻译 (当前版本): KiteAB

安装此配置后你需要做的事

  • 安装 pynvim (使用 pip)
  • 安装 nodejs, 然后在终端输入 npm install -g neovim
  • 安装 nerd-fonts (尽管它是可选的,但是安装之后看上去十分地酷)

安装此配置后你可能想做的事

首先

  • 执行 :checkhealth

Python 程序调试 (通过 vimspector 实现)

  • 安装 debugpy (使用 pip)

配置 Python 路径

  • 确保你安装了 Python
  • 查看 _machine_specific.vim 文件

标签表

  • 安装 ctags 以获得类/函数/变量的三重支持

FZF

  • 安装 fzf
  • 安装 ag (the_silver_searcher 需要)

其它...

  • 安装 figlet 以输入 ASCII 艺术字
  • 安装 xclip 以获得系统剪切板访问支持 (仅 Linuxxorg 需要)

快捷键

1 基础编辑器特性

1.1 最基本的键位

k : 切换至 插入 : 一种模式 (在原版 Vim 中与 i 键相同)

Q : 退出当前 Vim 窗口 (在原版 Vim 中与命令 :q 相同)

S : 保存当前文件 (在原版 Vim 中与命令 :w 相同)

重要

因为 i 键被改为了 k 键, 所有包含 i 键的命令都必须将 i 改为 k (比如 ciw 应被更正为 ckw)

1.2 改变了的光标移动方式

快捷键 行为 等于 (QWERTY 键盘布局中的哪些键)
u 将光标向上移动一行 k
e 将光标向下移动一行 j
n 将光标向左移动一格 h
i 将光标向右移动一格 l
U 将光标向上移动五行 5k
E 将光标向下移动五行 5j
N 将光标移至当前行的第一个字符 0
I 将光标移至当前行的最后一个字符 $
Ctrl u 将视角向上移动五行而不移动光标 Ctrl y
Ctrl e 将视角向下移动五行而不移动光标 Ctrl e
h 将光标移至当前单词的末尾 e
W 将光标移至五个单词后的末尾 5w
B 将光标移至五个单词前的开头 5b

1.3 改变了插入模式的键位

快捷键 行为
Ctrl a 将光标移至当前行的末尾
Ctrl u 将光标所在的字母移至当前行的末尾

1.4 改变了在普通模式下的操作键位

快捷键 行为
l 撤销
< 反向缩进
> 缩进
SPACE SPACE 删除下一个 <++> 并进入插入模式

1.5 其它在普通模式下有用的键位

快捷键 行为
r 编译/运行当前文件
SPACE s c 开关拼写检查
SPACE d w 寻找近处的重复单词
SPACE t t 将四个空格转换为制表符
SPACE o 折叠代码
SPACE - 上一个快速修复位置
SPACE + 下一个快速修复位置
\ p 显示当前文件的路径
SPACE / 在当前窗口下方新建一个终端窗口

1.6 增加了在可视模式下的命令

快捷键 行为
Y 复制选中文本至系统剪切板

2 窗口管理

2.1 通过分裂屏幕创造窗口

快捷键 行为
s u 新建一个分屏并把它放置在当前窗口的上面
s e 新建一个分屏并把它放置在当前窗口的下面
s n 新建一个分屏并把它放置在当前窗口的左边
s i 新建一个分屏并把它放置在当前窗口的右边
s v 将两个分屏垂直放置
s h 将两个分屏水平放置
s r v 将所有分屏垂直放置
s r h 将所有分屏水平放置

2.2 切换不同的窗口

快捷键 行为
SPACE + w 移至下一个窗口
SPACE + n 移至左边的窗口
SPACE + i 移至右边的窗口
SPACE + u 移至上面的窗口
SPACE + e 移至下面的窗口

2.3 为不同的窗口调整大小

用方向键更改当前窗口的大小

2.4 关闭窗口

快捷键 行为
Q 关闭当前窗口
SPACE q 关闭当前窗口下面的窗口 (如果下面没有窗口,则当前窗口将关闭)

3 标签页管理

快捷键 行为
t u 新建一个标签页
t n 移至左侧标签页
t i 移至右侧标签页
t m n 将当前标签页向左移动一格
t m i 将当前标签页向右移动一格

4 终端键盘快捷键

快捷键 行为
Ctrl n 退出终端输入模式

插件快捷键 (截图/动图已经准备好!)

自动补全

快捷键 行为
Space y 打开剪切板历史
gd 列出定义列表
gr 列出参考列表
gi 待办事项清单
gy 转至类型定义
Space r n 重命名变量

Gif

快捷键 行为
Ctrl e 召唤一个代码片段
Ctrl n 在一个代码片段中前移光标
Ctrl e 在一个代码片段中后移光标

GIF Demo

代码调试

快捷键 函数
F5 继续调试,如果不在一个调试中则开始进行调试
F3 终止调试
F4 用相同的配置重新开始调试
F6 暂停调试
F9 在当前行上切换行的断点
F8 在光标下为表达式添加函数断点
F10 完成步骤
F11 下一步骤
F12 退出当前函数范围

Gif

文件浏览

快捷键 行为
tt 打开文件浏览器
? 查看帮助 (在浏览器中)

Png

  • 确定你已经安装了 ranger

R 键打开 ranger (文件选择器)

在 rnvimr (ranger) 中, 你可以:

快捷键 行为
Ctrl t 在新标签页中打开文件
Ctrl x 上下分裂打开当前文件
Ctrl v 左右分裂打开所选文件

Gif

快捷键 行为
Ctrl p 模糊查找文件
Ctrl u 向上移动一格
Ctrl e 向下移动一格
Ctrl w 模糊查找缓冲区
Ctrl f 模糊查找文件内容
Ctrl h 模糊查找历史文件
Ctrl t 模糊查找标签

Gif

快捷键 行为
to 开关循环标签页模式
\p 显示当前路径

Gif

文字编辑

快捷键 行为
SPACE t m 开关表格模式
SPACE t r 重组表格

See :help table-mode.txt for more.

快捷键 行为
Shift + L 打开撤回历史
u 更新的记录
e 更老的记录

Png

快捷键 行为
Ctrl+k 选择下一个键 (多重光标)
Alt+k 选择所有键 (多重光标)
Ctrl+p 选择上一个键
Ctrl+s 跳过键
Esc 退出多重光标

Gif

Gif

Gif

Gif

想要添加包裹符号 (string -> "string"):

string

按下: yskw':

'string'

想要修改包裹符号

'string'

按下: cs'":

"string"

Gif

新的操作员: s:

您可以执行 s<操作>来使用用默认的寄存器 (或提供的显式寄存器) 的内容替换运动提供的文本对象。例如,您可以执行 skw 将光标下的当前单词替换为当前yank,或执行 skp 替换段落,依此类推

在普通或可视模式下按 ga + 符号 可以根据 符号对齐文本

Gif

\ f 开启格式化模式

Markdown 文件中, 按下 :Gen 打开菜单,你将会看到可选选项

Gif

缓冲区内导航

' 键和一个 字母 跳转至 字母 (类似 Emacs 的 AceJump)

Gif

T 打开函数与变量列表

Gif

快捷键 行为
m<letter> 在当前行添加或删除书签
m/ 列出所有书签
mSPACE 在缓冲区中跳转到下一个书签
mt 在当前行添加或删除书签
ma 在当前行添加注释
ml 显示所有的书签
mi 下一个书签
mn 上一个书签
mC 清除一个书签
mX 清除所有书签
mu 将书签往上提一行
me 将书签往下拉一行
SPC g 将书签移至任意行

Gif

查找与替换

按下 SPACE f r 在工作目录中搜索

Gif

Git 相关

快捷键 行为
H 在当前行显示 Git 代码块
SPACE g - 去往上一个 Git 代码块
SPACE g + 去往下一个 Git 代码块
SPACE g f 折叠所有除代码块以外的行

Space g i 来创建一个 .gitignore 文件

Png

Png

其它

快捷键 行为
\ \ 显示时钟
\ c 显示日历

Png

按下 g y 开关 Goyo

Png

想要忘记以前痛苦的 sudo vim ...? 只需要在 Vim 中执行 :sudowrite 或者 :sw

按下 ts翻译光标所在的单词.

Png

自定义代码片段补全

Markdown

快捷键 创建的文字
,n ---
,b 粗体文字
,s 被划去的文字
,i 斜体文字
,d 代码块
,c 大的 代码块
,m - [ ] 清单
,p 图片
,a 链接
,1 # H1
,2 ## H2
,3 ### H3
,4 #### H4
,l --------

,f 去往下一个 <++> (占位符)

,w 去往下一个 <++> (占位符) 并帮你按下 Enter

一些奇怪的东西

tx 然后输入你想要的文字

tx Hello<Enter>

 _   _      _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
|  _  |  __/ | | (_) |
|_| |_|\___|_|_|\___/

自定义垂直光标移动

此 NeoVim 配置包含了一套对 Colemak 用户量身定制的垂直光标移动, 它位于 cursor.vim 中, 并且可以替代 “数字 + 上 / 下” 的案件组合

为了将光标向上移至 x 行, 可以按下 [ 键, 并将 Colemak 键盘布局的中间行 (“arstdhneio”) 视为从 1 到 0 的数字, 按所需的数字, 再按下空格键以跳转至 x 行之上

要向下移动光标, 按 ' 键而不是 [ 键, 其余部分相同

例:

快捷键 行为
[ a o o SPACE 将光标向上移动 100 行
' a r s SPACE 将光标向下移动123行
[ d o SPACE 将光标向上移动50行

注意: 目前, 使用此移动方式, 你最多只能垂直移动 199 行!