本文是vim/nvim
的使用及配置攻略。
2024.9.13更新
neovim
配置文件在~/.config/nvim
中,感觉现在neovim
更对胃口,我的nvim/vim
配置:
基本操作
普通模式
默认打开文件进入普通模式,多用于浏览文件和粘贴复制
hjkl
用来移动光标
4k
向下跳4行
w
跳转到下一个单词的开头
b
跳转到前一个单词的开头
gg
回到文档最上方
G
回到文档最下方
Ctrl u
向上翻页
Ctrl d
向下翻页
fx
将光标移动到离你最近的‘x’位置
y
复制
注:vim
在执行yank
后并不默认把内容送到系统剪切板"+y
才是将内容送到系统剪切板。
vim寄存器
无论是vim内部抑或外部的复制([y]ank)、删除([d]elete)、粘贴([p]ut),在vim中都是借助registers(寄存器)实现的,vim共有9类寄存器:
名称 | 标识 | 说明 |
---|---|---|
无名(unnamed)寄存器 | “” | 缓存最后一次操作内容; |
数字(numbered)寄存器 | “0 - “9 | 缓存最近操作内容,复制与删除有别; |
行内删除(small delete)寄存器 | “- | 缓存行内删除内容; |
具名(named)寄存器 | “a - “z或”A - “Z | 指定时可用; |
只读(read-only)寄存器 | “:, “., “%, “# | 分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名; |
表达式(expression)寄存器 | “= | 只读,用于执行表达式命令; |
选择及拖拽(selection and drop)寄存器 | “*, “+, “~ | 存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用; |
黑洞(black hole)寄存器 | “_ | 不缓存操作内容(干净删除); |
模式寄存器(last search pattern) | “/ | 缓存最近的搜索模式。 |
上面的说明为简要概述,并不完全准确,详细说明须参考手册::help copy-move
使用下面这条命令查看vim
是否能写入clipbloard
1 | vim --version|grep clipboard |
1 | ### 回显,这里`+`表示支持 |
可能是装了wl-clipboard,我记得kali
里是不支持的。
具体参见这篇:Archwiki_Neovim
yaw
—-> yank all word
y4j
—-> yank 下面四行内容
yfr
—-> yank 到r为止的内容
参考文档:vim复制粘贴(与系统剪切板相关内容)
p
粘贴
类似的,
"+p
是将系统剪切板内容剪切出来
d
删除
dj
——> delete 当前行和下一行内容
d8j
——> delete 下八行内容
u
撤销
命令行模式
普通模式输入
:
进入命令行模式
编辑模式
普通模式输入i,当前光标的前一个开始输入
普通模式输入a,当前光标的后一个开始输入
普通模式输入A,当前行的开头开始输入
普通模式输入I,当前行结尾开始输入
caw
删除这个单词,并进入输入模式
cc
删除该行,并进入输入模式
c4j
删除下四行,并进入输入模式
可视化模式
普通模式输入
v
进入可视模式
配置
vim-plug下载
商店:vimawesome
推荐使用VimPlug
管理插件
我们这里使用Vim-plug
管理插件,先下载vim-plug
1 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ |
vim插件下载
vim全局配置文件:
/etc/vimrc
vim插件下载到:
~/.vim/autoload
nvim全局配置文件:
/etc/xdg/nvim/sysinit.vim
nvim插件下载到:
~/.local/share/nvim/site/autoload/
将/etc/vimrc
配置cp
到/etc/xdg/nvim/sysinit.vim
后,需要把插件也从~/.vim/autoload
文件夹cp
到~/.local/share/nvim/site/autoload/
。本文主要讲解vim
的插件配置,nvim
配置可自行迁移。
nvim迁移后属于能用,但每次使用都有警告的存在,所以还是推荐
vim
1 | ## neovim配置时,官网给的这条命令跑不起来,加`--insecurity`参数也不行 |
修改配置文件
1 | vim /etc/vimrc |
1 | call plug#begin() |
开始安装
1 | :source % |
1 | :PlugInstall |
再次进入,输入
1 | :NERDTree |
即可看到文件目录
1 | " All system-wide defaults are set in $VIMRUNTIME/archlinux.vim (usually just |
插件使用
NERDTree
NERDTree是一个非常实用的Vim插件,它提供了一种方便的方式来浏览文件系统并打开文件。以下是一些常用的NERDTree快捷键:
ctrl + w + h
:光标focus左侧树形目录ctrl + w + l
:光标focus右侧文件显示窗口ctrl + w + w
:光标自动在左右侧窗口切换ctrl + w + r
:移动当前窗口的布局位置o
:在已有窗口中打开文件、目录或书签,并跳到该窗口go
:在已有窗口中打开文件、目录或书签,但不跳到该窗口t
:在新Tab中打开选中文件/书签,并跳到新TabT
:在新Tab中打开选中文件/书签,但不跳到新Tabi
:split一个新窗口打开选中文件,并跳到该窗口gi
:split一个新窗口打开选中文件,但不跳到该窗口s
:vsplit一个新窗口打开选中文件,并跳到该窗口gs
:vsplit一个新窗口打开选中文件,但不跳到该窗口!
:执行当前文件O
:递归打开选中结点下的所有目录x
:合拢选中结点的父目录X
:递归合拢选中结点下的所有目录e
:Edit the current difD
:删除当前书签P
:跳到根结点p
:跳到父结点K
:跳到当前目录下同级的第一个结点J
:跳到当前目录下同级的最后一个结点k
:跳到当前目录下同级的前一个结点j
:跳到当前目录下同级的后一个结点C
:将选中目录或选中文件的父目录设为根结点u
:将当前根结点的父目录设为根目录,并变成合拢原根结点U
:将当前根结点的父目录设为根目录,但保持展开原根结点r
:递归刷新选中目录R
:递归刷新根结点m
:显示文件系统菜单cd
:将CWD设为选中目录I
:切换是否显示隐藏文件f
:切换是否使用文件过滤器F
:切换是否显示文件B
:切换是否显示书签q
:关闭NerdTree窗口?
:切换是否显示Quick Help
参考文档:常用 NERDTree 快捷键
删除开头数字及空格1
:%s/^[0-9 ]\+//