vscode? 爬吧

自言自语

以前vscode还很轻量,但是随着版本的更新,逐渐也开始变得臃肿了起来,打开个自己的小项目居然也能吃我2g内存??

我之所以不用jb全家桶的编辑器就是因为太臃肿了,我的内存吃不消,才用的vscode,结果你个浓眉大眼的也开始这么吃内存,那我只能拥向编辑器之神!vim!

vscode给我爬!

此项目已重构至这个地址 -> https://github.com/New-arkssac/MyVimrc

这是一位咸鱼的VIMRC

这是自用的NEOVIM的配置, 有一些功能我自己实现的(maybe have some bug?)
使用这些配置文件的话,默认你已经对vim的操作有一定的了解~ 以下把MYVIMRC统称为此配置


VIM

成品展示

安装前的环境配置

如果你想使用这些配置的话你需要安装一些依赖环境呢~

  • 安装Python3
  • 安装Nerd-Font此配置中使用里大量的Nerd-Font字体 Icon
    如果你能忍受乱码的话这个选项不是必须的
  • 安装Nodejs
  • 此配置中集成了 Go, C, Python3, Lua 的编程环境所以你需要使用的话你需要请安装他们
  • 安装 Curl上传图床功能是使用的此软件来实现的
  • 如果你是 linux 用户且使用的是 x11 标准图形桌面,你得需要额外安装 xclip 此软件是 Neovim
    x11 标准图形桌面的剪切板进行交互的,windows则不需要,因为windows有强大的 powershell
  • 最后你还得安装一个Rg 功能请行查看

配置特性

ok看到这里已经默认你已经完成以上的配置了

现在可以开始介绍啦~

基础快捷键

快捷键 模式 行为
Space NORMAL LEADER键替换成了空格
; NORMAL ;被映射成了 :
s NORMAL nop 被映射成了空
sr NORMAL 重新加载$VIMRC文件
S NORMAL 保存当前文件
Q NORMAL 关闭当前窗口
Alt-rk NORMAL 重新加载当前文件
k NORMAL 无论在哪直接编辑$VIMRC文件

窗口快捷键

快捷键 模式 行为
sl NORMAL 向右分屏
sh NORMAL 向左分屏
sk NORMAL 向上分屏
sj NORMAL 向下分屏
st NORMAL 创建一个新标签页
su NORMAL 向左移一个标签页
si NORMAL 向右移一个标签页
q NORMAL 关闭所有窗口
l NORMAL 向右移动一个窗口
h NORMAL 向左移动一个窗口
k NORMAL 向上移动一个窗口
j NORMAL 向下移动一个窗口
Up NORMAL 上方窗口增加5行长度
Down NORMAL 下方窗口增加5行长度
Left NORMAL 左方窗口增加5字符宽度
Right NORMAL 右方窗口增加5字符宽度

实用快捷键

快捷键 模式 行为
sp NORMAL 开启拼写检查
uu NORMAL 开启修改历史
> VISUAL 选中的行向右缩进
< VISUAL 选中的行向左缩进
p VISUAL 粘贴寄存器内容
Ctrl-c VISUAL 复制选中的字符到系统剪切板
Ctrl-p NORMAL 粘贴系统剪切板里的字符
Ctrl-p INSERT 粘贴系统剪切板里的字符

插件

插件管理器

packer.nvim
packer

主题

  • lualine
    lualine十分强大不仅可以设置 statusline 还可以设置 tabline 以及 winbar 不过为仅仅使用了
    不过这里的配置仅仅设置了 statuslinetabline
    想要设置的可以自行官方文档修改schema.lua
    tabline
    lualine
    在此配置中 statusline mod 块还会根据系统切换Icon哦
  • nightfox
    主题配色
  • nvim-navic
    statusline 里显示代码上下文信息
    navic

代码补全

cmp快捷键

快捷 行为
Up 光标向上移动
Down 光标向下移动
Enter 选择光标选中的提示
Tab 光标向下移动

cmp

LSP快捷键

快捷 行为
gd 转跳到光标下关键词的定义
gr 展开当前管标下关键词的引用出
gk 显示光标下关键词的签名
= 转跳到下一个错误处
- 转跳到上一个错误处
sdn 重命名光标下的关键词
Ctrl-l INSERT模式下在函数括号内显示函数签名

