Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lihuu/vimfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

574 Commits

Repository files navigation

vim 配置文件

windows 系统中 在$HOME目录中执行git clone https://github.com/lihuu/vimfiles.git Linux或者Macos在,$目录执行git clone https://github.com/lihuu/vimfiles.git .vim

基础

vim 寄存器和剪贴板

vim 中有多种寄存器,
  • 无名寄存器,这个是我们默认的寄存器。例如在当前行执行 yy 就会把当前行复制到无名寄存器中。

需要额外安装的依赖

nodejs
# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
yarn
npm install -g yarn
fzf

Linux 使用 git 安装的方式,使用包管理器安装,安装的版本可能比较旧

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

windows 中可以使用scoop 工具直接安装,scoop install fzf

ack

Linux 平台不必多说,windows 平台直接使用 scoop install ack

python

python 目前不能安装 python3.10 的,会出现版本的问题 安装完成之后如果出现 python 相关错误的,需要单独安装 python-neovim 包,执行 pip install neovim 安装即可

字体

有些插件会依赖 powerline 字体 ,需要安装这些字体

powerline fonts nerdfonts nerdfonts cheat-sheet

一些插件的使用说明

关于 lazyvim

https://www.lazyvim.org/

go 语言

安装 gopls

go install golang.org/x/tools/gopls@latest

emmet 插件

emmet 插件使用的是mattn/emmet-vim,补全的快捷键修改了为<c-e>,触发模式设置为仅编辑模式,在编辑模式下面使用<c-e>会补全。

emmet 的语法参考官方网站

vim-plug

一个轻量级的插件管理器。 一些基本的使用命令:

  1. PlugInstall:安装插件
  2. PlugUpdate:更新插件
  3. PlugClean:清理插件
  4. PlugUpgrade:更新 vim-plug 自身
  5. PlugStatus:检查插件状态
  6. PlugDiff:查看插件等待升级的内容
  7. PlugSnapshot:创建回滚到当前插件的脚本

packer

一个使用lua实现的包管理器 https://github.com/wbthomason/packer.nvim

特性
  • 声明式的插件描述
  • 支持依赖
  • 支持 luarocks 依赖
  • 支持懒加载
  • 自动编译高效的懒加载代码,提高启动速度
  • 使用 lua 配置和编写
  • 支持安装 hooks
  • 异步安装
  • 支持所动 git 版本,分支
  • 支持本地的插件
基本使用命令
  • PackerCompile
  • PackerClean
  • PackerInstall
  • PackerUpdate
  • PackerSync 相当于先执行 PackerUpdate 然后执行 PackerCompile
  • PackerLoad 立即加载 opt 插件

coc.nvim

coc.nvim 这个插件对 nodejs 有版本的要求,可能系统默认的版本不能符合要求。

# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

coc-lua插件 这个插件依赖了lua-lsp这个工具。 lua-lsp 可以通过luarocks这个包管理器安装,在 Mac 系统中,可能没有luarocks这个包管理器。 需要使用brew install luarocks先安装 lua 的包管理器。

coc-yaml插件 schema 配置 https://www.schemastore.org/json/

vim 的一些使用技巧

普通模式

基本的命令

vim 的命令的结构,基本符合英文的语法,(动词 + 名词)的结构。

动词
  • d,删除,英文单词(delete)。
  • c,修改,英文单词(change)。
  • y,复制,英文单词(yank),在 vim 中其实就是复制(copy),只不过这里的复制,默认是把内容复制到 vim 的寄存器中,而不是我们的系统的剪切板。
名词
  • w,单词,英文单词(word)。
  • s,句子,英文单词(sentence)。
  • p,段落,英文单词(paragraph)。

文本对象操作 (Text Object)

文本修改
  • d 删除
    • dw 删除一个单词
    • dd 删除一行
    • D 相当于 d$ 从当前字符删除到行尾
  • c 修改
    • cc 修改整行
    • C 相当于 c$ 删除到行尾,然后进入插入模式。
  • s 相当于 cl ,表示删除一个字符然后进入插入模式,S 相当于 cc 替换整行内容。
  • i 在当前字符前面进入插入模式,I 把光标移动到行首非空白字符上,然后进入插入模式。
  • a 在当前字符之后进入插入模式,A 在行尾进入插入模式。
  • o 当前行之下插入新行,O 当前之上插入新行。
  • r 替换光标下的字符,R 进入插入模式,Esc 退出插入模式。
  • u 撤销最近的一个修改动作,U 撤销当前行上的所有操作。

vim-surround 插件使用

const message = "";
if ((message = "Hello world")) {
 if (true) {
 console.log(message);
 }
}

官方地址

vim-startify 插件使用

简单的 Session 处理
:SLoad 加载一个Session
:SSave 保存一个Session
:SDelete 删除一个Session
:SClose 关闭当前的Session

nvim(>0.5) 使用 lua 配置

安装 luaformatter 格式化 lua 代码

这里通过 luarocks 安装,注意 luarocks 的版本必须是 3.0 以上的

  1. 安装 luarocks brew install luarocks
  2. 安装 luaformatter luarocks install --server=https://luarocks.org/dev luaformatter
配置文件说明

注意:如果目录中既存在init.vim又存在init.lua,neovim 会优先使用 init.lua作为配置文件

参考项目

https://github.com/LunarVim/LunarVim

https://github.com/glepnir/nvim.git

https://github.com/ayamir/nvimdots

nvim-tree 插件
快捷键
  • 编辑
  • 左右分屏打开
  • 上下分屏打开
  • 新的标签页中打开
  • a 创建文件
  • d 删除文件
  • r 重命名文件
vim tips

https://vim.fandom.com/wiki/Best_Vim_Tips#Really_useful

启动的时候打印详细的日志
# 9 表示日志的级别
vim -V9myVim1.log

vim 学习资料

https://lazyvim-ambitious-devs.phillips.codes/

vim9 script 中文手册

脚本调试

在 Vim 中查看脚本的加载情况可以使用 :scriptnames 命令。这个命令会列出 Vim 在当前会话中加载的所有脚本文件,包括插件、配置文件、颜色方案等。每个脚本都有一个编号和路径,方便查看具体加载的文件。

:scriptnames

可以使用以下方法将输出内容捕获到一个新的 buffer 中进行查看:

方法一:使用 redir 命令
  1. 打开 Vim 并执行以下命令来将 :scriptnames 的输出重定向到一个寄存器,然后将其写入当前 buffer:

    :redir @a
    :silent scriptnames
    :redir END
    :new
    :put a

    解释:

    • :redir @a:将输出重定向到寄存器 a
    • :silent scriptnames:执行 :scriptnames 命令,但不在命令行中显示输出。
    • :redir END:结束重定向。
    • :new:打开一个新的 buffer。
    • :put a:将寄存器 a 的内容插入到新 buffer 中。
方法二:使用 :execute 命令(Vim 8+)

如果你使用的是 Vim 8 及以上版本,可以通过 execute 结合 setline() 命令直接将输出放入 buffer 中:

:new
:call setline(1, execute('scriptnames'))

这个命令直接创建一个新 buffer,并将 :scriptnames 的输出插入到这个 buffer 的第一行开始。

其他

排查 vim 启动时间,启动的时候加上 --startuptime 参数,例如:

vim --startuptime startuptime.log

启动的时候会生成一个日志文件,可以查看 vim 启动的时间

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /