Skip to content

Neovim 初学者笔记

Neovim是一个开源的文本编辑器,是Vim的一个升级版,提供了一些其他的功能

Normal模式

光标移动

在Normal模式下可以使用 h(左)/j(下)/k(上)/l(右) 进行光标的移动,当然你依然可以使用上下左右的方向键进行移动,也可以使用鼠标进行点击移动。

按键功能
h,j,k,l左,下,上,右
w光标向右移动一个单词,并停留在该单词的第一个字符处
e光标向右移动一个单词,并停留在该单词的最后一个字符处
b光标向左移动一个单词,并停留在该单词的第一个字符处
$光标移动到当前行的最后一个字符处
0光标移动到当前行的第一个字符处
^光标移动到当前行的第一个非空字符处
gg光标移动到文件的开头
G光标移动到文件的结尾
gm光标移动到该行的中间处(以窗口为基础,不满半行则为末尾字符处)
-光标移动到上一行的第一个非空字符处
+光标移动到下一行的第一个非空字符处
`.光标移动到上次编辑的地方
数字+gg或者数字+G将光标移动到指定行,例如移动到第25行:25gg25G
数字+h,数字+j,数字+k,数字+l将光标向指定方向移动指定个字符
数字+w,数字+e,数字+b将光标向指定方向移动指定个单词
数字+|将光标移动到指定列

编辑文本

按键功能
iinsert,插入文本,在光标所在的字符前进入插入Insert模式
I在本行开头进入Insert模式
aappend,追加文本,在光标所在字符后进入插入Insert模式
A在本行末尾进入Insert模式
s删除当前字符,并进入Insert模式
S删除当前行所有字符,并进入Insert模式
o在当前行之后新增一行,并进入Insert模式
O在当前行之前新增一行,并进入Insert模式

删除文本

按键功能
dd删除当前行
dw删除当前单词
d$删除当前字符到行尾
d^删除当前字符到行首第一个非空字符
d0删除当前字符到行首
D删除当前字符到行尾
x删除当前字符
X删除前一个字符

复制/粘贴

按键功能
y当使用v模式选中了文本时,复制选中的文本到缓冲区
yy复制当前行到缓冲区
yw复制当前单词到缓冲区
y$复制当前字符到行尾
y^复制当前字符到行首第一个非空字符
y0复制当前字符到行首
p粘贴缓冲区内容到光标后
P粘贴缓冲区内容到光标前

撤销/重做

按键功能
u撤销
U撤销当前行最近的所有修改
ctrl+r重做

Insert模式

在Normal模式下可以通过i,a,s,o等进行切换到Insert模式,编辑文本.

在Insert模式下可以通过Esc进行切换到Normal模式

Visual模式

  • v: 在Normal模式下按v进入字符可视化模式

在字符可视化模式下选择是以字符为标准的,可以类似Normal模式通过h,j,k,l或者w,e等进行选择范围的调整

  • V: 在Normal模式下按V进入行可视化模式

在行可视化模式下选择是以行为标准的,可以类似Normal模式通过j,k等进行选择范围的调整

  • ctrl+v: 在Normal模式下按ctrl+v进入块可视化模式

在块可视化模式下选择是以块为标准的,可以类似Normal模式通过h,j,k,l等进行选择范围的调整

在块可视化模式下还可以进入列编辑模式,使用ctrl+v进入块编辑模式,使用j,k选择多行,选择完成后按shift+进入列编辑模式,编辑完成后按Esc完成编辑,并返回到Normal模式

设置

  • 显示行号
" 显示行号
set number
" 显示相对行号
set relativenumber
  • 关闭蜂鸣器音
" 当错误时不发出声音
set noerrorbells
" 当错误时发出视觉提示
set visualbell

快捷键设置

快捷键的设置格式为模式 指定键 目标键,中间以空格分隔,例如::imap jj <esc>指将 jj 绑定为 esc 键并只在Insert模式下生效,即原来在Insert模式下按esc键进入Normal模式,现在可以连按两下j键即可进入Normal模式。

  • 生效的模式

参考:MAPPING AND MODES

模式NormInsCmdVisSelOprTermLang
[nore]mapyes--yesyesyes--
n[nore]mapyes-------
[nore]map!-yesyes-----
i[nore]map-yes------
c[nore]map--yes-----
v[nore]map---yesyes---
x[nore]map---yes----
s[nore]map----yes---
o[nore]map-----yes--
t[nore]map------yes-
l[nore]map-yesyes----yes
  • 按键名称对应

参考:MAPPING SPECIAL KEYS

名称按键
<C-s>Ctrl+s,即Ctrl加其他键
<S-s>Shift+s,即Shift加其他键
<BS>BackSpack,退格键
<Tab>Tab
<CR>or<Enter>or<Return>Enter,回车键
<Esc>Esc
<Space>Space,空格键
<Up>,<Down>,<Left>,<Right>上下左右
<F1>...<F12>F1 - F12
<Insert>,<Del>Insert,Del
<Home>,<End>Home,End
<PageUp>,<PageDown>PageUp,PageDown

链接