gk
gk
ctrl-l

代码高亮

nvim-treesitter
treesitter

代码块

snip

文件树

nvim-tree.lua

快捷键 行为
u 返回上一层目录
s 上下分屏打开文件
v 左右分屏打开文件
t 新建标签页打开文件
S 用系统默认程序打开文件
/ 搜索文件

nvim-tree

更多操作请看插件官方文档

一个很酷的通知系统

nvim-notify

notify

一个很酷的默认启动屏

alpha-nvim

快捷键 行为
e 编辑一个新的文件
g 当前目录下初始化一个Golang项目
c 当前目录下初始化一个Clang项目
p 当前目录下初始化一个Python项目
r 查看之前编辑过的文件
s 编辑$MYVIMRC
q 退出

alpha

一些很酷的图标Icon

nvim-web-devicons

Git

git

快捷键 行为
Space-ui 提交当前代码块
Space-uh 撤回当前提交的代码块
Space-ua 浮窗显示当前行的blame
Space-tb 虚拟字体当前行的blame
Space-ud 显示版本差异

git

代码诊断

基于LSP的代码诊断,自动转调到错误处

快捷键 行为
Space-o 开启代码诊断窗口

trouble.nvi
trouble.nvim

模糊查询

fzf.vim

快捷键 行为
n 查询已开启的缓冲区
; 查询工作目录下文件内容
F 查询工作目录下文件

fzf

异步执行编译项目

asynctasks

快捷键 行为
so 在当前目录下创建.tasks文件
i 运行当前文件的可执行文件
b 编译当前文件
n 编译当前项目

aysnctask

DEBUG

vimspector

快捷键 行为
Ctrl-q 退出DEBUG
F5 开始DEBUG
F4 使用当前配置重新DEBUG
F9 打断点
Alt-l DEBUG步进一
Alt-i 手动输入监听参数
Alt-' 开启栈堆

vimspector

编辑历史

undotree

快捷键 行为
Space-uu 展开编辑历史

undotree

缓冲区导航

vista.vim

快捷键 行为
Space-m 展开关键词列表

visita

翻译

translator

快捷键 行为
Space-t 翻译光标下的单词

translator

自己写的功能

初始化项目
快捷键 模式 行为
s\ NORMAL 初始化项目

目前仅支持初始化 go, c, python 三个项目
如果想添加其他额外的项目请自行修改project.lua
以及alpha.lua

使用 alpha 初始化
alpha

快捷键初始化
init

注释
快捷键 模式 行为
Ctrl-/ NORMAL 注释当前行
V-Ctrl-/ VISUAL 注释选中的行

仅能使用在 go、c、py、lua、vim
如果想要添加注释自己想要的语言请自行修改comment.lua 文件
comment

粘贴剪切板图片
快捷键 模式 行为
sp NORMAL 粘贴剪切板里的截图
sP NORMAL 将剪切板里的图片上传到图床并粘贴
sy NORMAL 展开已经粘贴过的图片的剪切板
,p INSERT 粘贴剪切板里的截图
,P INSERT 将剪切板里的图片上传到图床并粘贴
,y NORMAL 展开已经粘贴过的图片的剪切板

此功能仅能在 windows、wsl、x11linux 下使用,x11标准的linux需要安装 xclip
上传功能是使用的 curl 所以还得有 curl 的依赖
所有操作均会在当前目录下创建一个 img 目录,上传和粘贴的图片均会在里面
目前并不打算支持其他系统,如果要支持其他系统的话请自行修改clipboard.lua

clipboard

Markdown
快捷键 模式 行为
,b INSERT 加粗 字体
,m INSERT 划去 字体
,i INSERT 斜体 字体
,x INSERT 行内代码块
,c INSERT 多行代码块
,h INSERT - [ ] 清单
,j INSERT * [ ] 清单
,a INSERT 图片
,1 INSERT # H1
,2 INSERT ## H2
,3 INSERT ### H3
,4 INSERT #### H4
,5 INSERT ##### H5
,l INSERT 分隔符

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

markdown

结语

vim所吃的内存

image.png

vscode所吃内存

image.png

完美拉开差距